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 |
||
|---|---|---|
| home | ||
| sistema/etc | ||
| suckless | ||
| .gitignore | ||
| install.sh | ||
| README.md | ||
suckless
Mis dotfiles para Void Linux: dwm, st, dmenu, slstatus, slock, scroll y clipmenu, más la configuración de la sesión (xinitrc, bash, picom, dunst...). Tema Everforest y fuente Fira Code en todos.
Estructura
| Carpeta | Contenido |
|---|---|
suckless/ |
Los programas, cada uno con su config.h y sus parches |
home/ |
Archivos que van en ~, con la misma ruta (se enlazan) |
sistema/ |
Archivos que van en / (acpid, zzz, elogind) |
install.sh |
Lo instala todo en un Void recién instalado |
Instalar
En un Void recién instalado, como tu usuario (pide sudo cuando hace falta):
git clone ssh://forgejo@ssh.alejandrogs.es/alejandrogs73/suckless.git ~/suckless
cd ~/suckless && ./install.sh
Hace cinco pasos, que también se pueden lanzar por separado
(./install.sh enlaces, por ejemplo) y repetir sin problema:
paquetes: instala con xbps todo lo que usa la configuración.suckless: compila e instala los programas en/usr/local.enlaces: enlaza cada archivo dehome/en~. Si ya existía un archivo distinto, lo guarda como.bak. Como son enlaces, editar~/.bashrces editar el repo.gnupg: para después de copiar~/.gnupga mano (de un USB, por ejemplo). Arregla los permisos, ponepinentry-gtk(en una tty cae a curses solo), activa el agente SSH de gpg y añade asshcontrollas subclaves de autenticación..bashrcya apuntaSSH_AUTH_SOCKal agente. Si~/.gnupgno existe todavía, no hace nada.sistema: copiasistema/en/, activa los servicios de runit (dbus, elogind, polkitd, NetworkManager, bluetoothd, acpid, chronyd), quita dhcpcd y wpa_supplicant (NetworkManager ya gestiona la red) y añade el usuario a los grupos audio, video, input, network y bluetooth.
Después hay que cerrar sesión y volver a entrar (por los grupos) y lanzar
startx.
Nix no se instala: lo poco que viene de ahí (webcord) se instala a mano.
Recompilar tras cambiar la configuración
cd suckless/dwm && make && sudo make install
Actualizar desde el proyecto original
Cada programa se importó con git subtree --squash:
git subtree pull --prefix=suckless/dwm https://git.suckless.org/dwm master --squash
git subtree pull --prefix=suckless/clipmenu https://github.com/cdown/clipmenu develop --squash
Los demás funcionan igual que dwm, cambiando el nombre en --prefix y en la URL.
Atajos de dwm
Mod es Super (en el dwm original es Alt). Los atajos de ratón también usan
Super. Solo aparecen los atajos que cambian respecto al original o que son
nuevos; el resto están igual. Los atajos de st, scroll, dmenu y slock no se han
tocado.
Cambiados
| Acción | Original | Ahora |
|---|---|---|
Abrir terminal (st) |
Mod+Shift+Return | Mod+Return |
| zoom (mover la ventana al área principal) | Mod+Return | Mod+Shift+Return |
| Cerrar ventana | Mod+Shift+c | Mod+q |
| Salir de dwm | Mod+Shift+q | Mod+Shift+m |
Nuevos
| Atajo | Acción |
|---|---|
| Mod+v | clipmenu (misma paleta y fuente que dmenu) |
| Mod+Shift+l | Bloquear la pantalla con slock |
Mod+- / Mod++ |
Reducir / aumentar los gaps |
Mod+Shift++ |
Gaps a 0 |
| Tecla de subir / bajar volumen | Volumen ±5% con wpctl (máximo 100%) |
| Tecla de silenciar | Silenciar o activar el audio |
| Tecla de silenciar micro o Mod+ñ | Silenciar o activar el micrófono |
| Impr Pant | Captura de pantalla completa con maim |
| Shift+Impr Pant | Captura de una región |
Las capturas se guardan en ~/Imágenes/Capturas, se copian al portapapeles y
muestran una notificación.
Notas
- La configuración personal está en
config.h.config.def.hes la versión original más los parches. Si un parche cambiaconfig.def.h, hay que pasar el cambio a mano aconfig.h:makesolo lo copia siconfig.hno existe. - Los parches aplicados están en
suckless/<programa>/patches/.- dwm: fullgaps, restartsig, preserveonrestart, statuscmd-nosignal y swallow.
- st: kitty-graphics, alpha, glyph-wide-support y ligatures, en ese orden.
kitty-graphics ya incluye anysize. glyph-wide-support y la combinación
con ligatures vienen de la rama
graphics-with-patchesde st-graphics, sin boxdraw.
- st muestra imágenes con el protocolo de gráficos de kitty; yazi lo detecta solo y enseña las vistas previas sin ueberzugpp.
- slock está modificado a mano (no es un parche): reloj, fecha, batería y una barra inferior con el color del estado.