Quiero vincular una clave que cambia background_opacity
el valor entre 0,9 y 1,0 e inmediatamente muestra el resultado en la terminal Alactitty. No hay ninguna acción en key_bindings para este propósito.
Lo he live_config_reload
habilitado, por lo que un enfoque posible es escribir la función zsh, que cambiará alacritty.yml
el archivo.
Respuesta1
Me encontré con esta pregunta mientras buscaba la misma función y terminé implementándola yo mismo. He incluido una demostración del funcionamiento en miBlog.
Para completar, incluiré los pasos aquí.
~/bin/toggle_alacritty_opacidad
#!/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
Haga ejecutable el script anterior ejecutándolo en la terminal:
chmod +x ~/bin/toggle_alacritty_opacity
Asegúrese de tener la siguiente línea en ~/.zshrc
o~/.bashrc
## In order to use the executable scripts inside ~/bin directly
export PATH=$HOME/bin:$PATH
Ahora, al ejecutarlo toggle_alacritty_opacity
desde su terminal, se alternará la opacidad de alacritty.
Prima
Si está utilizando i3 WM, agregue las siguientes líneas a~/.config/i3/config
## Toggling alacritty opacity in i3 (inside ~/bin)
bindsym $mod+Shift+a exec --no-startup-id toggle_alacritty_opacity
Ahora tienes una combinación de teclas para alternar la opacidad de presteza.
Respuesta2
¡Funciona bien!
Modifiqué este script un poco para mí. También agregué algunos casos para no tener solo dos valores para cambiar.
Esto se llama desde mi configuración del Administrador de ventana izquierda [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
Respuesta3
Solución para MacOS usandocuchara martilloque emula el atajo de teclado CMD
+ U
en iTerm2
Añade esto a tu.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)
Asegúrese de ajustar la línea 2 para reflejar la ubicación correcta del alacritty.yml
archivo (el script supone ~/.config/alacritty.yml
)
También asegúrese de que el alacritty.yml
archivo contenga
windows:
opacity: 1