doas, pinentry-dmenu y scripts en vez de blueman, autorandr y gammastep

- 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
This commit is contained in:
Alejandro Guerrero 2026-09-28 12:12:51 +02:00
parent 5fee14ab7f
commit a83294ace4
Signed by: alejandrogs73
GPG key ID: 1CFF10953BEE333C
23 changed files with 362 additions and 430 deletions

8
sistema/etc/doas.conf Normal file
View file

@ -0,0 +1,8 @@
# doas en vez de sudo. Los de wheel pueden hacer de root con su contraseña,
# que se recuerda unos minutos. Suspender, apagar y reiniciar (sin
# argumentos) no la piden: los usan bateria y apagado (home/.local/bin).
# Vale la última regla que coincide.
permit persist :wheel
permit nopass :wheel as root cmd zzz args
permit nopass :wheel as root cmd poweroff args
permit nopass :wheel as root cmd reboot args

View file

@ -1,4 +0,0 @@
# Suspender, apagar y reiniciar sin contraseña para los de wheel (solo esos
# comandos y sin argumentos). Los usan el script bateria (suspender al
# agotarse) y el menú de apagado (home/.local/bin/apagado).
%wheel ALL=(root) NOPASSWD: /usr/bin/zzz "", /usr/bin/poweroff "", /usr/bin/reboot ""

View file

@ -1,4 +1,3 @@
# Sustituye a la regla de autorandr (/usr/lib/udev/rules.d): al conectar o
# desconectar una pantalla, colocarlas todas en fila ("horizontal") en vez
# de buscar un perfil guardado llamado "default".
ACTION=="change", SUBSYSTEM=="drm", RUN+="/usr/bin/autorandr --batch --change --default horizontal"
# Al conectar o desconectar una pantalla, colocarlas todas en fila y repintar
# el fondo (sistema/usr/local/bin/pantallas).
ACTION=="change", SUBSYSTEM=="drm", RUN+="/usr/local/bin/pantallas"

View file

@ -0,0 +1,2 @@
# base-system depende de sudo; así se puede quitar (se usa doas).
ignorepkg=sudo

39
sistema/usr/local/bin/pantallas Executable file
View file

@ -0,0 +1,39 @@
#!/bin/sh
# Pone en fila todas las pantallas conectadas, con la del portátil
# (eDP*/LVDS*) a la izquierda y como principal, apaga las desconectadas y
# vuelve a pintar el fondo. Lo lanzan .xinitrc al arrancar y la regla de udev
# (sistema/etc/udev/rules.d) al conectar o desconectar una pantalla.
#
# udev lo ejecuta como root: entonces se relanza como el usuario de la sesión
# de dwm, con su DISPLAY.
if [ "$(id -u)" -eq 0 ]; then
pid=$(pgrep -xo dwm) || exit 0
usuario=$(stat -c %U "/proc/$pid")
casa=$(getent passwd "$usuario" | cut -d: -f6)
entorno=$(tr '\0' '\n' <"/proc/$pid/environ" | grep -E '^(DISPLAY|XAUTHORITY)=')
# shellcheck disable=SC2086
exec env $entorno HOME="$casa" chpst -u "$usuario" "$0"
fi
estado=$(xrandr) || exit 1
interna=$(echo "$estado" | awk '/^(eDP|LVDS)[^ ]* connected/ { print $1 }')
otras=$(echo "$estado" | awk '/ connected/ && $1 !~ /^(eDP|LVDS)/ { print $1 }')
fuera=$(echo "$estado" | awk '/ disconnected/ { print $1 }')
set --
ant=
for o in $interna $otras; do
if [ -z "$ant" ]; then
set -- "$@" --output "$o" --auto --primary --pos 0x0
else
set -- "$@" --output "$o" --auto --right-of "$ant"
fi
ant=$o
done
for o in $fuera; do
set -- "$@" --output "$o" --off
done
[ $# -gt 0 ] && xrandr "$@"
xwallpaper --zoom "$HOME/.local/share/wallpaper.jpg"