249 - Construir tu propio escritorio en Linux

PodcastPodcast

249 - Construir tu propio escritorio en Linux

¿Te gustaría construir tu propio escritorio en Linux? Puedes construir tu propio y personalizado escritorio en Linux con un Window Manager

1:25
-3:15

Tengo una pregunta pendiente de Dani, desde finales del año pasado. Una pregunta, a la que podré dar respuesta en el episodio de preguntas y respuestas de la próxima semana, gracias al intenso Escritorio Hopping de estos últimos días. Como ya te adelanté en el episodio 247 del podcast, titulado Maldito kernel, andaba probando diferentes Window Manager, tal y como te comentaré en este episodio del podcast. Y esto me ha llevado a la configuración de escritorio actual, y a este nuevo episodio del podcast sobre como construir tu propio escritorio en Linux.

Esto del escritorio Linux minimalista, no es una novedad en este podcast. Ya te he hablado con anterioridad de los Window Manager y en concreto de i3 y qtile. En concreto en el episodio 183 del podcast, que titulé Más allá de KDE Plasma o GNOME Shlle. Tiling Window Manager. En este episodio del podcast, de nuevo, te hablaré sobre el nuevo Window Manager, como he llegado a él, y en que casos te recomendaría, que utilizaras un Window Manager y porque. Y por supuesto, también sobre porque construir tu propio escritorio en Linux.

Si bien, esto de los gestores de ventana, puede que no sea del agrado de todo el mundo, considero que es verdaderamente muy interesante, en diferentes ocasiones. Sin lugar a dudas, al menos le daría una oportunidad.

Construir tu propio escritorio en Linux

Construir tu propio escritorio en Linux

Como he llegado al escritorio Linux minimalista

Desde hace ya mas de un año, esto de los Window Manager, ha venido a formar parte de mi entorno de trabajo para el proyecto atareao.es. En este sentido, y tal y como anteriormente, actualmente paso un 70% en el entorno de escritorio GNOME Shell, y el resto, y hasta el momento en QTile.

La llegada de la Raspberry Pi 400

Cuando la Raspberry Pi 400, cayó entre mis manos, lo primero que pensé fue en instalar QTile, por aquello de ahorrar recursos. Cuantos menos recursos gaste en el entorno de escritorio, mas recursos puedo utilizar para otras cosas… básicamente, para que el navegador consuma el resto… 😏 Y te puedo asegurar, que lo consume, ya se encarga él de eso. A pesar de lo optimizado que está, como comenté en el episodio 240 sobre la navegación de vértigo con Raspberry Pi OS.

Pero bueno, sea como fuere, lo mejor siempre es gastar lo mínimo y necesario, ni mas ni menos.

Sin embargo, no tuve ningún éxito en instalar QTile. El siguiente pensamiento fue instalar i3, sin embargo, hay algo que hecho de menos a i3, que son los espacios entre ventanas. Si, se que existe i3-gaps, pero está disponible desde repositorio, con lo que no me apetecía embarcarme en esa cruzada. Y te puede parecer una tontá, eso de los espacios entre ventana, pero para gustos los colores, y yo quería esto.

Esto fue una de las razones, por las que te comenté que estaba probando Sway, porque lleva el tema de los espacios entre ventanas incorporado. Sin embargo, no tuve ningún éxito con este window manager.

Rust, Vim y una de preguntas y respuestas

Llegados a este punto, y al ver, que ninguna de estas opciones me satisfacía, empezó a divagar mi imaginación. Y fue cuando pensé en Rust, y es que ya que estoy estudiando Rust, ¿porque no utilizar un window manager implementado en Rust que poder toquetear.

Te puedo asegurar que estuve mirando algunas de las posibilidades que hay disponibles, en concreto LeftWM. Sin embargo, había algo que me paraba, y que ya te he comentado anteriormente, y es el hecho de que no estuviera, ninguno de ellos en los repositorios oficiales de Ubuntu. Que perezón!!! 😭. No me apetece en absoluto. Si, soy consciente de que esto me podía llevar a profudizar en mi aprendizaje de Rust, pero iba a terminar con mi productividad a la hora de escribir, sin lugar a dudas.

Lo siguiente donde fue a posarse mi mente inquieta, fue en la posibilidad de utilizar un window manager que fuera lo mas parecido, en cuanto a movimientos a Vim. Y aquí fue cuando caí en el window manager cuyo nombre no quiero acordarme, además de forma literal. Se trata de herbstluftwm.

Un window manager sencillo de instalar y cómodo. Sin embargo, este no era el último window manager que iba a probar. Aún me quedaba un paso mas. Y este paso mas, es precisamente el que actualmente estoy utilizando, y el que posiblemente se quede conmigo durante un tiempo, mientras dejo reposar este Window Manager Hopping. Y además, te tiento para construir tu propio escritorio en Linux.

Había una pregunta, de los episodios del podcast de preguntas y respuestas, que estaba pendiente. Una pregunta precisamente relacionada con esto de los window manager, una pregunta, a la que daré respuesta en el próximo episodio de preguntas y respuestas, ahora que ya me he documentado. En particular, la pregunta iba sobre bspwm, un window manager, que trata las ventanas como si las hojas de un árbol se trataran, o al menos así es como está descrito en el repositorio de GitHub.

Tiling Window Manager. Conocimiento y productividad.

Antes de meterme en contarte las características de bspwm, que menudo nombre le han puesto, quiero darte dos razones por las que es interesante introducirte en esto de los tiling window manager, y dos razones por las que no. Razones para construir tu propio escritorio en Linux.

Razones a favor

No solo necesitas razones a favor, también es necesario que tengas ganas de meterte en este fregado. Porque te puedo asegurar que esto es un fregado. Esto no se puede utilizar recién sacado de la caja, es necesario configurarlo.

Y precisamente, en esto de la configuración donde tiene su gracia, porque lo vas a dejar a tu gusto, pero también le vas a dedicar tus buenas horas hasta que esté perfectamente adapatado a tus necesidades, y te puedo asegurar que nunca está adaptado a tus necesidades.

A cada momento que pasa, se me ocurre algún cambio, alguna mejora, algún detalle, que me gustaría introducir para mejorar todavía mas mi experiencia de usuario.

  • Conocimiento. La primera de las razones para utilizar un tiling window manager, es precisamente profundizar en el conocimiento de tu sistema operativo. En un tiling window manager como bspwm para poner un icono que te informe de la situación de la batería puedes hacerlo con un script. Está claro, que puedes descargar ese script de internet, pero no se trata de eso. Es ese subidón de adrenalina que te da cuando consigues hacerlo por ti mismo. Conforme vas descubriendo paso a paso, todos los entresijos de tu sistema operativo. Donde está el estado de la batería o la situación de la memoria, o la ocupación de una partición… Lo veo como una interesante forma de aprender sobre tu sistema operativo. Eso si, una forma que no está exenta de sudor y lágrimas.
  • Productividad. La segunda de las razones para utilizar un tiling window manager, es la productividad. Aunque aquí hay un verdadero damnificado, el ratón. Aquí, moverte entre ventanas, lo haces a la velocidad del rayo. No necesitas despegar los dedos del teclado, para absolutamente nada. Pero no solo esto, sino que además una vez configurado tu entorno de trabajo, no te tienes que preocupar de donde está, por ejemplo Firefox… Yo lo tengo configurado, para que cualquier Firefox que abra, vaya a parar al segundo monitor.

Por ejemplo, si quieres profundizar en Linux, el uso del terminal y Bash, sin lugar a dudas, un tiling window manager es una gran opción.

Sin embargo, instalar bspwm no te ata a él para nada. Puedes utilizarlo cuando quieras o lo necesites. Al final, será una entrada adicional en tu acceso a tu entorno de escritorio, sea Ubuntu o cualquier otro entorno de escritorio que utilices.

Como he comentado anteriormente, actualmente estoy utilizando GNOME Shell al 70%. Así, por ejemplo, cuando quiero grabar el podcast, preparar las portadas del podcast, grabar un vídeo, o cualquier otro tipo de actividad, inicio con GNOME Shell. Mientras que cuando lo que quiero hacer es escribir, programar, estudiar o documentarme, recurro claramente a bspwm, ahora.

Razones en contra

Al igual que esto de los tiling window manager tiene sus razones a favor, también tiene sus razones en contra, y no son pocas, créeme. Y aquí te digo, que si, no tienes el mínimo interés por aprender, o por calentarte la cabeza, o simplemente, lo que quieres es instalar Ubuntu o cualquier otra distribución y comenzar a utilizar, esto no es para ti.

  • Dibujo y diseño. Si vas a utilizar tu sistema entorno de escritorio para utilizar aplicaciones de dibujo y/o diseño, un tiling window manager no es desde luego la mejor opción, o por lo menos yo lo veo así. Aquí el ratón brilla por su ausencia. Lo puedes utilizar ,desde luego que si, pero, no es la mejor opción. Insisto, desde mi punto de vista.
  • Audiovisuales. Exactamente el mismo caso que en el punto anterior, cualquier actividad que requiera el uso del ratón, no lo termino de ver nada práctico.

En general, si lo que quieres es utilizar tu ordenador y listo, probablemente, esto de los tiling window manager no es para ti.

bspwm

Llegados a este punto, es el momento de contarte un poco, aunque sea sobre bspwm.

Seguro que a estas alturas de la película, no te descubro nada si te digo que se trata de un gestor de ventanas tipo mosaico. Este gestor, organiza las ventanas en forma de árbol binario.

Todo el entorno se organiza en monitores, escritorios y ventanas. De forma que cada monitor puede tener varios escritorios y cada escritorio varias ventanas.

En general, a mi esto me va la mar de bien, porque como te he comentado en mas de una ocasión, tengo varios monitores. Básicamente, el que utilizo para escribir o hacer, el que utilizo para documentarme, donde normalmente tengo Firefox o Foliate o evice, para leer libros electrónicos o documentos en formato PDF. En la tercera de las pantallas, la que está integrada en el portátil tengo Telegram, o alguna aplicación secundaria.

Una de las ventajas de los tiling window manager, es que no tengo que preocuparme por llevar la aplicación a uno u otro monitor. En mi configuración he establecido cada una de esas aplicaciones a que monitor y escritorio tiene que ir.

En mi caso, actualmente, cada monitor tiene tres escritorios, uno encima de otro. Así, por ejemplo, el primer monitor tiene los escritorios 1, 2 y 3, el segundo los siguientes, y así sucesivamente. Los escritorios están apilados, es decir, que solo puedo ver uno de ellos en cada uno de los monitores. Sin embargo, esto me permite cambiar fácilmente de un monitor a otro, con solo pulsar la combinación de teclas Super + <numero> donde <número> es el número del escritorio que quiero traerme delante.

Para ubicar una nueva ventana, existen dos modos el automático, y el manual. El automático sitúa la ventana en función de diferentes esquemas.

Aquí he tenido un pequeño problema a la hora de encontrar los monitores que tengo y colocarlos en la posición correcta, básicamente en el orden en el que lo utilizo. Para ello, utilizo lo siguiente en mi .bashrc,

if [[ "$XDG_SESSION_DESKTOP" =~ i3 ]] || \
   [[ "$XDG_SESSION_DESKTOP" =~ "herbstluftwm" ]] || \
   [[ "$XDG_SESSION_DESKTOP" =~ "bspwm" ]] || \
   [[ "$XDG_SESSION_DESKTOP" =~ "qtile-venv" ]]
then
    xrandr --auto
    xrandr --auto --output HDMI-1 --primary
    xrandr --auto --output DVI-I-1-1 --right-of HDMI-1
    xrandr --auto --output eDP-1 --right-of DVI-I-1-1
fi

Por partes

Una de las características de bspwm es que trae lo mínimo, mínimo, mínimo, y tu tienes que añadir aquellas partes que quieras, o mas bien que necesites, para sentirte perfectamente cómodo en tu entorno de escritorio. Como es lo mínimo, necesitarás de otras piezas para construir tu propio escritorio en Linux.

Como básico, vas a tener que gestionar dos archivos de configuración, uno para bspwm, propiamente dicho, donde le tienes que indicar cuestiones como que escritorio va a que monitor, como se pintan las ventanas dentro del escritorio, colores y las reglas de que ventana va donde.

El segundo de los archivos de configuración, es sxhkd. Una herramienta encargada de gestionar el ratón y el teclado. Porque, bspwm no se encarga de estas cosas. Aquí tienes que definir desde como pasar de una ventana a otra, hasta como lanzar las aplicaciones.

Un lanzador de aplicaciones

Como te digo, aquí no tienes nada de nada, tienes que añadir las piezas que formen parte de tu entorno de escritorio. Así, imprescindible necesitas un lanzador de aplicaciones, una herramientas para indicar que aplicación quieres iniciar. En mi caso, sin lugar a dudas Rofi. Ya te hablé sobre esta aplicación en el episodio 202 del podcast, titulado Rofi, un lanzador minimalista para Linux.

Aquí me he tenido que hacer un pequeño script adicional para realizar búsquedas en Google sobre mi propia página web, para poder dejar, de forma sencilla, los enlaces que voy mencionando a lo largo del podcast.

El panel superior

Otra de las características que seguro echarás de menos en bspwm es el panel superior. Tampoco te tienes que preocupar, porque tienes diferentes opciones a elegir, y cientos de posibilidades de configuración para cada una de ellas.

Actualmente yo estoy utilizando polybar, y te puedo asegurar que es una auténtica delicia. Me ha quedado un escritorio que da gusto.

Y aquí decirte, que no me he calentado nada la cabeza. He utilizado uno de los temas por defecto que puedes encontrar en polybar-themes. En concreto uno que se llama forest. Aunque he tenido que hacer unos cambios mínimos, lo cierto es queda espectacular.

El fondo de pantalla

Para la gestión del fondo de pantalla, es necesario otra herramienta adicional. En mi caso, estoy utilizando feh en combinación con Daily Wallpaper, y por supuesto de Unsplash. De esta forma, cada día tengo un nuevo fondo de pantalla, sin tener que preocuparme de buscarlo.

Así cada vez que entro en Unsplash para buscar alguna imagen que acompañe el capítulo del podcast o del tutorial o un nuevo artículo, me sorprendo sonriendo al ver que la imagen del día coincide con mi fondo de pantalla 😄. O al revés, mi fondo de pantalla con la imagen del día.

Estas serían algunas de las piezas básicas para construir tu propio escritorio en Linux.

Conclusión

Bueno, ya has visto en que he andado liado estos últimos días, y que tu también puedes construtir tu propio escritorio en Linux. Creo que el iniciarme con i3, gracias a Ángel de uGeek Podcast, fue una magnífica idea, para adentrarme el extenso mundo de los gestores de pantalla de tipo mosaico.

Por el momento, bspwm, se va a quedar un tiempo conmigo, para ver como voy evolucionando con el. Llegados a este punto me quedan dos acciones,

  • Crear la copia de los .dotfile para que la instalación sea instantánea.
  • Instalar bspwm en la Raspberry Pi 400, para ver como se comporta, y poder aprovechar al máximo, el hecho de que no necesito el ratón para moverme por el entorno de escritorio.

Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.

Imagen de Calen Woods en Unsplash

Deja una respuesta

Tu dirección de correo electrónico no será publicada.