Si usamos nuestra computadora con Linux para ver películas al acostarnos, o para escuchar música mientras hacemos otra cosa, resulta de gran utilidad poder apagar la pantalla cuando ya no la necesitamos, sin tener que levantarnos.
En este artículo veremos cómo hacerlo hoy, que no es como lo hacía yo hace unos años. También veremos algo que casi nunca se explica: cómo apagar una sola pantalla si tenemos dos o más.
Primero: por qué dejó de andar el comando de siempre
Durante años la receta fue una sola línea:
xset dpms force off
Si la probamos hoy en un equipo moderno, lo más probable es que no pase absolutamente nada. Y el motivo no es que el comando esté mal escrito.
Podemos comprobarlo nosotros mismos:
xset q | grep -A2 DPMS
Si la respuesta es esta, ya tenemos el diagnóstico:
DPMS (Display Power Management Signaling):
Server does not have the DPMS Extension
DPMS es el mecanismo que le avisa al monitor que se apague, y xset lo maneja a
través del servidor gráfico X11. El asunto es que Linux viene mudándose a
Wayland, que es otro sistema: Fedora lo usa por defecto desde 2016, Ubuntu desde
2021 y Debian desde la versión 12. Las aplicaciones viejas de X siguen andando gracias
a una capa de compatibilidad llamada XWayland, pero esa capa no implementa
DPMS. Por eso xset no falla con un error: simplemente no tiene a quién pedirle
nada.
Para saber en cuál de los dos estamos:
echo $XDG_SESSION_TYPE
Si responde wayland, el resto de este artículo es para nosotros. Si responde x11,
el comando de toda la vida sigue sirviendo.
Apagar la pantalla en GNOME
GNOME —el escritorio de Ubuntu, Fedora y Debian por defecto— no tiene un comando propio para esto, pero sí expone el control por D-Bus, que es el sistema con el que los programas del escritorio se hablan entre sí.
Para apagar:
gdbus call --session --dest org.gnome.Mutter.DisplayConfig \
--object-path /org/gnome/Mutter/DisplayConfig \
--method org.freedesktop.DBus.Properties.Set \
org.gnome.Mutter.DisplayConfig PowerSaveMode "<3>"
Y para volver a encender, el mismo comando cambiando el 3 por un 0:
gdbus call --session --dest org.gnome.Mutter.DisplayConfig \
--object-path /org/gnome/Mutter/DisplayConfig \
--method org.freedesktop.DBus.Properties.Set \
org.gnome.Mutter.DisplayConfig PowerSaveMode "<0>"
Los valores vienen del estándar DPMS: 0 es encendida y 3 es apagada.
Si en vez de apagar la pantalla queremos bloquear la sesión, hay otra interfaz más directa:
gdbus call --session --dest org.gnome.ScreenSaver \
--object-path /org/gnome/ScreenSaver \
--method org.gnome.ScreenSaver.Lock
Y si tenemos dos pantallas, ¿qué pasa?
Acá está lo interesante, y es la pregunta que en 2011 nunca me hice.
Con xset dpms force off se apagaban todas. No era una limitación del comando:
en X11, DPMS es una propiedad de la pantalla completa, no de cada salida de video.
Nunca hubo forma de elegir un monitor. En 2011 no se notaba porque tener dos pantallas
era poco común; hoy es lo normal.
Y con GNOME sobre Wayland pasa lo mismo: PowerSaveMode también es global.
La buena noticia es que otros escritorios sí lo resuelven. Primero necesitamos saber cómo se llaman nuestras salidas:
ls /sys/class/drm/ | grep -E '^card[0-9]+-'
Vamos a ver nombres como DP-1, HDMI-A-2 o eDP-1. Con eso:
# sway y otros compositores basados en wlroots
swaymsg "output HDMI-A-2 power off"
# wlopm, que sirve para cualquier compositor wlroots
wlopm --off HDMI-A-2
# Hyprland
hyprctl dispatch dpms off HDMI-A-2
# KDE Plasma
kscreen-doctor output.HDMI-A-2.dpms.off
En GNOME, la única forma de dejar una sola pantalla apagada es desactivar esa salida
con el método ApplyMonitorsConfig de Mutter, que es bastante más engorroso: hay que
leer primero el estado actual con GetCurrentState y volver a enviar la configuración
completa sin el monitor que queremos apagar. Es posible, pero no es una línea de
comando: da para un script aparte.
Vale la pena decirlo con todas las letras: en esto GNOME es el que peor anda. Si esta función nos importa mucho, los escritorios basados en wlroots la resuelven en una línea.
El detalle que hacía fallar todo por SSH
Volvamos a la idea original: apagar la pantalla desde el celular o desde otra computadora, por SSH.
Acá hay una trampa que en 2011 tampoco mencioné, y que ya existía entonces. Cuando nos conectamos por SSH, nuestra sesión no es la misma que la del escritorio: no tiene las variables de entorno que apuntan al servidor gráfico, y sin ellas cualquiera de estos comandos falla.
En X11 había que exportar dos variables, y la segunda es la que casi todos olvidan:
export DISPLAY=:0
export XAUTHORITY=/home/USUARIO/.Xauthority
xset dpms force off
Sin XAUTHORITY, el servidor X rechaza al cliente porque no tiene la cookie de
autorización, y el comando falla aunque DISPLAY esté bien puesto.
En Wayland con D-Bus el problema es equivalente, pero la variable es otra:
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus
Con esa línea antes del comando, gdbus encuentra la sesión de escritorio y todo
funciona. Conviene dejarla en un script chiquito para no escribirla cada vez:
#!/usr/bin/env bash
# apagar-pantalla.sh
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus
gdbus call --session --dest org.gnome.Mutter.DisplayConfig \
--object-path /org/gnome/Mutter/DisplayConfig \
--method org.freedesktop.DBus.Properties.Set \
org.gnome.Mutter.DisplayConfig PowerSaveMode "<3>"
Y listo: ssh equipo apagar-pantalla.sh desde el celular, y a dormir.
¿Y en un servidor sin escritorio?
Si la máquina no tiene entorno gráfico y lo que queremos es apagar la consola de texto, no hay ni X ni Wayland de por medio. Alcanza con:
setterm --blank force
Ese comando trabaja directamente sobre la terminal virtual, así que hay que ejecutarlo en la consola en cuestión y no a través de SSH.
Para cerrar
El comando que publiqué en 2011 no envejeció: dejó de tener con quién hablar. La mudanza de X11 a Wayland es probablemente el cambio más profundo que tuvo el escritorio Linux en la última década, y este es un ejemplo chiquito y muy concreto de lo que implica — algo que funcionaba con una línea ahora depende de qué escritorio usamos.
La contra es que perdimos una receta única que servía para todos. La ventaja es que ganamos algo que antes era imposible: apagar una sola pantalla y dejar la otra encendida.
recuperado del archivo de Joomla en 2026
Texto e imágenes de Cristian Bottazzi bajo CC BY-NC-SA 4.0.