在 alacritty 中切換背景不透明度選項

在 alacritty 中切換背景不透明度選項

我想綁定background_opacity在 0.9 和 1.0 之間切換值的鍵,並立即在 Alactitty 終端中顯示結果。 key_bindings 中沒有為此目的執行任何動作。

我已經live_config_reload啟用,所以一種可能的方法是編寫 zsh 函數,這將更改 alacritty.yml檔案。

答案1

我在尋找相同功能時偶然發現了這個問題,並最終自己實現了它。我已經在我的中包含了一個工作演示部落格

為了完整起見,我將在此處包含這些步驟。

〜/ bin /toggle_alacrtty_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

效果很好!

我修改了這個腳本,使其更適合我。還添加了一些案例,這樣我就不再只有兩個值可以在之間切換。

這是從我的左視窗管理器 [LeftWM] 配置中呼叫的。

〜/.config/leftwm/config.ron

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

相關內容