Configurando Qtile
ACTUALIZACIÓN: La instalación de Qtile falla por las versiones de las dependencias
No funciona la instalación descrita más abajo en un entorno virtual y no funciona la instalación por paquetes del sistema (al menos en Linux Mint Vanessa). Las versiones de las dependencias son demasiado modernas.
Sólo he conseguido compilar una versión funcional de Qtile usando las fuentes de desarrollo, con la siguiente receta:
|
|
Con los pasos descritos tendrás un Qtile en el directorio
<workPath>/qtile/venv/bin
, pero evidentemente sólo funciona con el
virtualenv activado.
Tenenemos que crear un script para tu gestor de login gráfico favorito (yo uso Lightdm)
Como root
nos creamos un script launch_qtile
en /usr/local/bin
, con el siguiente contenido (estoy suponiendo que no usas pyenv)
|
|
Le damos permisos de ejecución con chmod 755 launch_qtile
(ojo a los permisos para all que si no son estos no le gusta a Lightdm)
También como root
creamos el fichero /usr/share/xsessions/qtile.desktop
con el contenido:
|
|
Y con esto tendremos Qtile disponible en Lightdm.
Instalando Qtile en un virtualenv
Vamos a describir la instalación del Qtile en un virtualenv dedicado. Si te bajas la versión estable de Qtile desde su página web en el paquete vienen un montón de script auxiliares que te permiten hacer la instalación aislada en un virtualenv pero lo voy a hacer a mano para tenerlo controlado con pyenv
.
- Creamos el virtualenv
qtile
basado en la versión 3.10.0 que teniamos instalada previamente:
|
|
Con esto ya estamos listos, podríamos arrancar Qtile con qtile start
, pero no puede funcionar claro. Para que arranque correctamente, tenemos que lanzarlo en un servidor X. (ver el punto “[Lanzar Window Managers con Xephyr]”)
Configurar Qtile en virtualenv para arrancer desde el Lightdm
Como root
nos creamos un script launch_qtile
en /usr/local/bin
, con el siguiente contenido
|
|
Le damos permisos de ejecución con chmod 755 launch_qtile
(ojo a los permisos para all que si no son estos no le gusta a Lightdm)
También como root
creamos el fichero /usr/share/xsessions/qtile.desktop
con el contenido:
|
|
Y con esto tendremos Qtile disponible en Lightdm.
Lanzar Window Managers con Xephyr
Para probar (o configurar) los Window Managers sin salir de nuestra sesión de Mate podemos usar Xephyr, si no lo tienes instalado ejecuta:
|
|
Para lanzar un Xserver usaríamos un comando como:
|
|
- -ac
-
Autorizar conexiones de clientes indiscriminadamente (disable access restrictions)
- -screen
-
Especificar la geometría de la pantalla.
- -br
-
La ventana raiz tendrá fondo negro
- -reset
-
Reset al terminar el último cliente
- -terminate
-
Finalizar cuando se resetee el servidor
- 2> /dev/null
-
Mandar los mensajes de error al limbo (alias NE en nuestro pc)
- :1
-
Arrancar el server en el DISPLAY=1
Asi que si queremos arrancar por ejemplo el i3wm podríamos hacer un script con las siguientes lineas:
|
|
Configuración de Qtile
La configuración de Qtile reside en ~/.config/qtile/config.py
Configuración de programas en el arranque
Vamos a implementar la ejecución de programas en el arranque de nuestro Qtile.
Por un lado es necesario que importemos los módulos os
y subprocess
y desde el módulo libqtile
necesitamos importar hook
.
|
|
Ahora podemos implementar la función startup
|
|
Con el decorador @hook.subscribe
hemos hecho que la función
start_once()
quede suscrita al evento startup_once
que Qtile
genera, una sola vez, en el arranque (ver
documentación).
El script ~/.local/bin/autostart
tiene el siguiente contenido:
|
|
Programas que queremos lanzar en el arranque
- picom
-
picom es un window composer
- Nitrogen
-
Nitrogen nos valdrá para gestionar los fondos de pantalla. Tenemos la última versión 1.6.1 disponible en los repos. Podemos instalar con
sudo apt install nitrogen
- Rofi
-
rofi ya lo teníamos instalado. Es un sustito para Dmenu que ya usamos en Mate
- gammy
-
gammy nos sirve para gestionar el brillo de la pantalla
- urxvt
-
Un terminal con soporte UTF
- feh
-
Un visor de imágenes para los fondos de pantalla (no está claro que sea necesario)
Cambios variados
- Cambiamos el tamaño de letra para widgets a 16 puntos (lo vemos en la barra de estado)
pyenv global system
de lo contrario no veremos el entorno virtual de Qtile.