Notxor tiene un blog

Defenestrando la vida

Configurando Openbox

2021-12-20

Un amigo me preguntó por un escritorio ligero y funcional para GNU/Linux y que no fuera muy técnico. Acostumbrado como estoy a los escritorios de tipo teselante como i3wm y awesomewm estas fueron mis primeras recomendaciones, pero justo son ese tipo de opciones lo que él llama más técnicas. Ya las ha probado y no se acostumbra a ellas y prefiere algo más prosaico. Mi escritorio (no tan) pesado es Plasma, pero entiendo que las animaciones, la transparencia y esas zarandajas se comen ciclos de CPU y otro poco de memoria... así pues, nos fuimos a openbox. Durante las primeras pruebas de configuración resultó un escritorio sencillo, ocupa muy poca memoria (menos que mi awesomewm habitual) y parece que necesita menos CPU. En este artículo veremos cómo lo he configurado a mi gusto (remarcando lo de mi gusto).

Antes de nada su aspecto ha quedado así:

Captura-pantalla-openbox-aspecto-final.png

¿Qué se puede ver en esa captura?

Veremos todas estas cosas y más. Pero comencemos por el principio: ¿Qué es Openbox? ¿Para qué sirve?

Openbox

Openbox es un gestor de ventanas. Punto. Es decir, se ocupa de dibujar ventanas, con su marco y su título, posicionarlas en la pantalla y nada más. Bueno, también proporciona un menú para lanzar aplicaciones y otro para saltar entre escritorios:

Captura-pantalla-menu-openbox.png

Pulsando el botón derecho del ratón aparece el desplegable en cualquier sitio de nuestra pantalla... pero ese es todo el cariño que da. Además, si no lo has acompañado de otros programas que lo ayuden, desde el punto de vista gráfico y funcional, es todo lo que tienes: un fondo gris con un menú de texto, con la letra muy pequeña y ya está. También tiene la opción de mostrar la lista de aplicaciones funcionando y su correspondiente lista de escritorios pulsando el botón central del ratón. Si no eres exigente ese es el mínimo con el que te puedes conformar.

Instalarlo es sencillo: desde Opensuse Tumbleweed basta con solicitarlo al instalador zypper (modifica el siguiente comando para adecuarlo a tu distribución favorita):

sudo zypper install openbox

Con eso ya nos aparece en el menú de kdm la posibilidad de arrancar la sesión gráfica con openbox. También hay un par de paquetes destinados a ayudarte a conseguir utilizar openbox como gestor de ventanas para entornos de escritorio grandes:

  • openbox-kde
  • openbox-gnome

Si vemos el listado:

$ sudo zypper search openbox
[sudo] password for root: 
Cargando datos del repositorio...
Leyendo los paquetes instalados...

S  | Name                     | Summary                                                  | Type
---+--------------------------+----------------------------------------------------------+--------
   | kvantum-openbox-themes   | Openbox themes for Kvantum engine                        | paquete
   | leechcraft-fenet-openbox | OpenBox Window Manager integration for LeechCraft        | paquete
i+ | openbox                  | ICCCM and EWMH Compliant Window Manager with Very Few -> | paquete
   | openbox-adwaita-ob-theme | Adwaita theme for the Openbox Window Manager             | paquete
   | openbox-devel            | Includes and static libraries for openbox                | paquete
   | openbox-gnome            | Openbox GNOME integration                                | paquete
   | openbox-kde              | Openbox KDE integration                                  | paquete
   | openbox-theme-adapta     | Adapta openbox themes                                    | paquete
   | openbox-theme-matcha     | Matcha openbox themes                                    | paquete
   | openbox-theme-plata      | Plata openbox themes                                     | paquete

La principal ventaja de openbox es ser más comedido a la hora de usar recursos que los respectivos gestores de ventanas de los grandes escritorios. Como puedes suponer, utilizarlo sólo equivale a no tener una barra de tareas, un lanzador de aplicaciones, un paginador de escritorios y cualquier otro tipo de chismáticos que complementan el concepto de escritorio.

En el listado anterior podemos ver que también podemos instalar los paquetes necesarios para utilizar openbox como gestor de ventanas de Gnome y de KDE/Plasma y también algunos temas que nos ayudarán a mejorar el aspecto de nuestro openbox.

Configuración de openbox

Toda la configuración del gestor de ventanas se lleva a cabo desde dos ficheros situados en el path ~/.config/openbox/, en realidad sólo es necesario uno para determinar la funcionalidad de openbox, el otro es un fichero que se ejecutará al iniciar el entorno y nos ayudará lanzando algunos programas que nos permitirán darle un poco más de funcionalidad al mismo. Los dos ficheros son:

  • rc.xml
  • autostart

No hace falta que te pegues directamente con el fichero xml si no te ves con ánimo, a no ser que quieras modificar algunas combinaciones de tecla o añadirle algo más de funcionalidad. Puedes configurar la mayor parte de ellas con la aplicación obconf. Encontré que esta aplicación tiene dos versiones que puedes elegir: la versión gnome y la versión qt (ésta última es algo más ligera que la anterior).

La versión gnome tiene este aspecto:

Captura-pantalla-obconf.png

Pero, como a mí me gustan los temas Kvantum para KDE/Plasma, me he instalado la versión qt y el paquete de temas kvantum-openbox-themes para obtener:

Captura-pantalla-obconf-qt.png

Ambas versiones son excluyentes, si instalas una debes quitar la otra. El propio zypper avisa de la incompatibilidad y da la opción de sustituir o no el comando obconf. La funcionalidad es idéntica en ambas, con lo que es recomendable que instales una u otra dependiendo de qué escritorio estés utilizando, si GTK la primera y si QT la segunda.

El fichero autostart

Comenzamos con el listado de código tal y como lo he dejado y luego voy comentando las cosas que lanzo desde ahí y las configuraciones secundarias que he hecho.

# Establecer el intercambio entre bloqueo de mayúsculas y escape
setxkbmap -option caps:swapescape &

# Cambiar fondo de pantalla
nitrogen --restore &

# Barra de herramientas
tint2 &

# Lanzar `emacs` como servicio
emacs --daemon &

# Visor del sistema
conky &

# Bloqueo del salvapantallas
xset -dpms &

# Composición de escritorio
# picom

El primer comando lo que hace es intercambiar las teclas de bloqueo de mayúsculas y el escape, para tenerlo más a mano. El segundo, nitrogen es una aplicación que nos permite ajustar el fondo de pantalla, con la opción --restore~ muestra el último fondo que se ha utilizado, pero si lo utilizamos lanzando sólo la aplicación, nos mostrará una ventana donde seleccionar de entre los fondos que tengamos cargados:

Captura-pantalla-nitrogen.png

En mi caso, cada vez que veo un fondo que me gusta lo guardo en el directorio ~/Imágenes/wallpapers, que es el directorio que tengo configurado en nitrogen para cargar los fondos.

El siguiente comando tint2 es el comando de cargar la barra de tareas. En la primera imagen del artículo podéis ver cómo ha quedado con un poquito de configuración adicional. Sólo la he puesto vertical y he metido algunos lanzadores. Pero hablaré más detenidamente de ello en un apartado posterior, así que lo dejaré para más adelante.

Luego lanzo Emacs en modo demonio o servidor... eso hace que esté siempre en funcionamiento (¿he comentado alguna vez que lo uso muy a menudo?) y luego lo llamo con una combinación de teclas y lo uso también como editor del sistema.

Lo siguiente es conky, para quien no lo conozca es toda esa información que se ve en la pantalla a la derecha, con listando de números y barras gráficas. También hablaré de su configuración más tarde, por lo que no voy a extenderme aquí.

Con xset -dpms lo que hago es desactivar la opción de que la máquina entre en hibernación cuando deja de recibir entradas durante un rato. Me molesta mucho cuando estoy trabajando, consultando documentación en papel o en otro dispositivo como la tableta o el móvil y comparándola con el ordenador, que este se apague. Sin embargo, si me alejo del teclado un momento, aunque sea corto, suelo bloquear la pantalla con una combinación de teclas que veremos más adelante en el apartado correspondiente.

Por último, había una llamada a picom. Este programa es un compositor, es decir, sirve para añadirle al escritorio transparencias y alguna que otra animación a la hora de mostrar menús, ventanas y desplegables. A mí, particularmente, me suele cansar ese tipo de cosas, aparte de que consumen sus ciclos de CPU. Sin embargo, lo cargué al principio cuando estuve probando algunas barras de tareas y docks, porque pedían composición.

Barra de tareas

He probado varias barras distintas, algunas mezclándolas entre ellas. Fundamentalmente, mis pruebas han sido con:

  • polybar
  • cairo-dock
  • latte-dock
  • tint2

De las cuatro, la ganadora final ha sido tint2, por ser completa, sencilla y ligera. El aspecto es altamente configurable, pero en eso todas las anteriores tienen sus cosas. Para elegir me planteé qué es lo que le pido (bueno, lo que pediría un usuario nuevo) a una barra de tareas, o qué tipo de información se ha vuelto imprescindible para el usuario de escritorio. Evidentemente, toda aquella que me proporciona el emplasto conky ─que aparece en pantalla─ no es necesario que me lo repita la barra y como el menú de aplicaciones ya lo proporciona openbox tampoco necesito uno, prefiero uno que me permita manejar los distintos escritorios y las aplicaciones que corren en cada uno. En definitiva, la barra tenía que cumplir con estas tareas:

  • Lanzador rápido de aplicaciones: básicamente cuatro botones para el navegador, el gestor de archivos, la consola y el gestor de correo. (Estos son los básicos para mí, quizá otros usuarios, con otras necesidades, añadirán o quitarán botones).
  • Paginador de escritorios: es decir, un intercambiador de escritorios que a ser posible también informe de qué aplicaciones están corriendo en cada uno.
  • Soporte para systray icons, para las aplicaciones que pueden funcionar en segundo plano iconificadas.

Lo resumo en que tint2 trae todo eso de casa y es el que menos recursos consume. En los otros tienes que instalar y configurar los correspondientes plug-ins para realizar esas tareas. Si estás acostumbrado al entorno de Gnome te puede ir bien el cairo-dock, altamente configurable, con animaciones vistosas y un montón de plug-ins para todo tipo de tareas. El inconveniente es que da por supuesto que tienes instalado algún programa de composición para gestionar las transparencias y demás. En cambio, si estás más acostumbrado a trabajar con entornos KDE/Plasma puedes utilizar latte-dock. Permite tener barra de tareas idéntica a la de KDE/Plasma, con los mismos plugins, capacidad para gestionar varias barras a la vez (o barra y dock), etc. Igual que la anterior, también pide que exista algún programa de composición para gestionar correctamente la transparencia. Con esto puedes hacer un sencillo clon de Plasma con openbox.

Para el final he dejado polybar que la utilizo con i3wm y me parece una buena barra. Funciona perfectamente en ese entorno, sin embargo, para openbox había que tocar la configuración. Lo intenté con ahinco, pero aún así no he conseguí hacer que funcionara el paginador de escritorios para openbox... y luego tuve que volver a reconfigurarla para i3wm ─menos mal que me guardé una copia de la configuración─.

Configurar tint2 es sencillo, viene con el lanzador de su configurador cargado. Al pinchar en él nos aparecerá una ventana tal que:

Captura-pantalla-tint2-themes.png

Esa pantalla es una lista de temas. Hay temas de barra horizontales y verticales y para más especificidad tenemos también una serie de preferencias para ajustarle todos los parámetros a cada tema:

Captura-pantalla-tint2-configurar-tema.png

Es un poco farragoso por la cantidad de opciones que tiene, pero las únicas que recuerdo haber utilizado, tras elegir el primer tema vertical que encontré, es situarla en el centro del lado izquierdo y hacer que se oculte automáticamente. Eso me deja sólo 2 píxeles a la izquierda de la pantalla «sin utilizar» cuando maximizo cualquier aplicación. Poniendo el cursor en ellas, se despliega toda la barra de nuevo.

Esta barra, entre otras funcionalidades que pueden ser interesantes, está la de poder mover una aplicación desde un escritorio a otro, arrastrando los botones que las representan hacia el espacio del escritorio deseado.

Información del sistema

Muchos de los usuarios normalmente utilizan la barra de tareas para mostrar información sobre el sistema. Yo también lo hago, pero muchas veces es redundante con la información que tengo en pantalla gracias a conky. Incluso la información que da conky suele ser más exacta y precisa.

Captura-pantalla-conky.png

Ya he hablado sobre conky con anterioridad en este blog y ya puse el código que lo generaba. Sin embargo, le he hecho algún cambio para que soporte composición con verdadera transparencia si se activa dicha opción. El código para generar el emplasto que muestro arriba es el siguiente:

-- conky configuration

conky.config = {
   background = false,
   use_xft = true,
   -- font = 'Terminus:size=8',
   -- font = 'DejaVu Sans Mono:size=8',
   font = 'Fira Code:size=9',
   font1 = 'Fira Code:size=20',
   font2 = 'Fira Code:size=15',
   xftalpha = 0.8,
   update_interval = 2.0,
   total_run_times = 0,
   -- cambios para entenderse con composición
   -- own_window = false,
   own_window = true,
   own_window_type = 'desktop',
   own_window_transparent = true,
   own_window_hints = "below",
   own_window_colour = '000000',
   own_window_class = 'Conky',
   -- Hasta aquí es lo nuevo
   double_buffer = true,
   draw_shades = false,
   draw_outline = false,
   draw_borders = false,
   stippled_borders = 0,
   border_margin = 4,
   border_width = 1,
   default_color = 'white',
   default_shade_color = 'brown',
   default_outline_color = 'white',
   -- alignment = 'top_left',
   alignment = 'top_right',
   top_cpu_separate = true,
   gap_x = 10,
   gap_y = 10,
   no_buffers = true,
   uppercase = false,
   cpu_avg_samples = 2,
   net_avg_samples = 2,
   override_utf8_locale = true,
   use_spacer = 'none',
}

conky.text = [[
$hr
${alignc}${color #FF9922}${font1}${time %e}
${alignc}${color white}${font}${time %B} ${color #AA9922}${time %Y}
${alignc}${color yellow}${font}${time %A}
${color yellow}${time %Z: }${alignc}${color #AA9922}${font2}${time %H:%M}${font}
${color white}$hr
${color yellow}UpTime: ${color #AA9922}$uptime

${color yellow}CPU:${color #AA9922} $cpu% ${alignr} ${exec sensors | grep "Core 0" | cut -c15-22}
${cpugraph 20,400 FFFFFF AA9922}
${color yellow}Load: ${color #AA9922}$loadavg
${color yellow}Procesos: ${color #AA9922}$processes
${color yellow}Running: ${color #AA9922}$running_processes
${color white}Cores:
${color white}Core 1: ${color #AA9922}${cpubar cpu1 6,220}${color white} ${freq 1} MHz ${cpu cpu1}%
${color white}Core 2: ${color #AA9922}${cpubar cpu2 6,220}${color white} ${freq 2} MHz ${cpu cpu2}%
${color white}Core 3: ${color #AA9922}${cpubar cpu3 6,220}${color white} ${freq 3} MHz ${cpu cpu3}%
${color white}Core 4: ${color #AA9922}${cpubar cpu4 6,220}${color white} ${freq 4} MHz ${cpu cpu4}%

${color white}$hr
${color yellow}Uso CPU:
${color #AA9922}Nombre                           PID   CPU%   MEM%
${color white}${top name 1}               ${top pid 1} ${top cpu 1} ${top mem 1}
${color white}${top name 2}               ${top pid 2} ${top cpu 2} ${top mem 2}
${color white}${top name 3}               ${top pid 3} ${top cpu 3} ${top mem 3}
${color white}${top name 4}               ${top pid 4} ${top cpu 4} ${top mem 4}

${color yellow}Uso MEM:
${color #AA9922}Nombre                          MEM%
${color white}${top_mem name 1}              ${top_mem mem 1}
${color white}${top_mem name 2}              ${top_mem mem 2}
${color white}${top_mem name 3}              ${top_mem mem 3}
${color white}${top_mem name 4}              ${top_mem mem 4}

${color white}$hr
${color white}MEM: ${color #AA9922}$memperc% ${alignr}$mem/$memmax
${memgraph 20,400 FFFFFF AA9922}
${color white}SWAP: ${color #AA9922}$swapperc% ${alignr}$swap/$swapmax
${swapbar 6,400}
${color white}$hr
${color white}ROOT: ${color #AA9922}${fs_free_perc /}% ${alignr}${color #AA9922}${fs_free /}/${fs_size /}
${fs_bar 6,400 /}
${color white}HOME: ${color #AA9922}${fs_free_perc /home}% ${alignr}${color #AA9922}${fs_free /home}/${fs_size /home}
${fs_bar 6,400 /home}
${color white}$hr
${if_existing /sys/class/net/wlp8s0b1/operstate up}
${color yellow}WIFI: ${color white}${wireless_essid wlp8s0b1}${color #AA9922}${alignr}${addr wlp8s0b1}
${color white}Bajada: ${alignr}${color #AA9922}${downspeed wlp8s0b1}
${downspeedgraph wlp8s0b1 20,400 FFFFFF AA9922}
${color white}Subida: ${alignr}${color #AA9922}${upspeed wlp8s0b1}
${upspeedgraph wlp8s0b1 20,400 FFFFFF AA9922}
${endif}
${if_existing /sys/class/net/eth0/operstate up}
${color yellow}NET:${alignr}${color #AA9922}${addr eth0}
${color white}Bajada: ${alignr}${color #AA9922}${downspeed eth0}${color}
${downspeedgraph eth0 20,400 FFFFFF AA9922}
${color white}Subida: ${alignr}${color #AA9922}${upspeed eth0}
${upspeedgraph eth0 20,400 FFFFFF AA9922}
${endif}
${if_existing /sys/class/net/enp9s0u1/operstate up}
${color yellow}USB:${alignr}${color #AA9922}${addr enp9s0u1}
${color white}Bajada: ${alignr}${color #AA9922}${downspeed enp9s0u1}${color}
${downspeedgraph enp9s0u1 20,400 FFFFFF AA9922}
${color white}Subida: ${alignr}${color #AA9922}${upspeed enp9s0u1}
${upspeedgraph enp9s0u1 20,400 FFFFFF AA9922}
${endif}
]]

Si copias el código, fíjate que tendrás que cambiar algunas cosas, como las fuentes de letra y los nombres de dispositivos, como los de red, para que te funcione correctamente.

Configuración de teclado

Openbox viene ya con un gran repertorio de configuración de teclas por defecto, pero se echan de menos algunas. Y todas ellas están en la configuración existente en el rc.xml. Por hacer un resumen de las principales las pongo en la siguiente tabla, pero antes está la nomenclatura de teclas que utiliza:

  • A: tecla Alt.
  • C: tecla Control.
  • S: tecla Mayúsculas.
  • W: tecla de sistema o windows como viene a llamarse en muchos teclados.
Keybind Acción
C-A-Left Ir al escritorio de la izquierda
C-A-Right Ir al escritorio de la derecha
C-A-Up Ir al escritorio de arriba
C-A-Down Ir al escritorio de abajo
S-A-Left Enviar la ventana al escritorio de la izquierda
S-A-Right Enviar la ventana al escritorio de la derecha
S-A-Up Enviar la ventana al escritorio de arriba
S-A-Down Enviar la ventana al escritorio de abajo
W-F1 Ir al escritorio 1
W-F2 Ir al escritorio 2
W-F3 Ir al escritorio 3
W-F4 Ir al escritorio 4
W-d Mostrar escritorio
A-F4 Cerrar ventana
A-Escape La ventana actual pierde el foco
A-space Muestra el menú de ventana
A-Tab Ir a la siguiente ventana
A-S-Tab Ir a la ventana anterior

También hay atajos donde está implicado el ratón, pero esos ya os los miráis más despacio, porque son los habituales de cualquier entorno de ventanas, aparte de que intento utilizar el ratón lo mínimo imprescindible. Pero continuando con los atajos de teclado he metido algunos más. En algún caso he necesitado la documentación de openbox para utilizar sus Actions para poder conseguir lo que quería. Por ejemplo, aunque normalmente con cuatro escritorios suele ser suficiente para un uso normal del sistema, en ocasiones puede ocurrir que necesitemos más temporalmente y luego queramos eliminarlos:

Keybind Acción
W-F12 Añadir un escritorio
W-F11 Eliminar un escritorio

El código que he metido en el fichero de configuración, dentro del apartado keyboard es el siguiente:

<keybind key="W-F12">
  <action name="AddDesktop">
    <where>current</where>
  </action>
</keybind>
<keybind key="W-F11">
  <action name="RemoveDesktop"/>
</keybind>

La opción <where>current</where> hace que al crear el nuevo escritorio el foco se mueva a él.

Los otros keybindings que me he puesto, para uso personal son los siguientes:

<keybind key="F12">
  <action name="Execute">
    <command>kitty</command>
  </action>
</keybind>
<keybind key="A-F10">
  <action name="Execute">
    <command>rofi -show drun -modi run,drun -show-icons -display-drun "Lanzar"</command>
  </action>
</keybind>
<keybind key="W-F10">
  <action name="Execute">
    <command>rofi -show run -modi run -display-drun "Lanzar"</command>
  </action>
</keybind>
<keybind key="W-e">
  <action name="Execute">
    <command>emacsclient -c -a emacs</command>
  </action>
</keybind>
<keybind key="print">
  <action name="Execute">
    <command>spectacle</command>
  </action>
</keybind>
Keybind Acción
F12 Abrir un terminal (kitty, en mi caso)
A-F10 Menú de aplicaciones rofi
W-F10 Menú de ejecutables rofi
W-e emacsclient
print Captura de pantalla

La primera es porque necesito una consola en cualquier sitio en cualquier momento, por eso le he puesto una tecla de función directa F12. La consola que abre es kitty que es la que utilizo últimamente para todo.

Después he configurado dos menús rofi el primero utiliza el comando:

rofi -show drun -modi run,drun -show-icons -display-drun "Lanzar"

Ese comando proporciona una lista de las aplicaciones que se pueden lanzar en el sistema y tiene el siguiente aspecto:

Captura-pantalla-rofi-aplicaciones.png

Hace tiempo que vengo utilizando rofi para muchas cosas, pero especialmente para mostrar un menú de aplicaciones. Lo utilizo en i3wm, lo utilizo en awesomewm y por qué no utilizarlo también en openbox. El caso es que puedo abrir un menú, ─bueno dos para ser exactos─, desde el teclado sin mover la mano al ratón. El otro comando es:

rofi -show run -modi run -display-drun "Lanzar"

El aspecto del menú es:

Captura-pantalla-rofi-ejecutables.png

Quizá es menos vistoso visualmente sin embargo, desde aquí tengo acceso a todos los ejecutables y scripts que tengo en mi sistema. De esa manera puedo lanzar casi cualquier cosa desde él.

Por supuesto, también hay una combinación de teclas para abrir, mediante emacsclient el Emacs que está funcionando en modo demonio o servidor, del que hable en el autostart. Vale que cinco segundos que tarda en arrancar desde cero no son tanto, pero con emacsclient aparece de forma inmediata sin ningún retardo. Puede que al día abra Emacs decenas de veces para todo tipo de tareas que hago con él: consultar la agenda, llevar la contabilidad, escribir algún documento para el trabajo, escribir algún artículo para el blog, programar, etc. Es posible incluso que lo tenga cargado varias veces: mientras consulto la agenda en un frame, en otro está cargado el borrador de algún artículo o en otro puede estar cargado el código de algún programa. No es extraño tener en mi máquina, repartidos por varios escritorios varios frames de Emacs, cada uno con una función diferente. Por ejemplo,

Captura-pantalla-emacsclient.png

Podemos observar en la imagen que tengo en dos escritorios frames de Emacs. Sin embargo, al ver cuántos hilos de ejecución se están utilizando en el sistema:

$ ps -e | grep emacs
 2207 ?        00:02:48 emacs-gtk
 3221 ?        00:00:00 emacsclient
11817 ?        00:00:00 emacsclient

Es decir, sólo está cargado una vez el proceso pesado de Emacs y luego hay dos clientes que son bastante más ligeros. Más ligeros que tener dos (o más) Emacs completos cargados en memoria, quiero decir.

Otras teclas para reposicionar ventanas

Una de las opciones que proporciona openbox entre sus acciones es la capacidad para mostrar las ventanas en el escritorio ajustándolas haciéndolas crecer hacia los lados. No venían programadas por defecto, pero sí las mencionaba la documentación y me parecieron interesantes. Con esta característica también se pueden conseguir un reparto más teselado de las aplicaciones. Las teclas las he configurado de la siguiente manera:

<keybind key="C-Left">
  <action name="GrowToEdge"><direction>west</direction></action>
</keybind>
<keybind key="C-Right">
  <action name="GrowToEdge"><direction>east</direction></action>
</keybind>
<keybind key="C-Up">
  <action name="GrowToEdge"><direction>north</direction></action>
</keybind>
<keybind key="C-Down">
  <action name="GrowToEdge"><direction>south</direction></action>
</keybind>

Las ventanas crecerán hacia un lado o hacia otro hasta que encuentren un borde. Por lo que repartir la pantalla entre las distintas ventanas sin que haya huecos vacíos entre ellas es relativamente sencillo.

Conclusiones

Esto es sólo una prueba de concepto que inicié para poder explicarle a un amigo cómo configurar un sistema ligero pero plenamente funcional con GNU/Linux sin necesidad de cargar los grandes escritorios. Comenzó como tal, pero me está gustando el resultado y no descarto utilizarlo con asiduidad también. Vale que en los entornos teselantes se ocupan todos los espacios posibles repartiéndolos entre las ventanas de las aplicaciones. Sin embargo, en mi trabajo habitual termina estando cada aplicación maximizada en un escritorio. Por tanto, en openbox puedo hacer lo mismo. Tendré que acostumbrarme a las nuevas combinaciones de teclas, pero no descargo hacer un trabajo más detallado para conseguir uniformidad de teclado entre los distintos sistemas de ventanas que utilizo y que cambio con cierta regularidad.

Finalmente es un sistema de ventanas. Quizá sea menos intimidante para el usuario nuevo, pero al final, puedes configurarlo todo para tocar el ratón lo menos posible. El aprovechar la pantalla completa o no, como hacen los sistemas teselantes también es una opción personal. Al usuario nuevo le puede resultar raro que sea el sistema el que decida dónde poner y qué tamaño dar a las ventanas que se abren, porque no está acostumbrado a ello. Con un poco de entrenamiento, apreciarán la sencillez y facilidad de sistemas de ventanas como i3wm o como awesomewm. Para estos nuevos usuarios, la recomendación es que utilicen los grandes entornos como Gnome o KDE/Plasma en lugar de los otros, más ligeros pero más espartanos y simples y que necesitan más trabajo para ajustarlos y ajustar, también, los complementos que se necesitan para equiparar funcionalidades.

Categoría: openbox escritorio conky

Comentarios

Debido a algunos ataques mailintencionados a través de la herramienta de comentarios, he decidido no proporcionar dicha opción en el Blog. Si alguien quiere comentar algo, me puede encontrar en Mastodon y en Diaspora con el nick de Notxor.

También se ha abierto un grupo en Telegram, para usuarios de esa red.

Disculpen las molestias.