キーストロークで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>を押してカラースキームを循環させることができます。

私のスクリプトを確認できますgithubのドットファイル

これが役に立つことを願っています。

おすすめ記事