如何通过按键切换 alacritty 终端颜色方案?

如何通过按键切换 alacritty 终端颜色方案?

有一个关于如何做到这一点的解释部分在 alacritty 的 git-hub wiki 中,但我没有明白。我尝试过它,例如 Solarized 的浅色和深色版本,但失败了。

请告诉我如何才能拥有多种配色方案手头以及如何拨动开关其中,优选通过击键

[我不确定这是这个问题的正确位置,所以请告诉我:)]

编辑:我修复了多个计划,根据维基百科。我的错误是我忘记将关键字更改color为我随后引用的名称。就像是:

# XTerm's color-schemes
schemes:
    xterm_light: &light
           # Default colors
           primary:
             background: '#ffffff'
             foreground: '#000000'
           # Normal colors
           normal:
             black:   '#000000'
             red:     '#cd0000'
             green:   '#00cd00'
             yellow:  '#cdcd00'
             blue:    '#0000ee'
             magenta: '#cd00cd'
             cyan:    '#00adad'
             white:   '#c5c5c5'

           # Bright colors
           bright:
             black:   '#7f7f7f'
             red:     '#ff0000'
             green:   '#00ff00'
             yellow:  '#ffff00'
             blue:    '#5c5cff'
             magenta: '#ff00ff'
             cyan:    '#00fff             
             white:   '#ffffff'

    xterm_dark: &dark
           # Default colors
           primary:
             background: '#000000'
             foreground: '#ffffff'
           # Normal colors
           normal:
             black:   '#000000'
             red:     '#cd0000'
             green:   '#00cd00'
             yellow:  '#cdcd00'
             blue:    '#0050cc'
             magenta: '#cd00cd'
             cyan:    '#00adad'
             white:   '#e5e5e5'

           # Bright colors
           bright:
             black:   '#7f7f7f'
             red:     '#ff0000'
             green:   '#00ff00'
             yellow:  '#ffff00'
             blue:    '#5c5cff'
             magenta: '#ff00ff'
             cyan:    '#00ffff'
             white:   '#ffffff'

colors: *dark
# colors: *light

在这种情况下,我需要手动更改配置才能更改颜色方案。这不是最糟糕的事情,但通过键盘快捷键来改变它会很好。

答案1

[我不确定这是这个问题的正确位置,所以请告诉我:)]

由于这是我在这里的第一个答案,我不知道这是否是该问题的正确位置:-)。但是,不久前我遇到了同样的问题,并使用以下 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 配置文件所在的位置,您可能需要调整 CONFIG_FILE_NAME 和 CONFIG_FILE_DIR。为了使脚本正常工作,将配色方案的锚点命名为与配色方案本身完全相同的名称非常重要,例如:

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

除此之外的Python包皮亚姆尔必须安装在您的系统上,该脚本必须可由用户执行,并且该脚本必须可从用户的 PATH 访问。

另外,我将以下内容放入我的 alacritty 配置文件中:

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

这样,我可以通过按 <CTRL-F> 循环浏览我的颜色方案。

你可以查看我的 sciptgithub 上的点文件

我希望这有帮助。

相关内容