alacritty の background_opacity オプションを切り替える

alacritty の background_opacity オプションを切り替える

0.9 と 1.0 の間で値を切り替えるキーをバインドしbackground_opacity、その結果を Alactitty ターミナルにすぐに表示したいのですが、この目的のためのアクションは key_bindings にありません。

有効にしているlive_config_reloadので、1 つの可能なアプローチは、 alacritty.ymlファイルを変更する zsh 関数を書き込むことです。

答え1

私は同じ機能を探しているときにこの質問に出会い、結局自分で実装しました。ブログ

完全を期すために、ここで手順を説明します。

~/bin/toggle_alacritty_opacity の切り替え
#!/usr/bin/env bash

## If alacritty.yml does not exist, raise an alert
[[ ! -f ~/.config/alacritty/alacritty.yml ]] && \
    notify-send "alacritty.yml does not exist" && exit 0

## Fetch background_opacity from alacritty.yml
opacity=$(awk '$1 == "background_opacity:" {print $2; exit}' \
    ~/.config/alacritty/alacritty.yml)

## Assign toggle opacity value
case $opacity in
  1)
    toggle_opacity=0.9
    ;;
  *)
    toggle_opacity=1
    ;;
esac

## Replace opacity value in alacritty.yml
sed -i -- "s/background_opacity: $opacity/background_opacity: $toggle_opacity/" \
    ~/.config/alacritty/alacritty.yml

ターミナルで実行して上記のスクリプトを実行可能にします。
chmod +x ~/bin/toggle_alacritty_opacity

次の行が含まれていることを確認してください~/.zshrc~/.bashrc

## In order to use the executable scripts inside ~/bin directly
export PATH=$HOME/bin:$PATH

toggle_alacritty_opacityターミナルから実行すると、 alacritty の不透明度が切り替わります。

ボーナス

i3 WMを使用している場合は、次の行を追加します。~/.config/i3/config

## Toggling alacritty opacity in i3 (inside ~/bin)
bindsym $mod+Shift+a exec --no-startup-id toggle_alacritty_opacity

これで、alacritty の不透明度を切り替えるキー バインディングができました。

答え2

うまく動作します!

このスクリプトを自分に合わせて少し変更しました。また、切り替える値が 2 つだけにならないように、いくつかのケースも追加しました。

これは、左ウィンドウ マネージャー [LeftWM] 構成から呼び出されます。

設定ファイル

keybind: [
...
(command: Execute, value: "~/bin/opacitytoggle", modifier: ["modkey", "Shift"], key: "a"),
...
],

~/bin/不透明度トグル

#!/usr/bin/env bash

## If alacritty.yml does not exist, raise an alert
[[ ! -f ~/.config/alacritty.yml ]] && \
    notify-send "alacritty.yml does not exist" && exit 0

## Fetch background_opacity from alacritty.yml
opacity=$(awk '$1 == "opacity:" {print $2; exit}' \
    ~/.config/alacritty.yml)

## Assign toggle opacity value
case $opacity in
  0.0)
    toggle_opacity=0.55
    ;;
  0.55)
    toggle_opacity=0.70
    ;;
  0.70)
    toggle_opacity=0.85
    ;;
  0.85)
    toggle_opacity=1.0
    ;;
  1.0)
    toggle_opacity=0.0
    ;;
    *)
      toggle_opacity=1.0
    ;;
esac

## Replace opacity value in alacritty.yml
sed -i -- "s/opacity: $opacity/opacity: $toggle_opacity/" \
    ~/.config/alacritty.yml

答え3

MacOS用のソリューションハンマースプーンiTerm2のCMD+キーボードショートカットをエミュレートするU

これをあなたの.hammerspoon/init.lua

hs.hotkey.bind({"cmd"}, "U", function()
  alacritty_file_name = string.format("%s/.config/alacritty.yml", os.getenv("HOME"))

  opaque = "opacity: 1"
  transparent = "opacity: 0.9"

  local file = io.open(alacritty_file_name)

  local content = file:read "*a"
  file:close()

  if string.match(content, opaque) then
    content = string.gsub(content, opaque, transparent)
  else
    content = string.gsub(content, transparent, opaque)
  end

  local fileedited = io.open(alacritty_file_name, "w")
  fileedited:write(content)
  fileedited:close()
end)

ファイルの正しい場所を反映するように2行目を調整してくださいalacritty.yml(スクリプトでは次のように想定されています~/.config/alacritty.yml

また、alacritty.ymlファイルに以下が含まれていることを確認してください

windows:
  opacity: 1

関連情報