Pruebo el gestor de ventanas Hyprland por primera vez en mi openSUSE Tumbleweed

Desde hace un tiempo, dentro del mundo de GNU/Linux, ha despuntado un nuevo gestor de ventanas de tipo tiling llamado Hyprland. La novedad es que utiliza Wayland y ofrece vistosas animaciones composiciones de ventanas, debido a que se puede configurar cada aspecto del escritorio.
Ya había utilizado algún tiempo i3wm como gestor tiling de ventanas, pero Hyprland venía a dar un salto cualitativo y actualizado a esa opción. Así que quise probarlo y ver qué aspecto tiene…
Lo probé hace un tiempo, instalando Hyprland en un equipo de prueba en openSUSE desde sus repositorios y la experiencia fue… nefasta. Hyprland necesita mucha configuración y complementos para empezar a hacer utilizable un sistema.
Pero algo me hizo cambiar de idea y volver a probar Hyprland como un novato…
El pasado febrero de 2026 Lubos Kocman publicó un mensaje en la lista de correo de openSUSE, donde informaba de que se había creado un «patrón» de instalación relativo a Hyprland, para ofrecer esa alternativa a los usuarios de openSUSE. El correo lo puedes encontrar en este enlace:
En resumen comentaba que se iba a crear un «patrón» de instalación de Hyprland y que esto incluiría ciertas configuraciones y complementos necesarios para empezar a utilizar el sistema nada más instalado.
Ese patrón de instalación incluiría:
greetdcongtkgreet+cagecomo gestor de login sencillo (se evitó sddm porque arrastra unas 150 dependencias adicionales).- Hyprland con citas de bienvenida (“splash quotes”) de Gertjan.
waybar, bien integrada con el sistema.opensuse-welcome-launchery el binario estáticoopensuse-welcome.hyprland-qtutilspara evitar que Hyprland se queje por la ausencia de `hyprland-guiutils y para ofrecer un diálogo cuando hay una actualización de Hyprland.hyprpapercon un fondo de pantalla de openSUSE basado en un wallpaper de Kraith para Hyprland. (no lo he visto)
Atajos de teclado por defecto:
- Terminal
kittycon Super+q - Gestor de archivos Thunar con Super+e.
- Capturas de pantalla con
grimusando la tecla de Impr Pant. - Lanzador
nwg-drawercon Super+r. - Super+m cierra la sesión
Filosofía de configuración
- La configuración está pensada como mínima, sin imponer demasiado al usuario.
- Se plantea incluso si se podría prescindir de
qtutils. - El paquete de “branding” instala configuraciones por defecto en
/etc/xdgrespetando siempre la configuración del usuario.
Así que ahora sí, quise volver a probarlo. Abrí Myrlyn, el gestor gráfico de paquetes de openSUSE, fui al apartado de Patrones o Patterns y seleccione el compositor Hyprland y Hyprland plugins, lo que selecciona para instalar un montón de software adicional.
Terminado el proceso de instalación de todo el software, cerré la sesión actual y entré en mi recién estrenada sesión de Hyprland. Bueno, ahora ya era otra cosa. Ya había algo más parecido a un sistema.
Recién llegado a Hyprland esto es lo que tienes que hacer
Lo primero saber que todos estos gestores de ventanas tiling, tienen un archivo de configuración desde el cual se gestionan todos o muchos de los aspectos y comportamientos del sistema: atajos de teclado, comportamiento de las ventanas, espacios de trabajo, etc…
En openSUSE Tumbleweed lo primero que hice fue editar el archivo /home/<mi_usuario>/.config/hyp/hyprland.conf.
Si no existe puedes crear la ruta y copiar el archivo que existe en: /usr/share/hypr/hyprland.conf Y ya en tu home editar en ese archivo lo que quieras.
Esto fue lo primero que modifiqué:
- El esquema del teclado a español. La variable
kb_layout = es - Yo quiero seguir utilizando Dolphin como gestor de archivos, quiero konsole como terminal y wofi como lanzador de programas. Así que:
$terminal = konsole$fileManager = dolphin$menu = wofi --show drun --insensitive
- El cursor de Hyprland no me gusta nada, así que configuré uno bien conocido como Adwaita (si lo tienes instalado en tu equipo u el que prefieras)
- env = XCURSOR_THEME,Adwaita
- env = XCURSOR_SIZE,16
- env = HYPRCURSOR_THEME,Adwaita
- env = HYPRCURSOR_SIZE,16
- Reduje el valor de las «gaps» o la separación de las ventanas entre sí, y de estas con el exteriror y el borde de las ventanas:
- gaps_in = 3
- gaps_out = 10
- border_size = 1
Atajos de teclado
Igual que en i3wm, el escritorio está pensado para utilizarse mediante el teclado. Pulsando la tecla «super» o la del icono de Windows (si la tienes) y otra tecla lanzarás las aplicaciones predeterminadas. En mi caso:
- Super + Q → Abre la terminal. (Prueba a abrir varias para ver cómo se van haciendo sitio)
- Super + C → Para cerrar la ventana actual. Aprovecha a cerrar todas las terminales que abriste antes.
- Super + M → Ejecuta un comando para cerrar la sesión
- Super + E → Abre el gestor de archivos, en mi caso Dolphin
- Super + V → Hace la ventana activa flotante y la podrás mover por el escritorio
- Super + R → Abre el menú lanzador de aplicaciones, en mi caso wofi
- Super + Espacio → Igual al anterior
Por supuesto todos estos atajos los puedes cambiar a tu preferencia.
Para mover el foco a una ventana u otra, la tecla super y las teclas de las flechas.
Para ir a un espacio de trabajo u otro, mediante la tecla super y los números del 1 al 0, así tienes 10 espacios de trabajo en los que abrir tus ventanas.
Si una ventana la tienes abierta en el espacio 1 y la quieres llevar al 2, mediante Super + Shift + 2 y llevará esa ventana al espacio 2. Similar con cualquiera de los espacios disponibles.
Y con esto más o menos ya puedes empezar a funcionar. Guardas los cambios y si no has tenido errores, los cambios son tomados en cuenta inmediatamente. Por aquí te dejo mi archivo de configuración inicial:
################
### MONITORS ###
################
monitor=,preferred,auto,auto
###################
### MY PROGRAMS ###
###################
$terminal = konsole
$fileManager = dolphin
$menu = wofi --show drun --insensitive
#################
### AUTOSTART ###
#################
exec-once = nm-applet
exec-once = waybar
exec-once = hyprpaper
#############################
### ENVIRONMENT VARIABLES ###
#############################
env = XCURSOR_THEME,Adwaita
env = XCURSOR_SIZE,16
env = HYPRCURSOR_THEME,Adwaita
env = HYPRCURSOR_SIZE,16
#####################
### LOOK AND FEEL ###
#####################
general {
gaps_in = 3
gaps_out = 10
border_size = 1
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
resize_on_border = true
allow_tearing = false
layout = dwindle
}
decoration {
rounding = 5
rounding_power = 2
active_opacity = 1.0
inactive_opacity = 0.95
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
#################
### ANIMATIONS ##
#################
animations {
enabled = yes
bezier = easeOutQuint, 0.23, 1, 0.32, 1
bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1
bezier = linear, 0, 0, 1, 1
bezier = almostLinear, 0.5, 0.5, 0.75, 1
bezier = quick, 0.15, 0, 0.1, 1
animation = global, 1, 6, default
animation = border, 1, 5, easeOutQuint
animation = windows, 1, 4, easeOutQuint
animation = fade, 1, 2, quick
animation = workspaces, 1, 2, almostLinear
}
#################
### LAYOUTS #####
#################
dwindle {
pseudotile = true
preserve_split = true
}
master {
new_status = master
}
misc {
force_default_wallpaper = -1
disable_hyprland_logo = false
}
#############
### INPUT ###
#############
input {
kb_layout = es
follow_mouse = 2
sensitivity = 0
touchpad {
natural_scroll = false
tap-to-click = true
}
}
gesture = 3, horizontal, workspace
device {
name = epic-mouse-v1
sensitivity = -0.5
}
###################
### KEYBINDINGS ###
###################
$mainMod = SUPER
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive
bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating
bind = $mainMod, R, exec, $menu
bind = $mainMod, SPACE, exec, $menu
bind = $mainMod, P, pseudo
bind = $mainMod, J, togglesplit
# Focus
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Workspaces
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Scratchpad
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll workspaces
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Mouse move/resize
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Volume / brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
# Media
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
##############################
### WINDOW RULES #############
##############################
windowrule {
name = suppress-maximize-events
match:class = .*
suppress_event = maximize
}
windowrule {
name = fix-xwayland-drags
match:class = ^$
match:title = ^$
match:xwayland = true
match:float = true
match:fullscreen = false
match:pin = false
no_focus = true
}
windowrule {
name = move-hyprland-run
match:class = hyprland-run
move = 20 monitor_h-120
float = yes
}
Y con esto ya puedes empezar a dar los primeros pasos en Hyprland como los he empezado a dar yo. Si veo que el artículo tiene aceptación, escribiré otro sobre cómo he modificado la configuración de la barra waybar, para mostrarla como se ve en la captura que abre el artículo.
La configuración en estos sistemas se puede volver en algo infinito y que consume nuestro tiempo, puliendo este detalle, dándole ese toque, etc. Puede ser un buen pasatiempo para aprender o puede convertirse en un sumidero de tiempo.
Te aconsejo que te lo tomes con calma y vayas aprendiendo poco a poco sobre Hyprland. Ahora en openSUSE nos han hecho sencillo dar nuestros primeros pasos en Hyprland.

victorhck
Captura de pantalla de Hyprland en openSUSE. çse ven dos terminales mostrando información del sistema

se ve la ilustración de un pingüino con los ojos medio cerrados, encima de una tabla de surf y en su barriga el texto: Linux Inside
