Últimamente se ha visto sobresalir esta función del modo oscuro en el área de smartphones dado el uso del modo oscuro en ese tipo de ambientes tiene una mecánica que puedes programar para activar y desactivar en determinada hora del día, en sistemas GNU/Linux personalmente no he visto algo parecido, se que existen temas claros y oscuros agregados en las distribuciones y Gnome tiene nativamente la función de Filtro de Luz azul para evitar la fatiga visual, pero el tener una función que evite la tarea de uno mismo cambiar el tema del sistema no conozco asi que les mostrare como crear una función así en Gnome.
Personalmente me gusta el tema Adwaita que viene predeterminado en el entorno de Gnome y también su versión oscura, así que tomare estos dos temas como parte de la función que vamos a crear. Abre cualquier editor de texto y vas a pegar el siguiente script
#!/bin/sh
var=$(gsettings get org.gnome.settings-daemon.plugins.color night-light-enabled);
if [ $var == "true" ]
then
hora=`date +%H`
if [ $hora -ge 6 ] && [ $hora -lt 18 ]
then
gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita'
else
gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark'
fi
fi
Lo que hace el anterior código es verificar si tengo activado la función de luz nocturna, para activar esta función si es que no lo tienes habilitado solo tienes que ir a Configuración y en la sección de Dispositivos puedes activarlo.

Volviendo al código, ya activo la luz nocturna devolverá un «true» entonces consultara la hora del sistema, el rango que tengo para tener habilitado el tema claro de Adwaita es de 6:00 AM hasta las 5:59 PM después de ese horario se activa el tema oscuro. el script tendrá que guardarlo en el directorio $HOME/.local/bin
, en mi caso lo nombre modo-nocturno.sh
, luego tienes que darle permiso de ejecución, tipeando la siguiente linea en la terminal:
$ chmod +x $HOME/.local/bin/modo-nocturno.sh
Después crearemos un proceso en segundo plano en Cron escribiendo en la termina:
$ crontab -e
Agregaremos las siguientes dos lineas a Cron para que se ejecuten a su tiempo:
0 6 * * * $HOME/.local/bin/modo-nocturno.sh
0 18 * * * $HOME/.local/bin/modo-nocturno.sh
La primera tarea se ejecutara a las 6:00 AM para cambiar el tema a claro y la segunda tarea a las 6:00 PM para cambiar el tema a oscuro. Ahora sigue que cada vez que iniciemos sesión ejecute el script, para eso creamos un archivo .desktop
en el directorio $HOME/.config/autostart/
al archivo lo he nombrado modo-nocturno.desktop
y el contenido del mismo es el siguiente:
[Desktop Entry]
Type=Application
Name=Modo Nocturno
Exec=modo-nocturno.sh
Con esto estaríamos completando la creación programada de modo oscuro, en el siguiente vídeo se muestra el cambio de tema.
Deja una respuesta