Automontaje de USB, suspender con batería agotada, bloqueo por inactividad y TLP

- automontaje (servicio de runit, root): monta memorias USB y tarjetas SD
  en /mnt/ETIQUETA o /mnt/sdXY y las desmonta al sacarlas, con
  notificación. FAT/exFAT/NTFS (ntfs3 del kernel) a nombre del usuario;
  los discos internos (ID_BUS distinto de usb) no se tocan.
- bateria: al 3 % sin cargador avisa y, si en 10 s sigue descargando,
  suspende con sudo -n zzz (sudoers.d/zzz: solo zzz sin argumentos, sin
  contraseña, para wheel).
- .xinitrc: xss-lock bloquea con slock tras 30 min de inactividad y la
  pantalla se apaga un minuto después.
- install.sh: xss-lock, tlp y tlp-rdw; servicios tlp y automontaje; los
  sudoers se validan con visudo y se instalan con modo 440.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
This commit is contained in:
Alejandro Guerrero 2026-09-27 21:48:36 +02:00
parent 2c2adaaa79
commit 2850a4fc73
Signed by: alejandrogs73
GPG key ID: 1CFF10953BEE333C
7 changed files with 148 additions and 10 deletions

View file

@ -17,9 +17,9 @@ PAQUETES="
libXrender-devel xorgproto imlib2-devel zlib-devel libxcrypt-devel
xorg xinit setxkbmap xrandr dbus elogind polkit
picom dunst libnotify feh maim xclip gammastep
picom dunst libnotify feh maim xclip gammastep xss-lock
pipewire wireplumber libspa-bluetooth alsa-pipewire rtkit pavucontrol
NetworkManager bluez blueman acpid chrony
NetworkManager bluez blueman acpid chrony tlp tlp-rdw
font-firacode nerd-fonts-symbols-ttf papirus-icon-theme papirus-folders
sassc gtk-engine-murrine gnome-themes-extra qt5ct qt6ct
@ -32,7 +32,7 @@ SUCKLESS="dwm st dmenu slstatus slock scroll clipmenu"
# Tema GTK Everforest, en una versión fija para que siempre salga igual
GTK_TEMA_REPO=https://github.com/Fausto-Korpsvart/Everforest-GTK-Theme
GTK_TEMA_COMMIT=9b8be4d6648ae9eaae3dd550105081f8c9054825
SERVICIOS="dbus elogind polkitd NetworkManager bluetoothd acpid chronyd"
SERVICIOS="dbus elogind polkitd NetworkManager bluetoothd acpid chronyd tlp automontaje"
# NetworkManager gestiona la red él solo; estos servicios se pelean con él.
SERVICIOS_FUERA="dhcpcd wpa_supplicant"
GRUPOS="audio video input network bluetooth"
@ -159,7 +159,15 @@ sistema() {
cd "$DIR/sistema"
find . -type f | while read -r f; do
f=${f#.}
sudo install -D -m "$(stat -c %a ".$f")" ".$f" "$f"
case $f in
/etc/sudoers.d/*)
# git no guarda el modo 440 que exige sudo; y un sudoers
# roto deja sin sudo, así que se valida antes de copiarlo.
visudo -cf ".$f" >/dev/null || die "sudoers inválido: $f"
sudo install -D -m 440 ".$f" "$f"
;;
*) sudo install -D -m "$(stat -c %a ".$f")" ".$f" "$f" ;;
esac
echo " $f"
done
cd "$DIR"