Как переключать цветовую схему терминала alacritty нажатием клавиши?

человек дю:

   -x, --one-file-system
          skip directories on different file systems
2
26.07.2020, 18:05
1 ответ

[I'm not sure this is the right place for this question, so let me know :)]

Поскольку это мой первый ответ здесь, я не знаю, подходит ли это место для вопроса :-). Но у меня была такая же проблема некоторое время назад, и я исправил ее с помощью следующего скрипта Python:

#!/usr/bin/env python

import yaml
import os
import re


CONFIG_FILE_NAME = "alacritty.yml"
CONFIG_FILE_DIR = os.path.expanduser("~/.config/alacritty/")
CONFIG_FILE_PATH = os.path.join(CONFIG_FILE_DIR, CONFIG_FILE_NAME)

COLOR_SCHEME_LINE_SEARCH = "colors: \*(\S+)"
COLOR_SCHEME_LINE_TEMPLATE = "colors: *{}\n"

with open(CONFIG_FILE_PATH, "r") as config_file:
    config = yaml.safe_load(config_file)
    config_file.seek(0)
    lines = config_file.readlines()

colors_line_index = -1
for i, line in enumerate(lines):
    match = re.search(COLOR_SCHEME_LINE_SEARCH, line)
    if match is not None:
        current_color_scheme = match.group(1)
        colors_line_index = i

available_color_schemes = list(config["schemes"].keys())

color_scheme_index = available_color_schemes.index(current_color_scheme)
color_scheme_index = \
    (color_scheme_index + 1) % len(available_color_schemes)

lines[colors_line_index] = COLOR_SCHEME_LINE_TEMPLATE.format(
    available_color_schemes[color_scheme_index])

with open(CONFIG_FILE_PATH, "w") as config_file:
    for line in lines:
        config_file.write(line)

В зависимости от того, где находится ваш конфигурационный файл alacritty, вам, возможно, придется настроить НАЗВАНИЕ ФАЙЛА __и НАЗВАНИЕ ФАЙЛА _НАСТРОЙКИ _ФАЙЛА _. Для работы скрипта важно, чтобы якоря цветовых схем назывались точно так же, как и сами цветовые схемы, т.е.:

schemes:
  example_color_scheme: &example_color_schme
    primary:
       ...
    normal:
       ...
    bright:
       ...

Помимо этого, в вашей системе должен быть установлен пакет Python pyyaml ​​, скрипт должен быть сделан исполняемым пользователем, и скрипт должен быть доступен из PATH пользователя.

Кроме того, я поместил следующее в свой файл конфигурации alacritty:

key_bindings:
  - { key: F, mods: Control, command: {program: "set_colorscheme.py"} }

Таким образом, я могу переключаться между своими цветовыми схемами, нажимая .

Вы можете ознакомиться со скриптом в моих dotfiles на github .

Надеюсь, это поможет.

2
18.03.2021, 23:17

Теги

Похожие вопросы