Alternar la opción background_opacity en presteza

Alternar la opción background_opacity en presteza

Quiero vincular una clave que cambia background_opacityel 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_reloadhabilitado, por lo que un enfoque posible es escribir la función zsh, que cambiará alacritty.ymlel 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 ~/.zshrco~/.bashrc

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

Ahora, al ejecutarlo toggle_alacritty_opacitydesde 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+ Uen 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.ymlarchivo (el script supone ~/.config/alacritty.yml)

También asegúrese de que el alacritty.ymlarchivo contenga

windows:
  opacity: 1

información relacionada