Hyprland¶
Índice¶
- Resumen
- Archivos
- hyprland.lua — Configuración principal
- keybinds.lua — Atajos de teclado
- animations.lua
- rules.lua
- Scripts
- Notas y recursos
Resumen¶
El directorio ~/.config/hypr/ contiene la configuración completa del compositor Hyprland (v0.55+). Hyprland usa una API Lua para la configuración, lo que permite lógica programática (bucles, funciones, condiciones) en lugar de un formato de configuración estático.
La configuración está dividida en varios archivos Lua para mantenerla organizada.
Archivos¶
| Archivo | Propósito |
|---|---|
hyprland.lua |
Configuración principal — monitor, apariencia, reglas generales |
keybinds.lua |
Todos los atajos de teclado |
animations.lua |
Definición de animaciones de ventanas |
rules.lua |
Reglas de ventanas (float, tamaño, workspace) |
menu.conf |
Configuración auxiliar (contextual) |
scripts/ |
Scripts de shell invocados por los keybinds |
hyprland.lua — Configuración principal¶
Variables globales¶
Sección general¶
Controla el comportamiento básico del compositor:
| Parámetro | Valor | Descripción |
|---|---|---|
gaps_in |
4 |
Espacio entre ventanas (px) |
gaps_out |
8 |
Espacio entre ventanas y borde de pantalla (px) |
border_size |
2 |
Grosor del borde de ventanas (px) |
resize_on_border |
true |
Permite redimensionar arrastrando el borde |
allow_tearing |
true |
Permite tearing para menor latencia en juegos |
layout |
dwindle |
Layout de ventanas por defecto |
Colores de borde¶
active_border = { colors = {"rgba(89b19eee)", "rgba(33473dee)"}, angle = 45 }
inactive_border = "rgba(2a2a2a00)"
El borde activo usa un gradiente de 45° con los colores $accent (#89B19E) → $primary (#33473D) de la paleta del sistema.
Variables de entorno Qt¶
QT_QPA_PLATFORMTHEME=qt6ct permite que apps Qt (ej. qt6ct/Kvantum) respeten el tema oscuro configurado. No debe forzarse QT_STYLE_OVERRIDE (ej. breeze) — eso sobreescribe el style=kvantum configurado en qt6ct.conf sin importar lo que diga el usuario, causando texto negro illegible sobre fondos oscuros en apps como Dolphin.
Cambios en estas variables requieren relogin/reinicio de Hyprland para tomar efecto — quedan exportadas al entorno de la sesión gráfica completa, no solo al proceso que las lee.
exec-once¶
Comandos que se ejecutan una sola vez al iniciar Hyprland:
-- Ejemplos típicos
exec-once = ags run ~/.config/ags/app.ts -i ags-bar
exec-once = bash ~/.config/wallman/restore.sh
exec-once = /usr/lib/polkit-kde-authentication-agent-1
exec-once = wl-paste --type text --watch cliphist store
keybinds.lua — Atajos de teclado¶
Todos los atajos usan la función hl.bind(combo, action, opts?).
Wrapper Lua de dispatch (hl.dsp.*)
Este fork de Hyprland envuelve los comandos dispatch del IPC en un intérprete Lua que espera sintaxis de llamada a función (hl.dsp.focus({workspace="2"})), no la sintaxis clásica dispatch workspace 2. Cualquier script externo (incluido AGS) que necesite despachar comandos debe usar hyprctl dispatch 'hl.dsp.<fn>({...})' con argumentos como string Lua entre comillas — el método nativo AstalHyprland.dispatch(dispatcher, args) envía la sintaxis clásica y falla con ')' expected near '2'.
Aplicaciones¶
| Atajo | Acción |
|---|---|
SUPER + Return |
Kitty (terminal) |
SUPER + T |
Kitty (terminal) |
CTRL+ALT + T |
Kitty (terminal) |
SUPER + E |
Dolphin (explorador de archivos) |
SUPER + W |
Firefox |
SUPER + C |
Command Center (AGS) |
SUPER + X |
Kate (editor de texto) |
SUPER + I |
gnome-control-center |
CTRL+SHIFT + Escape |
gnome-system-monitor |
Lanzador¶
| Atajo | Acción |
|---|---|
SUPER + SUPER_L (soltar) |
Rofi (drun) — toggle |
Super_L (soltar) |
rofi-toggle.sh |
Ventanas¶
| Atajo | Acción |
|---|---|
SUPER + Q |
Cerrar ventana activa |
ALT + F4 |
Cerrar ventana activa |
SUPER+SHIFT+ALT + Q |
hyprctl kill (selector de ventana) |
SUPER+ALT + Space |
Flotar/desflotar ventana |
SUPER + D |
Maximizar (toggle) |
SUPER + F |
Pantalla completa (toggle) |
SUPER + P |
Pin (mantener en todos los workspaces) |
Foco y movimiento¶
| Atajo | Acción |
|---|---|
SUPER + ←/→/↑/↓ |
Mover foco |
SUPER+SHIFT + ←/→/↑/↓ |
Mover ventana |
SUPER + Tab |
Siguiente ventana |
Workspaces¶
| Atajo | Acción |
|---|---|
SUPER + 1-9 |
Ir a workspace 1-9 |
SUPER + 0 |
Ir a workspace 10 |
SUPER+SHIFT + 1-9 |
Mover ventana a workspace 1-9 |
SUPER+ALT + 1-9 |
Mover ventana sin seguir |
CTRL+SUPER + ←/→ |
Workspace anterior/siguiente |
SUPER + S |
Scratchpad (toggle) |
Multimedia¶
| Atajo | Acción |
|---|---|
XF86AudioRaiseVolume |
Volumen +5% |
XF86AudioLowerVolume |
Volumen -5% |
XF86AudioMute |
Silenciar altavoz |
XF86AudioMicMute |
Silenciar micrófono |
SUPER+SHIFT + M |
Silenciar altavoz |
SUPER+ALT + M |
Silenciar micrófono |
XF86MonBrightnessUp/Down |
Brillo +/-5% |
SUPER+SHIFT + N/B/P |
Siguiente / anterior / play-pause |
Herramientas¶
| Atajo | Acción |
|---|---|
SUPER+SHIFT + S |
Captura de región |
Print |
Captura de pantalla completa |
CTRL + Print |
Guardar captura |
SUPER+SHIFT + C |
Color picker (hyprpicker) |
SUPER + V |
Historial del portapapeles |
SUPER + Period |
Selector de emojis |
SUPER + N |
Centro de notificaciones (AGS) — ags toggle -i ags-bar notif-center |
SUPER + ' |
Visor de keybinds (AGS) |
Sesión¶
| Atajo | Acción |
|---|---|
SUPER + L |
Bloquear pantalla (hyprlock) |
SUPER+SHIFT + L |
Suspender |
CTRL+ALT + Delete |
Menú de sesión (AGS PowerMenu) |
XF86PowerOff |
Menú de sesión (AGS PowerMenu) |
Nota: El botón de encendido físico está configurado para NO apagar directamente. Ver systemd-logind.
systemd-logind¶
Para evitar que el botón físico de encendido apague el equipo independientemente de AGS:
Sin esta configuración, logind apaga el equipo y AGS muestra el menú de sesión simultáneamente.
animations.lua¶
Define las animaciones de apertura, cierre y movimiento de ventanas. Usa el sistema de curvas de bezier de Hyprland.
rules.lua¶
Define reglas que se aplican automáticamente a ventanas según su clase o título:
- Ventanas flotantes por defecto (ej. diálogos de archivo, pavucontrol).
- Asignación automática a workspaces.
- Tamaño y posición inicial.
Scripts¶
Todos los scripts se encuentran en ~/.config/hypr/scripts/ y son ejecutables.
screenshot.sh¶
Captura de pantalla usando grim (captura Wayland) y slurp (selección de región).
| Argumento | Acción |
|---|---|
region |
Seleccionar región con slurp, guardar y copiar al portapapeles |
screen |
Pantalla completa, guardar y copiar |
save |
Guardar en ~/Pictures/Screenshots/ |
Las capturas se guardan en ~/Pictures/Screenshots/Screenshot_YYYY-MM-DD_HH.MM.SS.png y se notifican via notify-send.
clipboard.sh¶
Historial del portapapeles usando cliphist y rofi.
- Lista el historial con
cliphist list. - Muestra en rofi con búsqueda (
-i). - Decodifica la entrada seleccionada con
cliphist decodey la copia conwl-copy.
Requiere que el daemon
wl-paste --type text --watch cliphist storeesté corriendo (típicamente enexec-once).
emoji.sh¶
Selector de emojis con rofi.
- Si no existe
~/.config/hypr/scripts/emojis.txt, lo genera con una lista de emojis comunes. - Muestra la lista en rofi.
- Copia el emoji seleccionado al portapapeles con
wl-copy. - Envía una notificación de confirmación.
powermenu.sh¶
Menú de sesión alternativo usando rofi puro (sin AGS). Opciones: Lock, Suspend, Logout, Reboot, Shutdown. Ejecuta los comandos correspondientes de loginctl/systemctl.
Este script coexiste con el
PowerMenu.tsxde AGS. El keybindSUPER+Escapeapunta a este script;CTRL+ALT+DELusa el de AGS.
rofi-toggle.sh¶
Hace toggle de rofi: si ya está corriendo lo cierra, si no lo abre. Loguea en /tmp/rofi-debug.log.
init-wallpaper.sh¶
(Script de sesión anterior, puede diferir de wallman/restore.sh) Restaura el último fondo guardado en ~/.cache/current_wallpaper al iniciar sesión. Soporta imágenes (via awww) y videos (via mpvpaper).
wallpaper.sh¶
Selector interactivo de fondos que busca en ~/Pictures/Wallpapers/. Versión alternativa/anterior de wallman/wallpicker.sh.
Notas y recursos¶
- Documentación de Hyprland
- API Lua de Hyprland
- hyprlock — configuración del locker
- hyprpicker — selector de color
- Para los atajos que abren widgets AGS: ver AGS Bar