我想绑定一个background_opacity
在 0.9 和 1.0 之间切换值的键,并立即在 Alactitty 终端中显示结果。key_bindings 中没有用于此目的的操作。
我已经live_config_reload
启用,所以一种可能的方法是编写 zsh 函数,这将改变 alacritty.yml
文件。
答案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
效果很好!
我修改了这个脚本以适合我自己。还添加了一些案例,这样我就不必只在两个值之间切换。
这是从我的左窗口管理器 [LeftWM] 配置调用的。
~/.config/leftwm/config.ron
keybind: [
...
(command: Execute, value: "~/bin/opacitytoggle", modifier: ["modkey", "Shift"], key: "a"),
...
],
〜/ bin / opacitytoggle
#!/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