Odin Tip II: Tema elementary y modo oscuro para Flatpak en elementary OS Odin

Entre las novedades que nos traía Odin, una fue la mejora del tema por defecto de elementary, incrementando su temática a diez nuevos temas. Refiriéndose a ellos como color de acento, permitiendo en los mismos de dos variantes, una claro y otro oscuro llamado Dark Style, permitiendo su selección desde Configuración del sistema > Apariencia.

Todo ello permitía una customización más variada y amplia, a la hora de seleccionar el tema según nuestras preferencias.

Este cambio no fue tan solo un cambio en la hoja de estilo utilizada para la tematización, sino que fue mucho más allá, implicando una nueva especificación a tener en cuenta, en el desarrollo de las aplicaciones, tanto a lo que se refiere a las especificas del sistema como las realizadas por terceros.

Por tanto, fue recodificado de nuevo todo el sistema, esperando que un futuro no demasiado lejano, pudieran hacer lo mismo las aplicaciones de terceros.

Desde el post de lanzamiento de elementary Odin, nos hacían la siguiente reseña, refiruendose al Dark Style,

Si su aplicación favorita no la sigue, asegúrese de informar a su desarrollador. El estilo oscuro también se puede programar para seguir el atardecer y el amanecer para su ubicación, o según su propio horario.

Además de todo esto, elementary Odin apostaba a que el embalaje de su paquetería fuera en su mayor parte en Flatpak, lo que añadió una dificultad más para el resto de aplicaciones codificadas en GTK+, ya que este embalaje utiliza su tematización propia, habitualmente Adwaita, descartando la utilizada por defecto en el sistema.

Vale, la cuestión ahora, es…. ¿ Podemos hacer algo, con aquellas aplicaciones en Flatpak desarrolladas en GTK+, que no sigan la temática ?

Pues posiblemente podamos hacer algo, si bien no en todas va a funcionar, ya que como conoceréis la temática en uso, deberá ser compatible con la versión GTK+ que haya utilizado la aplicación en concreto en su desarrollo.

Bueno pues empecemos, como se ha mencionado anteriormente, Flatpak usa una temática propia independiente al resto del entorno, entonces lo primero que tenemos que hacer es conseguir una temática similar que pueda utilizar Flatpak, concretamente necesitamos el tema elementary a poder ser. Miremos entonces si lo tenemos instalado, para ello vemos por ejemplo todo lo que tenemos instalado en formato Flatpak, desde el terminal,

$ flatpak list

En mi caso lo tengo instalada, y se corresponde con el ID de aplicación, org.gtk.Gtk3theme.elementary. Como la temática esta individualizada por aplicación, tendremos que ir asignándola, aplicación por aplicación. Por ejemplo para la aplicación Mixer con ID com.github.childishgiant.mixer, la cambiaríamos de la siguiente manera,

$ flatpak override --user --env=GTK_THEME=elementary com.github.childishgiant.mixer

para la temática clara, y para la temática oscura sería,

$ flatpak override --user --env=GTK_THEME=elementary:dark com.github.childishgiant.mixer

para que surtan los correspondientes efectos, si tuviéramos abierta aplicación, deberemos de cerrarla y abrirla de nuevo.

El proceso anterior lo tendriamos que hacer, cada vez que cambiamos tanto de color de acento, o cuando especificamos cualquiera de sus variantes, claro o oscuro.

Claro ahora sabiendo lo anterior, sería muy interesante disponer de algún script o similar, que tras realizar cualquier cambio en la temática desde Apariencia o desde Tweaks, este hiciera el cambio en las aplicaciones Flatpak automáticamente.

Comparto mi spript switchflatpaktheme.sh y vemos su funcionamiento. Tras pinchar en el enlace anterior, procedemos con su descarga, teniéndolo disponible normalmente en nuestra carpeta de Descargas. Desde aquí lo pasamos a alguna carpeta accesible para su ejecución como /usr/bin y le damos permisos.

$ cd
$ cd Descargas/
$ sudo cp switchflatpaktheme.sh /usr/bin
$ sudo chmod +x /usr/bin/switchflatpaktheme.sh

Vemos las opciones que tenemos disponibles.

$ switchflatpaktheme.sh --help

$ switchflatpaktheme.sh --check

Nos realiza un chequeo inicial, nos muestra alguna información disponible y comprueba que todo es correcto para su funcionamiento. Básicamente deberemos tener el paquete org.gtk.Gtk3theme.elementary instalado en la carpeta ~/.local/share/flatpak/runtime/, ademas de que tengamos seleccionado algún color de acento correspondiente a la hoja de estilo de elementary. De no cumplirse alguno de los dos anteriores supuestos se mostrará la etiqueta [ERROR].

Vale, entonces como podemos instalar el paquete org.gtk.Gtk3theme.elementary en la carpeta ~/.local/share/flatpak/runtime/. Primeramente comprobamos el listado de los repositorios que tenemos disponibles.

$ flatpak remotes

Deberemos tener el repositorio de Flathub a nivel usuario, de no tenerlo lo añadimos,

$ flatpak remote-add --user --if-not-exists repo https://flatpak.elementary.io/repo.flatpakrepo

después de esto ya podemos instalar el tema con,

$ flatpak install --user org.gtk.Gtk3theme.elementary

procedemos con el chequeo de nuevo, para comprobar que esta todo correcto,

$ switchflatpaktheme.sh --check

Una vez que este todo bien, ya podemos cambiar el tema Flatpak de todas las aplicaciones de este formato, para ello podemos hacerlo de dos manera, a través de la opción –change,

$ switchflatpaktheme.sh --change

Nos muestra diversa información,

  • Change theme, representado por default:dark, nos indica que puso, en mi caso el tema io.elementary.stylesheet.slate que es el que tengo seleccionado en Apariencia o en Tweaks, y que estoy utilizando su variante oscura.
  • Change application, las aplicaciones Flatpak que han cambiado.
  • Save Dark mode, que mostrará el valor 1, para la variante oscura y 0 para la variante  clara.

Y finalmente tenemos la opción -d(Daemon), que es la totalmente automática, y que tendremos que lanzar desde Aplicaciones >Arranque, donde añadiremos una nueva entrada pulsando sobre el icono +, e introduciremos

switchflatpaktheme.sh -d

Después de esto salimos y volvemos a entrar en la sesión, lo único verificar que tras el cambio de tema, ese mismo tema es cambiado para las aplicaciones Flatpak.

Y nada más, enjoy 🙂

Guarda el enlace permanente.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.