suckless/sistema/usr/local/bin/pantallas
alejandrogs73 a83294ace4
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
2026-09-28 12:12:51 +02:00

39 lines
1.3 KiB
Bash
Executable file

#!/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"