Ich möchte eine Taste binden, die background_opacity
den Wert zwischen 0,9 und 1,0 umschaltet und das Ergebnis sofort im Alactitty-Terminal anzeigt. Zu diesem Zweck gibt es in den Tastenbindungen keine Aktion.
Ich habe live_config_reload
es aktiviert, daher besteht ein möglicher Ansatz darin, eine ZSH-Funktion zu schreiben, die die Datei ändert alacritty.yml
.
Antwort1
Ich bin auf diese Frage gestoßen, als ich nach der gleichen Funktion gesucht habe, und habe sie schließlich selbst implementiert. Ich habe eine Demo der Funktionsweise in meinenBlog.
Der Vollständigkeit halber werde ich die Schritte hier ausführen.
~/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
Machen Sie das obige Skript ausführbar, indem Sie es im Terminal ausführen:
chmod +x ~/bin/toggle_alacritty_opacity
Stellen Sie sicher, dass Sie die folgende Zeile in ~/.zshrc
oder haben~/.bashrc
## In order to use the executable scripts inside ~/bin directly
export PATH=$HOME/bin:$PATH
Wenn Sie Alacritty jetzt toggle_alacritty_opacity
von Ihrem Terminal aus ausführen, wird die Deckkraft umgeschaltet.
Bonus
Wenn Sie i3 WM verwenden, fügen Sie die folgenden Zeilen an~/.config/i3/config
## Toggling alacritty opacity in i3 (inside ~/bin)
bindsym $mod+Shift+a exec --no-startup-id toggle_alacritty_opacity
Jetzt haben Sie eine Tastenkombination, um die Deckkraft von Alacritty umzuschalten.
Antwort2
Funktioniert gut!
Ich habe dieses Skript ein wenig an meine Bedürfnisse angepasst. Außerdem habe ich einige Fälle hinzugefügt, damit ich nicht nur zwischen zwei Werten wechseln muss.
Dies wird von meiner Left Window Manager-Konfiguration [LeftWM] aufgerufen.
~/.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
Antwort3
Lösung für MacOS mitHammerlöffeldas die Tastenkombination CMD
+ in iTerm2 emuliertU
Fügen Sie dies zu Ihrem.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)
Stellen Sie sicher, dass Sie Zeile 2 anpassen, um den richtigen Speicherort der alacritty.yml
Datei anzugeben (das Skript geht davon aus ~/.config/alacritty.yml
).
Stellen Sie außerdem sicher, dass die alacritty.yml
Datei enthält
windows:
opacity: 1