Commit graph

52 commits

Author SHA1 Message Date
2850a4fc73
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
2026-09-27 21:48:36 +02:00
2c2adaaa79
Aviso de batería, luz nocturna, historial de notificaciones y más
- bateria (home/.local/bin): avisa al 15 % y, en rojo, al 5 % mientras
  descarga. Se lanza desde .xinitrc.
- gammastep: luz cálida (4000 K) de 20:00 a 8:00 con transición de una
  hora, por horas fijas en vez de ubicación.
- dwm: Mod+n recupera la última notificación y Mod+Shift+n las cierra.
- Carpetas del usuario en inglés y sin tildes (user-dirs.dirs); las
  capturas pasan a ~/Images/Screenshots.
- .bash_profile lanza startx al entrar en tty1.
- btop con el tema everforest-dark-medium.
- gpg-agent recuerda la contraseña una hora (antes 10 minutos).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
2026-09-27 21:40:00 +02:00
94992e4b45
git: firmar con GPG, rama master por defecto y ajustes habituales
- Commits y tags firmados con la clave 1CFF10953BEE333C.
- init.defaultBranch = master.
- pull con rebase (y autoStash), push que crea la rama remota, fetch que
  limpia ramas borradas, diffs con histogram y colorMoved, conflictos en
  zdiff3, rerere, ramas ordenadas por fecha y alias lg y st.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
2026-09-27 21:29:56 +02:00
0d928f6dc5 Qt: qt5ct/qt6ct con Fusion, paleta Everforest e iconos Papirus
Las apps Qt 5 (VLC) y Qt 6 (OBS, PrismLauncher) se ven como las de GTK:
estilo Fusion, una paleta Everforest dark medium propia y Papirus-Dark.

- home/.config/qt5ct y qt6ct: configuración y paleta. La ruta de la
  paleta va con $HOME, que qt5ct/qt6ct expanden.
- .xinitrc exporta QT_QPA_PLATFORMTHEME=qt5ct; el plugin de qt6ct también
  responde a ese nombre, así que vale para las dos versiones.
- install.sh instala qt5ct y qt6ct.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
2026-09-27 21:05:15 +02:00
2eb145f3bb GTK: tema Everforest e iconos Papirus-Dark
- install.sh tiene un paso nuevo, gtk: compila Everforest-GTK-Theme
  (verde, oscuro, medium) en ~/.themes desde un commit fijo, lo enlaza
  para GTK 4 y pone verdes las carpetas de Papirus (papirus-folders).
- La parte de GTK 2 del tema trae los colores de Gruvbox, porque su
  plantilla no coincide con lo que sustituye su script. Se cambian por
  Everforest medium; pinentry-gtk es GTK 2 y se veía con otros colores.
- home/: .gtkrc-2.0 y settings.ini de GTK 3 y 4 con el tema y
  Papirus-Dark.
- dwm: pinentry-gtk flota (antes ocupaba toda la pantalla).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
2026-09-27 20:52:56 +02:00
53498b8cd3 Notificación al cambiar el volumen o silenciar el micro
Las teclas de audio solo llamaban a wpctl y refrescaban slstatus, sin
avisar. Ahora pasan por el script volumen (home/.local/bin), que hace lo
mismo y además muestra una notificación con icono y barra de nivel. Se
sustituye a sí misma en vez de apilarse. Los clics en VOL de la barra
usan el mismo script.

Se añade rtkit a install.sh: sin él, cada llamada a wpctl (también las
de slstatus cada 2 s) llenaba el log de avisos de RTKit, y el audio no
tenía prioridad de tiempo real.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
2026-09-27 20:42:30 +02:00
16125211fe bash: quitar rutas y alias que ya no se usan
Fuera flatpak, emacs, opencode, Antigravity (PATH duplicado) y los alias
data, factorio y cstrike.

La línea de flatpak además rompía cosas: dejaba XDG_DATA_DIRS sin
/usr/share, así que nada encontraba los temas de iconos ni la base de
datos MIME (dunst no podía ni abrir un PNG).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
2026-09-27 18:26:11 +02:00
816480d36f dunst: Everforest, Fira Code y esquinas redondeadas
Configuración nueva desde cero (solo lo que cambia respecto al valor por
defecto), a juego con el resto: borde de 2 px como las ventanas de dwm
(verde normal, gris baja, rojo crítica), esquinas de 8 px como picom,
debajo de la barra de dwm y con separación entre notificaciones.

- Iconos de Papirus-Dark: Adwaita ya solo trae iconos simbólicos y las
  notificaciones con nombre de icono salían sin él. Se añade
  papirus-icon-theme a install.sh.
- dmenu con los colores en formato rgb:, porque dunst trata "#" como
  comentario y la línea se cortaba.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
2026-09-27 18:26:11 +02:00
a57d569e66 fontconfig: iconos de Nerd Font antes que Linux Libertine G
Los separadores redondeados de yazi (U+E0B4 y U+E0B6) salían como una
"i" y una "T": fontconfig elegía Linux Libertine G / Biolinum G (de
LibreOffice), que usan esa zona de uso privado para otras cosas. Se les
quita la zona al escanearlas y Symbols Nerd Font pasa a ser la primera
fuente de reserva de Fira Code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
2026-09-27 18:08:49 +02:00
3aa250c8dd Dotfiles de la sesión e install.sh para Void
- home/: xinitrc, bashrc, bash_profile, gitconfig, picom, dunst,
  mimeapps.list y el fondo de pantalla. Se enlazan en ~ con la misma ruta.
- xinitrc: feh directamente en vez de .fehbg, y XDG_RUNTIME_DIR a mano solo
  si elogind no lo ha creado.
- mimeapps.list: firefox.desktop en vez del .desktop autogenerado.
- install.sh: instala los paquetes de Void, compila los programas, enlaza
  home/, prepara GnuPG (permisos, pinentry-gtk y agente SSH), copia
  sistema/ y activa servicios y grupos.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
2026-09-27 17:52:32 +02:00
d6dbf86493 st: imágenes con el protocolo de kitty (vistas previas en yazi)
Se rehace st desde el 0.9.3 original con los parches:

- kitty-graphics (oficial, 20251230): muestra imágenes en la terminal;
  yazi lo detecta solo y no necesita ueberzugpp. Ya incluye anysize, así
  que ese parche sobra.
- alpha, sin cambios.
- glyph-wide-support: los iconos anchos (Nerd Font) no se cortan.
- ligatures, con los conflictos resueltos como en la rama
  graphics-with-patches de st-graphics, quitando lo de boxdraw.

config.h lleva los mismos cambios de antes sobre el config.def.h nuevo.
Necesita imlib2-devel para compilar.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
2026-09-27 17:52:25 +02:00
4582fa3d5a Reubicar los subtrees en suckless/
git subtree busca el último squash de cada programa por su carpeta
(git-subtree-dir) y ya no los encontraba tras moverlos. Este merge une
una copia de cada squash con la carpeta nueva; no cambia ningún archivo.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
2026-09-27 17:52:02 +02:00
307fba1e17 Squashed 'suckless/dwm/' content from commit 44dbc68
git-subtree-dir: suckless/dwm
git-subtree-split: 44dbc6809d05b8f2addc483f882e670db0b6b8e9
2026-09-27 17:52:02 +02:00
7dc635497e Squashed 'suckless/st/' content from commit 688f70a
git-subtree-dir: suckless/st
git-subtree-split: 688f70add0d1da8a416bf7df763328d694a24a3a
2026-09-27 17:52:02 +02:00
c888bafafb Squashed 'suckless/dmenu/' content from commit 7175c48
git-subtree-dir: suckless/dmenu
git-subtree-split: 7175c4880bac3d2a2d4a6262b59193f0a38e2fdb
2026-09-27 17:52:02 +02:00
9ae5fa5142 Squashed 'suckless/slstatus/' content from commit 675c839
git-subtree-dir: suckless/slstatus
git-subtree-split: 675c83912ea1aca9834448aaa87a040bc9990c52
2026-09-27 17:52:02 +02:00
9586e3bdb0 Squashed 'suckless/slock/' content from commit 65cb721
git-subtree-dir: suckless/slock
git-subtree-split: 65cb721c9eb7b5d80267378790dee93e9db0223c
2026-09-27 17:52:02 +02:00
112255cfb0 Squashed 'suckless/scroll/' content from commit 51ee387
git-subtree-dir: suckless/scroll
git-subtree-split: 51ee387dd3860b13baaca5ef23392f7282e9bbdc
2026-09-27 17:52:02 +02:00
cb051ead76 Squashed 'suckless/clipmenu/' content from commit e0ec3bc6
git-subtree-dir: suckless/clipmenu
git-subtree-split: e0ec3bc6608ecc70ed17e8da76e27bf90b1e8e90
2026-09-27 17:52:02 +02:00
fbda573897 Mover los programas a suckless/
Primer paso para convertir el repo en dotfiles: los programas de suckless
van juntos en una carpeta y la raíz queda para la configuración de la
sesión y el script de instalación.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
2026-09-27 17:51:52 +02:00
ce3a0db5bf slock: pantalla con reloj, fecha, batería y barra de estado
El fondo es fijo y el color del estado (inicio, escribiendo, error) pasa a
una barra inferior. Se muestran la hora, la fecha, un punto por carácter
tecleado, el usuario y la batería, refrescando reloj y batería cada
segundo. Usa Xft y los iconos de Symbols Nerd Font.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
2026-09-27 14:29:49 +02:00
c736ea8b01 sistema: bloquear con slock antes de suspender y evitar la doble suspensión
elogind ignora la tapa y los botones para que solo actúe acpid (zzz), y un
hook de zzz lanza slock antes de suspender.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MymT1wzMgXhfC3ZwHqNAVF
2026-09-26 19:39:02 +02:00
6e3577087b slstatus: red sin procesos, zonas clicables, BT OFF y refresco cada 2 s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MymT1wzMgXhfC3ZwHqNAVF
2026-09-26 19:39:02 +02:00
ee7e036c7f dwm: parches restartsig, preserveonrestart, statuscmd-nosignal y swallow
- Mod+Shift+r reinicia dwm sin cerrar ventanas y cada una sigue en su tag
- Clics en la barra: red (nmtui), volumen (pavucontrol, silenciar, micro,
  rueda) y bluetooth (blueman, encender/apagar)
- swallow: lo que se abre desde st sustituye a la terminal
- Reglas: flotan centradas pavucontrol, blueman, nmtui y ventanas de Firefox

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MymT1wzMgXhfC3ZwHqNAVF
2026-09-26 19:39:02 +02:00
be5e55f4a8 dwm: borde opaco para ventanas ARGB (st con alpha)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MymT1wzMgXhfC3ZwHqNAVF
2026-09-26 19:39:02 +02:00
433e9d2eb4 README: atajos de teclado de dwm cambiados y nuevos
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 11:10:06 +02:00
8def698783 Añadir README con instrucciones de compilación y actualización
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:58:06 +02:00
ed27033ce7 st: config.h regenerado con alpha 0.9, colores brillantes Everforest y tabuladores
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:57:35 +02:00
0c47f8d9fb st: parches ligatures (0.9.3), alpha y anysize
Aplicados en ese orden desde st/patches/. anysize se resolvió a mano
en xmakeglyphfontspecs() y xdrawglyphfontspecs() (usar win.hborderpx y
win.vborderpx en vez de borderpx), y lo mismo para la posición del IME.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:57:35 +02:00
b23ab3e35d slock: colores Everforest
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:56:21 +02:00
00702f2391 dwm: clipmenu con la misma paleta y fuente que dmenu
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:56:11 +02:00
eaf587b1f9 Importar clipmenu (rama develop) desde https://github.com/cdown/clipmenu 2026-09-25 10:55:49 +02:00
b4e3116f02 Squashed 'clipmenu/' content from commit e0ec3bc6
git-subtree-dir: clipmenu
git-subtree-split: e0ec3bc6608ecc70ed17e8da76e27bf90b1e8e90
2026-09-25 10:55:49 +02:00
9f63f3fa03 gitignore: binarios de slstatus, slock y clipmenu
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:55:47 +02:00
643d7ca2bb Importar slock desde https://git.suckless.org/slock 2026-09-25 10:54:33 +02:00
47b2a51422 Squashed 'slock/' content from commit 65cb721
git-subtree-dir: slock
git-subtree-split: 65cb721c9eb7b5d80267378790dee93e9db0223c
2026-09-25 10:54:33 +02:00
993d1b1fef dmenu: paleta Everforest y Fira Code por defecto
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:54:27 +02:00
9c8e166fe6 slstatus: volumen con wpctl, indicador de micro, ETH/WiFi y estado de batería
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:54:19 +02:00
bd84917dfe dwm: gaps de 4px con atajos, audio con límite 100%, micro, bloqueo, capturas y clipmenu
- config.h regenerado desde config.def.h (faltaban los atajos de setgaps)
  e indentado con tabuladores
- gaps: Mod+-/Mod++ (teclado español) y Mod+Shift++ para quitarlos
- volumen limitado a 100% y refresco inmediato de slstatus
- silenciar micro con Mod+ñ y XF86AudioMicMute
- slock con Mod+Shift+l, clipmenu con Mod+v
- capturas con Impr (pantalla) y Shift+Impr (selección) usando maim
- quitar regla de Firefox que no hacía nada
- arreglar indentación de tile() tras el parche fullgaps

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:53:55 +02:00
af283c5c2d dwm: mover parches a patches/
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:52:28 +02:00
c5af599981 Añadir configuración personal existente y parche fullgaps en dwm
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:52:24 +02:00
865d3d59f7 Importar st desde https://git.suckless.org/st 2026-09-25 10:52:06 +02:00
97f126b896 Importar slstatus desde https://git.suckless.org/slstatus 2026-09-25 10:52:06 +02:00
c646e01166 Squashed 'st/' content from commit 688f70a
git-subtree-dir: st
git-subtree-split: 688f70add0d1da8a416bf7df763328d694a24a3a
2026-09-25 10:52:06 +02:00
00bf7206e3 Importar scroll desde https://git.suckless.org/scroll 2026-09-25 10:52:06 +02:00
2ed1e8d89d Squashed 'slstatus/' content from commit 675c839
git-subtree-dir: slstatus
git-subtree-split: 675c83912ea1aca9834448aaa87a040bc9990c52
2026-09-25 10:52:06 +02:00
b725d70e1c Squashed 'scroll/' content from commit 51ee387
git-subtree-dir: scroll
git-subtree-split: 51ee387dd3860b13baaca5ef23392f7282e9bbdc
2026-09-25 10:52:06 +02:00
338f94a82e Importar dwm desde https://git.suckless.org/dwm 2026-09-25 10:52:05 +02:00
4a4d5f5386 Importar dmenu desde https://git.suckless.org/dmenu 2026-09-25 10:52:05 +02:00
6187187d4a Squashed 'dwm/' content from commit 44dbc68
git-subtree-dir: dwm
git-subtree-split: 44dbc6809d05b8f2addc483f882e670db0b6b8e9
2026-09-25 10:52:05 +02:00