- doas en vez de sudo (sistema/etc/doas.conf; xbps.d permite quitar sudo). - pinentry-dmenu en X y pinentry-curses en una tty (pinentry-menu); fuera GTK 2 (.gtkrc-2.0 y el arreglo de colores del tema). - bluetooth: menú de dmenu con bluetoothctl en vez de blueman. - pantallas: xrandr a pelo en vez de autorandr, también desde udev. - luz: sct cada minuto en vez de gammastep. - xwallpaper para el fondo y nsxiv para las imágenes de st, en vez de feh. - volumen salida en vez de pavucontrol; menu reúne los colores de dmenu. - mpv en vez de vlc; fuera btop. - install.sh: paso quitar para desinstalar lo sustituido. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C5v1qWDwgkaVM5kjVHGGh8
58 lines
2 KiB
Bash
Executable file
58 lines
2 KiB
Bash
Executable file
#!/bin/sh
|
|
# Cambia el volumen o silencia la salida o el micro (PipeWire), refresca
|
|
# slstatus y lo muestra en una notificación que se sustituye a sí misma.
|
|
# "salida" elige con dmenu por dónde suena (altavoces, cascos...).
|
|
# Uso: volumen subir|bajar|silenciar|micro|salida
|
|
|
|
case $1 in
|
|
subir) wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ ;;
|
|
bajar) wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- ;;
|
|
silenciar) wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle ;;
|
|
micro) wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle ;;
|
|
salida)
|
|
# Las salidas de "wpctl status" (sección Sinks de Audio), con * la actual:
|
|
# " │ * 86. Nombre [vol: 0.50]" -> "* 86. Nombre"
|
|
s=$(wpctl status | awk '
|
|
/Sinks:/ { dentro = 1; next }
|
|
dentro && !/[0-9]\./ { exit }
|
|
dentro {
|
|
sub(/^[^*0-9]*/, ""); actual = sub(/^\* */, "")
|
|
sub(/ *\[vol:.*/, ""); print (actual ? "* " : " ") $0
|
|
}' | menu -p Salida:)
|
|
[ -n "$s" ] || exit 0
|
|
s=${s#??}
|
|
wpctl set-default "${s%%.*}"
|
|
exec notify-send -t 2000 -h string:x-dunst-stack-tag:volumen \
|
|
-i audio-speakers "Salida de audio" "${s#*. }"
|
|
;;
|
|
*) echo "uso: volumen subir|bajar|silenciar|micro|salida" >&2; exit 1 ;;
|
|
esac
|
|
|
|
pkill -USR1 -x slstatus
|
|
|
|
if [ "$1" = micro ]; then
|
|
if wpctl get-volume @DEFAULT_AUDIO_SOURCE@ | grep -q MUTED; then
|
|
icono=microphone-sensitivity-muted texto="Silenciado"
|
|
else
|
|
icono=microphone-sensitivity-high texto="Activado"
|
|
fi
|
|
exec notify-send -t 2000 -h string:x-dunst-stack-tag:micro \
|
|
-i "$icono" "Micrófono" "$texto"
|
|
fi
|
|
|
|
# wpctl get-volume da algo como "Volume: 0.35 [MUTED]"
|
|
estado=$(wpctl get-volume @DEFAULT_AUDIO_SINK@)
|
|
vol=$(echo "$estado" | awk '{ printf "%d", $2 * 100 + 0.5 }')
|
|
case $estado in
|
|
*MUTED*) icono=audio-volume-muted texto="Silenciado" ;;
|
|
*)
|
|
if [ "$vol" -eq 0 ]; then icono=audio-volume-muted
|
|
elif [ "$vol" -lt 34 ]; then icono=audio-volume-low
|
|
elif [ "$vol" -lt 67 ]; then icono=audio-volume-medium
|
|
else icono=audio-volume-high
|
|
fi
|
|
texto="$vol %"
|
|
;;
|
|
esac
|
|
exec notify-send -t 2000 -h string:x-dunst-stack-tag:volumen \
|
|
-h "int:value:$vol" -i "$icono" "Volumen" "$texto"
|