diff --git a/README.md b/README.md index 45d580c..de09f16 100644 --- a/README.md +++ b/README.md @@ -321,24 +321,6 @@ sudo apt update sudo apt install chromium-browser chromium-codecs-ffmpeg ``` -Palemoon -Un fork de *Firefox* con menos chorradas. Instalado con el paquete `deb` -descargado de su [página -web](https://software.opensuse.org/download.html?project=home:stevenpusser&package=palemoon) - -Netsurf -Un navegador ultraligero (aunque no funciona con muchas páginas, solo -para webs austeras) Instalado via flathub con `flatpak install netsurf` - -Lagrange -Un navegador para el protocolo *Gemini*. Instalado con la *appimage* -desde su [página web](https://git.skyjake.fi/gemini/lagrange) - -Castor -Otro navegador para el protocolo *Gemini* programado en *Rust*. -Instalado desde las fuentes siguiendo instrucciones de su [página -web](https://sr.ht/~julienxx/Castor/) - ## Algunos programas de control del sistema Son útiles para control de consumo. @@ -485,6 +467,34 @@ web](https://joplinapp.org/) Joplin se instala en el directorio `~/.joplin` y crea su propia entrada en el menú. +### Palemoon + +Un fork de *Firefox* con menos chorradas. Instalado con el paquete `deb` +descargado de su [página +web](https://software.opensuse.org/download.html?project=home:stevenpusser&package=palemoon) + +### LibreWolf + +Otro fork de *Firefox* centrado en la privacidad. Instalado como +*appimage* descargado desde su [página +web](https://librewolf-community.gitlab.io/) + +### Netsurf + +Un navegador ultraligero (aunque no funciona con muchas páginas, solo +para webs austeras) Instalado via flathub con `flatpak install netsurf` + +### Lagrange + +Un navegador para el protocolo *Gemini*. Instalado con la *appimage* +desde su [página web](https://git.skyjake.fi/gemini/lagrange) + +### Castor + +Otro navegador para el protocolo *Gemini* programado en *Rust*. +Instalado desde las fuentes siguiendo instrucciones de su [página +web](https://sr.ht/~julienxx/Castor/) + ## Terminal y shells Por defecto tenemos instalado `bash`. @@ -626,7 +636,7 @@ sudo apt-get install syncthing # Utilidades -## Utilidades +## Utilidades variadas gpick con *Agave* y *pdftk* ya no existen, nos pasamos a *gpick* y *poppler-utils* @@ -695,6 +705,26 @@ configuration { Asociamos un atajo de teclado al comando: `rofi -show drun` +## time-tracking + +### Activity Watcher + +Instalado desde la web + +En realidad no lo uso para nada. + +### go for it + +Este programa no para de escribir en el disco continuamente. He dejado +de usarlo por que me sobra con el org-mode de emacs. + +Si de todas formas lo quieres instalar, aquí tienes los comandos: + +``` {bash} +sudo add-apt-repository ppa:go-for-it-team/go-for-it-daily && sudo apt-get update +sudo apt-get install go-for-it +``` + # Internet ## Rclone @@ -727,40 +757,144 @@ Sincronizar una carpeta remota en local: (blogdelazaro)](https://elblogdelazaro.gitlab.io//articles/rclone-cifrado-de-ficheros-en-la-nube/) - [Documentación](https://rclone.org/docs/) -# time-tracking +# Window Managers adicionales -## Activity Watcher +## i3wm -Instalado desde la web +Añadimos el repo: -En realidad no lo uso para nada. +``` bash +cd ~/tmp +/usr/lib/apt/apt-helper download-file https://debian.sur5r.net/i3/pool/main/s/sur5r-keyring/sur5r-keyring_2021.02.02_all.deb keyring.deb SHA256:cccfb1dd7d6b1b6a137bb96ea5b5eef18a0a4a6df1d6c0c37832025d2edaa710 -## go for it +sudo dpkg -i ./keyring.deb +sudo echo "deb http://debian.sur5r.net/i3/ $(grep '^DISTRIB_CODENAME=' /etc/lsb-release | cut -f2 -d=) universe" >> /etc/apt/sources.list.d/sur5r-i3.list +sudo apt update +sudo apt install i3 +``` -Este programa no para de escribir en el disco continuamente. He dejado -de usarlo por que me sobra con el org-mode de emacs. +## qtile -Si de todas formas lo quieres instalar, aquí tienes los comandos: +Aun no tengo claro como instalar *Qtile* para poder lanzarlo desde el +login gráfico de Linux. Mi idea es instalarlo en un entorno virtual +(*virtualenv*) de Python, para no enredar más con el Python del sistema. -``` {bash} -sudo add-apt-repository ppa:go-for-it-team/go-for-it-daily && sudo apt-get update -sudo apt-get install go-for-it +Vamos a describir la instalación en un *virtualenv* dedicado. Si te +bajas el Qtile estable desde su [página web](http://qtile.org) 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: + +``` bash +# Creamos el directorio de trabajo +mkdir /qtile +cd /qtile + +# Descargamos el qtile estable de la página web +wget https://github.com/qtile/qtile/archive/v0.18.1.tar.gz +tar xvzf v0.18.1.tar.gz +rm v0.18.1.tar.gz + +# Creamos el entorno virtual +pyenv virtualenv 3.10.0 qtile +pyenv local qtile +# Instalamos los paquetes iniciales (comunes a mis entornos) +pip install --upgrade pip setuptools wheel + +# instalamos los requisitos +pip install --no-cache-dir xcffib +pip install --no-cache-dir cairocffi + +# Instalamos la versión estable de qtile +pip install --no-cache-dir qtile ``` -## i3 window manager +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](#lanzar-window-managers-con-xephyr)”) -Añadimos el repo: +### 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 ``` bash -cd ~/tmp -$ /usr/lib/apt/apt-helper download-file https://debian.sur5r.net/i3/pool/main/s/sur5r-keyring/sur5r-keyring_2021.02.02_all.deb keyring.deb SHA256:cccfb1dd7d6b1b6a137bb96ea5b5eef18a0a4a6df1d6c0c37832025d2edaa710 +#!/bin/bash +source '/home/user/.pyenv/versions/3.10.0/envs/qtile/bin/activate' +qtile start +``` + +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) -# dpkg -i ./keyring.deb -# echo "deb http://debian.sur5r.net/i3/ $(grep '^DISTRIB_CODENAME=' /etc/lsb-release | cut -f2 -d=) universe" >> /etc/apt/sources.list.d/sur5r-i3.list -# apt update -# apt install i3 +También como `root` creamos el fichero +`/usr/share/xsessions/qtile.desktop` con el contenido: + +``` bash +[Desktop Entry] +Name=Qtile +Comment=Qtile Session +Exec=launch_qtile +Type=Application +Keywords=wm;tiling +``` + +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: + +``` bash +sudo apt update +sudo apt install xserver-xephyr +``` + +Para lanzar un *Xserver* usaríamos un comando como: + +``` bash +Xephyr -ac -screen 800x600 -br -reset -terminate 2> /dev/null :1 & ``` +**-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: + +``` bash +Xephyr -ac -screen 800x600 -br -reset -terminate 2> /dev/null :1 & +export DISPLAY=1 +i3 +``` + +Para *Qtile* bastaria con cambiar `i3` por `qtile start` + # Documentación ## Vanilla LaTeX diff --git a/out/LinuxMintUlyana.dw b/out/LinuxMintUlyana.dw index 1a36e29..c8d8a2e 100644 --- a/out/LinuxMintUlyana.dw +++ b/out/LinuxMintUlyana.dw @@ -238,11 +238,6 @@ sudo apt update sudo apt install chromium-browser chromium-codecs-ffmpeg - * **Palemoon** Un fork de //Firefox// con menos chorradas. Instalado con el paquete ''%%deb%%'' descargado de su [[https://software.opensuse.org/download.html?project=home:stevenpusser&package=palemoon|página web]] - * **Netsurf** Un navegador ultraligero (aunque no funciona con muchas páginas, solo para webs austeras) Instalado via flathub con ''%%flatpak install netsurf%%'' - * **Lagrange** Un navegador para el protocolo //Gemini//. Instalado con la //appimage// desde su [[https://git.skyjake.fi/gemini/lagrange|página web]] - * **Castor** Otro navegador para el protocolo //Gemini// programado en //Rust//. Instalado desde las fuentes siguiendo instrucciones de su [[https://sr.ht/~julienxx/Castor/|página web]] - ===== Algunos programas de control del sistema ===== Son útiles para control de consumo. @@ -363,6 +358,26 @@ Instalamos siguiendo las instrucciones de la [[https://joplinapp.org/|página we Joplin se instala en el directorio ''%%~/.joplin%%'' y crea su propia entrada en el menú. +==== Palemoon ==== + +Un fork de //Firefox// con menos chorradas. Instalado con el paquete ''%%deb%%'' descargado de su [[https://software.opensuse.org/download.html?project=home:stevenpusser&package=palemoon|página web]] + +==== LibreWolf ==== + +Otro fork de //Firefox// centrado en la privacidad. Instalado como //appimage// descargado desde su [[https://librewolf-community.gitlab.io/|página web]] + +==== Netsurf ==== + +Un navegador ultraligero (aunque no funciona con muchas páginas, solo para webs austeras) Instalado via flathub con ''%%flatpak install netsurf%%'' + +==== Lagrange ==== + +Un navegador para el protocolo //Gemini//. Instalado con la //appimage// desde su [[https://git.skyjake.fi/gemini/lagrange|página web]] + +==== Castor ==== + +Otro navegador para el protocolo //Gemini// programado en //Rust//. Instalado desde las fuentes siguiendo instrucciones de su [[https://sr.ht/~julienxx/Castor/|página web]] + ===== Terminal y shells ===== Por defecto tenemos instalado ''%%bash%%''. @@ -505,7 +520,7 @@ sudo apt-get install syncthing ====== Utilidades ====== -===== Utilidades ===== +===== Utilidades variadas =====
gpick con
@@ -548,6 +563,25 @@ configuration {

Asociamos un atajo de teclado al comando: ''%%rofi -show drun%%''

+===== time-tracking ===== + +==== Activity Watcher ==== + +Instalado desde la web + +En realidad no lo uso para nada. + +==== go for it ==== + +Este programa no para de escribir en el disco continuamente. He dejado de usarlo por que me sobra con el org-mode de emacs. + +Si de todas formas lo quieres instalar, aquí tienes los comandos: + + +sudo add-apt-repository ppa:go-for-it-team/go-for-it-daily && sudo apt-get update +sudo apt-get install go-for-it + + ====== Internet ====== ===== Rclone ===== @@ -584,39 +618,114 @@ rclone sync hubic:directorio_remoto /home/salvari/directorio_local -vv * [[https://elblogdelazaro.gitlab.io//articles/rclone-cifrado-de-ficheros-en-la-nube/|y con cifrado (blogdelazaro)]] * [[https://rclone.org/docs/|Documentación]] -====== time-tracking ====== +====== Window Managers adicionales ====== -===== Activity Watcher ===== +===== i3wm ===== -Instalado desde la web +Añadimos el repo: -En realidad no lo uso para nada. + +cd ~/tmp +/usr/lib/apt/apt-helper download-file https://debian.sur5r.net/i3/pool/main/s/sur5r-keyring/sur5r-keyring_2021.02.02_all.deb keyring.deb SHA256:cccfb1dd7d6b1b6a137bb96ea5b5eef18a0a4a6df1d6c0c37832025d2edaa710 -===== go for it ===== +sudo dpkg -i ./keyring.deb +sudo echo "deb http://debian.sur5r.net/i3/ $(grep '^DISTRIB_CODENAME=' /etc/lsb-release | cut -f2 -d=) universe" >> /etc/apt/sources.list.d/sur5r-i3.list +sudo apt update +sudo apt install i3 + -Este programa no para de escribir en el disco continuamente. He dejado de usarlo por que me sobra con el org-mode de emacs. +===== qtile ===== -Si de todas formas lo quieres instalar, aquí tienes los comandos: +Aun no tengo claro como instalar //Qtile// para poder lanzarlo desde el login gráfico de Linux. Mi idea es instalarlo en un entorno virtual (//virtualenv//) de Python, para no enredar más con el Python del sistema. - -sudo add-apt-repository ppa:go-for-it-team/go-for-it-daily && sudo apt-get update -sudo apt-get install go-for-it +Vamos a describir la instalación en un //virtualenv// dedicado. Si te bajas el Qtile estable desde su [[http://qtile.org|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: + + +# Creamos el directorio de trabajo +mkdir /qtile +cd /qtile + +# Descargamos el qtile estable de la página web +wget https://github.com/qtile/qtile/archive/v0.18.1.tar.gz +tar xvzf v0.18.1.tar.gz +rm v0.18.1.tar.gz + +# Creamos el entorno virtual +pyenv virtualenv 3.10.0 qtile +pyenv local qtile +# Instalamos los paquetes iniciales (comunes a mis entornos) +pip install --upgrade pip setuptools wheel + +# instalamos los requisitos +pip install --no-cache-dir xcffib +pip install --no-cache-dir cairocffi + +# Instalamos la versión estable de qtile +pip install --no-cache-dir qtile -===== i3 window manager ===== +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|Lanzar Window Managers con Xephyr]]”) -Añadimos el repo: +==== 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 -cd ~/tmp -$ /usr/lib/apt/apt-helper download-file https://debian.sur5r.net/i3/pool/main/s/sur5r-keyring/sur5r-keyring_2021.02.02_all.deb keyring.deb SHA256:cccfb1dd7d6b1b6a137bb96ea5b5eef18a0a4a6df1d6c0c37832025d2edaa710 +#!/bin/bash +source '/home/user/.pyenv/versions/3.10.0/envs/qtile/bin/activate' +qtile start + + +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: + + +[Desktop Entry] +Name=Qtile +Comment=Qtile Session +Exec=launch_qtile +Type=Application +Keywords=wm;tiling + + +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: + + +sudo apt update +sudo apt install xserver-xephyr + + +Para lanzar un //Xserver// usaríamos un comando como: -# dpkg -i ./keyring.deb -# echo "deb http://debian.sur5r.net/i3/ $(grep '^DISTRIB_CODENAME=' /etc/lsb-release | cut -f2 -d=) universe" >> /etc/apt/sources.list.d/sur5r-i3.list -# apt update -# apt install i3 + +Xephyr -ac -screen 800x600 -br -reset -terminate 2> /dev/null :1 & + * ****-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: + + +Xephyr -ac -screen 800x600 -br -reset -terminate 2> /dev/null :1 & +export DISPLAY=1 +i3 + + +Para //Qtile// bastaria con cambiar ''%%i3%%'' por ''%%qtile start%%'' + ====== Documentación ====== ===== Vanilla LaTeX ===== diff --git a/out/LinuxMintUlyana.epub b/out/LinuxMintUlyana.epub index dac6ae8..e7d08d5 100644 Binary files a/out/LinuxMintUlyana.epub and b/out/LinuxMintUlyana.epub differ diff --git a/out/LinuxMintUlyana.mw b/out/LinuxMintUlyana.mw index a8ceb3b..19e1536 100644 --- a/out/LinuxMintUlyana.mw +++ b/out/LinuxMintUlyana.mw @@ -224,15 +224,6 @@ EOF sudo apt update sudo apt install chromium-browser chromium-codecs-ffmpeg -; Palemoon -: Un fork de ''Firefox'' con menos chorradas. Instalado con el paquete deb descargado de su [https://software.opensuse.org/download.html?project=home:stevenpusser&package=palemoon página web] -; Netsurf -: Un navegador ultraligero (aunque no funciona con muchas páginas, solo para webs austeras) Instalado via flathub con flatpak install netsurf -; Lagrange -: Un navegador para el protocolo ''Gemini''. Instalado con la ''appimage'' desde su [https://git.skyjake.fi/gemini/lagrange página web] -; Castor -: Otro navegador para el protocolo ''Gemini'' programado en ''Rust''. Instalado desde las fuentes siguiendo instrucciones de su [https://sr.ht/~julienxx/Castor/ página web] - == Algunos programas de control del sistema == Son útiles para control de consumo. @@ -329,6 +320,26 @@ Instalamos siguiendo las instrucciones de la [https://joplinapp.org/ página web
 wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash
Joplin se instala en el directorio ~/.joplin y crea su propia entrada en el menú. +=== Palemoon === + +Un fork de ''Firefox'' con menos chorradas. Instalado con el paquete deb descargado de su [https://software.opensuse.org/download.html?project=home:stevenpusser&package=palemoon página web] + +=== LibreWolf === + +Otro fork de ''Firefox'' centrado en la privacidad. Instalado como ''appimage'' descargado desde su [https://librewolf-community.gitlab.io/ página web] + +=== Netsurf === + +Un navegador ultraligero (aunque no funciona con muchas páginas, solo para webs austeras) Instalado via flathub con flatpak install netsurf + +=== Lagrange === + +Un navegador para el protocolo ''Gemini''. Instalado con la ''appimage'' desde su [https://git.skyjake.fi/gemini/lagrange página web] + +=== Castor === + +Otro navegador para el protocolo ''Gemini'' programado en ''Rust''. Instalado desde las fuentes siguiendo instrucciones de su [https://sr.ht/~julienxx/Castor/ página web] + == Terminal y shells == Por defecto tenemos instalado bash. @@ -444,7 +455,7 @@ sudo apt-get update sudo apt-get install syncthing = Utilidades = -== Utilidades == +== Utilidades variadas ==
gpick con
@@ -484,6 +495,22 @@ sudo apt-get install syncthing }

Asociamos un atajo de teclado al comando: rofi -show drun

+== time-tracking == + +=== Activity Watcher === + +Instalado desde la web + +En realidad no lo uso para nada. + +=== go for it === + +Este programa no para de escribir en el disco continuamente. He dejado de usarlo por que me sobra con el org-mode de emacs. + +Si de todas formas lo quieres instalar, aquí tienes los comandos: + +
sudo add-apt-repository ppa:go-for-it-team/go-for-it-daily && sudo apt-get update
+sudo apt-get install go-for-it
= Internet = == Rclone == @@ -508,33 +535,100 @@ Sincronizar una carpeta remota en local: * [https://elblogdelazaro.gitlab.io//articles/rclone-cifrado-de-ficheros-en-la-nube/ y con cifrado (blogdelazaro)] * [https://rclone.org/docs/ Documentación] -= time-tracking = += Window Managers adicionales = -== Activity Watcher == +== i3wm == -Instalado desde la web +Añadimos el repo: -En realidad no lo uso para nada. +cd ~/tmp +/usr/lib/apt/apt-helper download-file https://debian.sur5r.net/i3/pool/main/s/sur5r-keyring/sur5r-keyring_2021.02.02_all.deb keyring.deb SHA256:cccfb1dd7d6b1b6a137bb96ea5b5eef18a0a4a6df1d6c0c37832025d2edaa710 -== go for it == +sudo dpkg -i ./keyring.deb +sudo echo "deb http://debian.sur5r.net/i3/ $(grep '^DISTRIB_CODENAME=' /etc/lsb-release | cut -f2 -d=) universe" >> /etc/apt/sources.list.d/sur5r-i3.list +sudo apt update +sudo apt install i3 +== qtile == -Este programa no para de escribir en el disco continuamente. He dejado de usarlo por que me sobra con el org-mode de emacs. +Aun no tengo claro como instalar ''Qtile'' para poder lanzarlo desde el login gráfico de Linux. Mi idea es instalarlo en un entorno virtual (''virtualenv'') de Python, para no enredar más con el Python del sistema. -Si de todas formas lo quieres instalar, aquí tienes los comandos: +Vamos a describir la instalación en un ''virtualenv'' dedicado. Si te bajas el Qtile estable desde su [http://qtile.org 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 -
sudo add-apt-repository ppa:go-for-it-team/go-for-it-daily && sudo apt-get update
-sudo apt-get install go-for-it
-== i3 window manager == +* Creamos el ''virtualenv'' qtile basado en la versión 3.10.0 que teniamos instalada previamente: -Añadimos el repo: +# Creamos el directorio de trabajo +mkdir /qtile +cd /qtile -cd ~/tmp -$ /usr/lib/apt/apt-helper download-file https://debian.sur5r.net/i3/pool/main/s/sur5r-keyring/sur5r-keyring_2021.02.02_all.deb keyring.deb SHA256:cccfb1dd7d6b1b6a137bb96ea5b5eef18a0a4a6df1d6c0c37832025d2edaa710 +# Descargamos el qtile estable de la página web +wget https://github.com/qtile/qtile/archive/v0.18.1.tar.gz +tar xvzf v0.18.1.tar.gz +rm v0.18.1.tar.gz + +# Creamos el entorno virtual +pyenv virtualenv 3.10.0 qtile +pyenv local qtile +# Instalamos los paquetes iniciales (comunes a mis entornos) +pip install --upgrade pip setuptools wheel + +# instalamos los requisitos +pip install --no-cache-dir xcffib +pip install --no-cache-dir cairocffi + +# Instalamos la versión estable de qtile +pip install --no-cache-dir qtile +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|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 + +#!/bin/bash +source '/home/user/.pyenv/versions/3.10.0/envs/qtile/bin/activate' +qtile start +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: + +[Desktop Entry] +Name=Qtile +Comment=Qtile Session +Exec=launch_qtile +Type=Application +Keywords=wm;tiling +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: + +sudo apt update +sudo apt install xserver-xephyr +Para lanzar un ''Xserver'' usaríamos un comando como: + +Xephyr -ac -screen 800x600 -br -reset -terminate 2> /dev/null :1 & +; '''-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: + +Xephyr -ac -screen 800x600 -br -reset -terminate 2> /dev/null :1 & +export DISPLAY=1 +i3 +Para ''Qtile'' bastaria con cambiar i3 por qtile start -# dpkg -i ./keyring.deb -# echo "deb http://debian.sur5r.net/i3/ $(grep '^DISTRIB_CODENAME=' /etc/lsb-release | cut -f2 -d=) universe" >> /etc/apt/sources.list.d/sur5r-i3.list -# apt update -# apt install i3 = Documentación = == Vanilla LaTeX == diff --git a/out/LinuxMintUlyana.odt b/out/LinuxMintUlyana.odt index 9dfbd46..b124837 100644 Binary files a/out/LinuxMintUlyana.odt and b/out/LinuxMintUlyana.odt differ diff --git a/out/LinuxMintUlyana.pdf b/out/LinuxMintUlyana.pdf index ef4f01d..06ec8ca 100644 Binary files a/out/LinuxMintUlyana.pdf and b/out/LinuxMintUlyana.pdf differ diff --git a/out/LinuxMintUlyana.tex b/out/LinuxMintUlyana.tex index 84e85b0..a6f88cf 100644 --- a/out/LinuxMintUlyana.tex +++ b/out/LinuxMintUlyana.tex @@ -518,26 +518,6 @@ sudo apt update sudo apt install chromium-browser chromium-codecs-ffmpeg \end{verbatim} -\begin{description} -\item[Palemoon] -Un fork de \emph{Firefox} con menos chorradas. Instalado con el paquete -\texttt{deb} descargado de su -\href{https://software.opensuse.org/download.html?project=home:stevenpusser\&package=palemoon}{página -web} -\item[Netsurf] -Un navegador ultraligero (aunque no funciona con muchas páginas, solo -para webs austeras) Instalado via flathub con -\texttt{flatpak\ install\ netsurf} -\item[Lagrange] -Un navegador para el protocolo \emph{Gemini}. Instalado con la -\emph{appimage} desde su -\href{https://git.skyjake.fi/gemini/lagrange}{página web} -\item[Castor] -Otro navegador para el protocolo \emph{Gemini} programado en -\emph{Rust}. Instalado desde las fuentes siguiendo instrucciones de su -\href{https://sr.ht/~julienxx/Castor/}{página web} -\end{description} - \hypertarget{algunos-programas-de-control-del-sistema}{% \subsection{Algunos programas de control del sistema}\label{algunos-programas-de-control-del-sistema}} @@ -721,6 +701,42 @@ Instalamos siguiendo las instrucciones de la Joplin se instala en el directorio \texttt{\textasciitilde{}/.joplin} y crea su propia entrada en el menú. +\hypertarget{palemoon}{% +\subsubsection{Palemoon}\label{palemoon}} + +Un fork de \emph{Firefox} con menos chorradas. Instalado con el paquete +\texttt{deb} descargado de su +\href{https://software.opensuse.org/download.html?project=home:stevenpusser\&package=palemoon}{página +web} + +\hypertarget{librewolf}{% +\subsubsection{LibreWolf}\label{librewolf}} + +Otro fork de \emph{Firefox} centrado en la privacidad. Instalado como +\emph{appimage} descargado desde su +\href{https://librewolf-community.gitlab.io/}{página web} + +\hypertarget{netsurf}{% +\subsubsection{Netsurf}\label{netsurf}} + +Un navegador ultraligero (aunque no funciona con muchas páginas, solo +para webs austeras) Instalado via flathub con +\texttt{flatpak\ install\ netsurf} + +\hypertarget{lagrange}{% +\subsubsection{Lagrange}\label{lagrange}} + +Un navegador para el protocolo \emph{Gemini}. Instalado con la +\emph{appimage} desde su +\href{https://git.skyjake.fi/gemini/lagrange}{página web} + +\hypertarget{castor}{% +\subsubsection{Castor}\label{castor}} + +Otro navegador para el protocolo \emph{Gemini} programado en +\emph{Rust}. Instalado desde las fuentes siguiendo instrucciones de su +\href{https://sr.ht/~julienxx/Castor/}{página web} + \hypertarget{terminal-y-shells}{% \subsection{Terminal y shells}\label{terminal-y-shells}} @@ -889,8 +905,8 @@ sudo apt-get install syncthing \hypertarget{utilidades}{% \section{Utilidades}\label{utilidades}} -\hypertarget{utilidades-1}{% -\subsection{Utilidades}\label{utilidades-1}} +\hypertarget{utilidades-variadas}{% +\subsection{Utilidades variadas}\label{utilidades-variadas}} \begin{description} \item[gpick con] @@ -957,6 +973,29 @@ con el siguiente contenido Asociamos un atajo de teclado al comando: \texttt{rofi\ -show\ drun} \end{description} +\hypertarget{time-tracking}{% +\subsection{time-tracking}\label{time-tracking}} + +\hypertarget{activity-watcher}{% +\subsubsection{Activity Watcher}\label{activity-watcher}} + +Instalado desde la web + +En realidad no lo uso para nada. + +\hypertarget{go-for-it}{% +\subsubsection{go for it}\label{go-for-it}} + +Este programa no para de escribir en el disco continuamente. He dejado +de usarlo por que me sobra con el org-mode de emacs. + +Si de todas formas lo quieres instalar, aquí tienes los comandos: + +\begin{verbatim} +sudo add-apt-repository ppa:go-for-it-team/go-for-it-daily && sudo apt-get update +sudo apt-get install go-for-it +\end{verbatim} + \hypertarget{internet}{% \section{Internet}\label{internet}} @@ -1007,46 +1046,171 @@ rclone sync hubic:directorio_remoto /home/salvari/directorio_local -vv \href{https://rclone.org/docs/}{Documentación} \end{itemize} -\hypertarget{time-tracking}{% -\section{time-tracking}\label{time-tracking}} +\hypertarget{window-managers-adicionales}{% +\section{Window Managers +adicionales}\label{window-managers-adicionales}} -\hypertarget{activity-watcher}{% -\subsection{Activity Watcher}\label{activity-watcher}} +\hypertarget{i3wm}{% +\subsection{i3wm}\label{i3wm}} -Instalado desde la web +Añadimos el repo: -En realidad no lo uso para nada. +\begin{Shaded} +\begin{Highlighting}[] +\BuiltInTok{cd}\NormalTok{ \textasciitilde{}/tmp} +\ExtensionTok{/usr/lib/apt/apt{-}helper}\NormalTok{ download{-}file https://debian.sur5r.net/i3/pool/main/s/sur5r{-}keyring/sur5r{-}keyring\_2021.02.02\_all.deb keyring.deb SHA256:cccfb1dd7d6b1b6a137bb96ea5b5eef18a0a4a6df1d6c0c37832025d2edaa710} -\hypertarget{go-for-it}{% -\subsection{go for it}\label{go-for-it}} +\FunctionTok{sudo}\NormalTok{ dpkg }\AttributeTok{{-}i}\NormalTok{ ./keyring.deb} +\FunctionTok{sudo}\NormalTok{ echo }\StringTok{"deb http://debian.sur5r.net/i3/ }\VariableTok{$(}\FunctionTok{grep} \StringTok{\textquotesingle{}\^{}DISTRIB\_CODENAME=\textquotesingle{}}\NormalTok{ /etc/lsb{-}release }\KeywordTok{|} \FunctionTok{cut} \AttributeTok{{-}f2} \AttributeTok{{-}d}\OperatorTok{=}\VariableTok{)}\StringTok{ universe"} \OperatorTok{\textgreater{}\textgreater{}}\NormalTok{ /etc/apt/sources.list.d/sur5r{-}i3.list} +\FunctionTok{sudo}\NormalTok{ apt update} +\FunctionTok{sudo}\NormalTok{ apt install i3} +\end{Highlighting} +\end{Shaded} -Este programa no para de escribir en el disco continuamente. He dejado -de usarlo por que me sobra con el org-mode de emacs. +\hypertarget{qtile}{% +\subsection{qtile}\label{qtile}} -Si de todas formas lo quieres instalar, aquí tienes los comandos: +Aun no tengo claro como instalar \emph{Qtile} para poder lanzarlo desde +el login gráfico de Linux. Mi idea es instalarlo en un entorno virtual +(\emph{virtualenv}) de Python, para no enredar más con el Python del +sistema. -\begin{verbatim} -sudo add-apt-repository ppa:go-for-it-team/go-for-it-daily && sudo apt-get update -sudo apt-get install go-for-it -\end{verbatim} +Vamos a describir la instalación en un \emph{virtualenv} dedicado. Si te +bajas el Qtile estable desde su \href{http://qtile.org}{página web} en +el paquete vienen un montón de script auxiliares que te permiten hacer +la instalación aislada en un \emph{virtualenv} pero lo voy a hacer a +mano para tenerlo controlado con \texttt{pyenv} -\hypertarget{i3-window-manager}{% -\subsection{i3 window manager}\label{i3-window-manager}} +\begin{itemize} +\tightlist +\item + Creamos el \emph{virtualenv} \texttt{qtile} basado en la versión + 3.10.0 que teniamos instalada previamente: +\end{itemize} -Añadimos el repo: +\begin{Shaded} +\begin{Highlighting}[] +\CommentTok{\# Creamos el directorio de trabajo} +\FunctionTok{mkdir} \OperatorTok{\textless{}}\NormalTok{workPath}\OperatorTok{\textgreater{}}\NormalTok{/qtile} +\BuiltInTok{cd} \OperatorTok{\textless{}}\NormalTok{workPath}\OperatorTok{\textgreater{}}\NormalTok{/qtile} + +\CommentTok{\# Descargamos el qtile estable de la página web} +\FunctionTok{wget}\NormalTok{ https://github.com/qtile/qtile/archive/v0.18.1.tar.gz} +\FunctionTok{tar}\NormalTok{ xvzf v0.18.1.tar.gz} +\FunctionTok{rm}\NormalTok{ v0.18.1.tar.gz} + +\CommentTok{\# Creamos el entorno virtual} +\ExtensionTok{pyenv}\NormalTok{ virtualenv 3.10.0 qtile} +\ExtensionTok{pyenv}\NormalTok{ local qtile} +\CommentTok{\# Instalamos los paquetes iniciales (comunes a mis entornos)} +\ExtensionTok{pip}\NormalTok{ install }\AttributeTok{{-}{-}upgrade}\NormalTok{ pip setuptools wheel} + +\CommentTok{\# instalamos los requisitos} +\ExtensionTok{pip}\NormalTok{ install }\AttributeTok{{-}{-}no{-}cache{-}dir}\NormalTok{ xcffib} +\ExtensionTok{pip}\NormalTok{ install }\AttributeTok{{-}{-}no{-}cache{-}dir}\NormalTok{ cairocffi} + +\CommentTok{\# Instalamos la versión estable de qtile} +\ExtensionTok{pip}\NormalTok{ install }\AttributeTok{{-}{-}no{-}cache{-}dir}\NormalTok{ qtile} +\end{Highlighting} +\end{Shaded} + +Con esto ya estamos listos, podríamos arrancar \emph{Qtile} con +\texttt{qtile\ start}, pero no puede funcionar claro. Para que arranque +correctamente, tenemos que lanzarlo en un servidor X. (ver el punto +``\protect\hyperlink{lanzar-window-managers-con-xephyr}{Lanzar Window +Managers con Xephyr}'') + +\hypertarget{configurar-qtile-en-virtualenv-para-arrancer-desde-el-lightdm}{% +\subsubsection{\texorpdfstring{Configurar Qtile en \emph{virtualenv} +para arrancer desde el +\emph{Lightdm}}{Configurar Qtile en virtualenv para arrancer desde el Lightdm}}\label{configurar-qtile-en-virtualenv-para-arrancer-desde-el-lightdm}} + +Como \texttt{root} nos creamos un script \texttt{launch\_qtile} en +\texttt{/usr/local/bin}, con el siguiente contenido \begin{Shaded} \begin{Highlighting}[] -\BuiltInTok{cd}\NormalTok{ \textasciitilde{}/tmp} -\ExtensionTok{$}\NormalTok{ /usr/lib/apt/apt{-}helper download{-}file https://debian.sur5r.net/i3/pool/main/s/sur5r{-}keyring/sur5r{-}keyring\_2021.02.02\_all.deb keyring.deb SHA256:cccfb1dd7d6b1b6a137bb96ea5b5eef18a0a4a6df1d6c0c37832025d2edaa710} +\CommentTok{\#!/bin/bash} +\BuiltInTok{source} \StringTok{\textquotesingle{}/home/user/.pyenv/versions/3.10.0/envs/qtile/bin/activate\textquotesingle{}} +\ExtensionTok{qtile}\NormalTok{ start} +\end{Highlighting} +\end{Shaded} + +Le damos permisos de ejecución con \texttt{chmod\ 755\ launch\_qtile} +(ojo a los permisos para \emph{all} que si no son estos no le gusta a +lightdm) + +También como \texttt{root} creamos el fichero +\texttt{/usr/share/xsessions/qtile.desktop} con el contenido: + +\begin{Shaded} +\begin{Highlighting}[] +\ExtensionTok{[Desktop}\NormalTok{ Entry]} +\VariableTok{Name=}\NormalTok{Qtile} +\VariableTok{Comment=}\NormalTok{Qtile }\ExtensionTok{Session} +\VariableTok{Exec=}\NormalTok{launch\_qtile} +\VariableTok{Type=}\NormalTok{Application} +\VariableTok{Keywords=}\NormalTok{wm}\KeywordTok{;}\ExtensionTok{tiling} +\end{Highlighting} +\end{Shaded} + +Y con esto tendremos Qtile disponible en \emph{Lightdm}. + +\hypertarget{lanzar-window-managers-con-xephyr}{% +\subsection{Lanzar Window Managers con +Xephyr}\label{lanzar-window-managers-con-xephyr}} + +Para probar (o configurar) los \emph{Window Managers} sin salir de +nuestra sesión de Mate podemos usar Xephyr, si no lo tienes instalado +ejecuta: + +\begin{Shaded} +\begin{Highlighting}[] +\FunctionTok{sudo}\NormalTok{ apt update} +\FunctionTok{sudo}\NormalTok{ apt install xserver{-}xephyr} +\end{Highlighting} +\end{Shaded} -\CommentTok{\# dpkg {-}i ./keyring.deb} -\CommentTok{\# echo "deb http://debian.sur5r.net/i3/ $(grep \textquotesingle{}\^{}DISTRIB\_CODENAME=\textquotesingle{} /etc/lsb{-}release | cut {-}f2 {-}d=) universe" \textgreater{}\textgreater{} /etc/apt/sources.list.d/sur5r{-}i3.list} -\CommentTok{\# apt update} -\CommentTok{\# apt install i3} +Para lanzar un \emph{Xserver} usaríamos un comando como: + +\begin{Shaded} +\begin{Highlighting}[] +\ExtensionTok{Xephyr} \AttributeTok{{-}ac} \AttributeTok{{-}screen}\NormalTok{ 800x600 }\AttributeTok{{-}br} \AttributeTok{{-}reset} \AttributeTok{{-}terminate} \DecValTok{2}\OperatorTok{\textgreater{}}\NormalTok{ /dev/null :1 }\KeywordTok{\&} \end{Highlighting} \end{Shaded} +\begin{description} +\item[\textbf{-ac}] +Autorizar conexiones de clientes indiscriminadamente (\emph{disable +access restrictions}) +\item[\textbf{-screen}] +Especificar la geometría de la pantalla. +\item[\textbf{-br}] +La ventana raiz tendrá fondo negro +\item[\textbf{-reset}] +Reset al terminar el último cliente +\item[\textbf{-terminate}] +Finalizar cuando se resetee el servidor +\item[\textbf{2\textgreater{} /dev/null}] +Mandar los mensajes de error al limbo (alias \textbf{NE} en nuestro pc) +\item[\textbf{:1}] +Arrancar el server en el DISPLAY=1 +\end{description} + +Asi que si queremos arrancar por ejemplo el \emph{i3wm} podríamos hacer +un script con las siguientes lineas: + +\begin{Shaded} +\begin{Highlighting}[] +\ExtensionTok{Xephyr} \AttributeTok{{-}ac} \AttributeTok{{-}screen}\NormalTok{ 800x600 }\AttributeTok{{-}br} \AttributeTok{{-}reset} \AttributeTok{{-}terminate} \DecValTok{2}\OperatorTok{\textgreater{}}\NormalTok{ /dev/null :1 }\KeywordTok{\&} +\BuiltInTok{export} \VariableTok{DISPLAY=}\NormalTok{1} +\ExtensionTok{i3} +\end{Highlighting} +\end{Shaded} + +Para \emph{Qtile} bastaria con cambiar \texttt{i3} por +\texttt{qtile\ start} + \hypertarget{documentaciuxf3n}{% \section{Documentación}\label{documentaciuxf3n}} diff --git a/src/200_basics.md b/src/200_basics.md index 84150a7..02c96b0 100644 --- a/src/200_basics.md +++ b/src/200_basics.md @@ -292,22 +292,6 @@ sudo apt update sudo apt install chromium-browser chromium-codecs-ffmpeg ~~~~ -Palemoon - -: Un fork de _Firefox_ con menos chorradas. Instalado con el paquete `deb` descargado de su [página web](https://software.opensuse.org/download.html?project=home:stevenpusser&package=palemoon) - -Netsurf - -: Un navegador ultraligero (aunque no funciona con muchas páginas, solo para webs austeras) Instalado via flathub con `flatpak install netsurf` - -Lagrange - -: Un navegador para el protocolo _Gemini_. Instalado con la _appimage_ desde su [página web](https://git.skyjake.fi/gemini/lagrange) - -Castor - -: Otro navegador para el protocolo _Gemini_ programado en _Rust_. Instalado desde las fuentes siguiendo instrucciones de su [página web](https://sr.ht/~julienxx/Castor/) - ## Algunos programas de control del sistema @@ -455,6 +439,28 @@ web](https://joplinapp.org/) Joplin se instala en el directorio `~/.joplin` y crea su propia entrada en el menú. +### Palemoon + +Un fork de _Firefox_ con menos chorradas. Instalado con el paquete `deb` descargado de su [página web](https://software.opensuse.org/download.html?project=home:stevenpusser&package=palemoon) + +### LibreWolf + +Otro fork de _Firefox_ centrado en la privacidad. Instalado como _appimage_ descargado desde su [página web](https://librewolf-community.gitlab.io/) + +### Netsurf + +Un navegador ultraligero (aunque no funciona con muchas páginas, solo para webs austeras) Instalado via flathub con `flatpak install netsurf` + +### Lagrange + +Un navegador para el protocolo _Gemini_. Instalado con la _appimage_ desde su [página web](https://git.skyjake.fi/gemini/lagrange) + +### Castor + +Otro navegador para el protocolo _Gemini_ programado en _Rust_. Instalado desde las fuentes siguiendo instrucciones de su [página web](https://sr.ht/~julienxx/Castor/) + + + ## Terminal y shells Por defecto tenemos instalado `bash`. diff --git a/src/250_extra.md b/src/250_extra.md index 77eabb9..0a06546 100644 --- a/src/250_extra.md +++ b/src/250_extra.md @@ -1,6 +1,6 @@ # Utilidades -## Utilidades +## Utilidades variadas gpick con @@ -83,6 +83,29 @@ rofi Asociamos un atajo de teclado al comando: `rofi -show drun` +## time-tracking + +### Activity Watcher + +Instalado desde la web + +En realidad no lo uso para nada. + +### go for it + +Este programa no para de escribir en el disco continuamente. He dejado +de usarlo por que me sobra con el org-mode de emacs. + +Si de todas formas lo quieres instalar, aquí tienes los comandos: + +~~~~{bash} +sudo add-apt-repository ppa:go-for-it-team/go-for-it-daily && sudo apt-get update +sudo apt-get install go-for-it +~~~~ + + + + # Internet ## Rclone @@ -123,37 +146,131 @@ rclone sync hubic:directorio_remoto /home/salvari/directorio_local -vv * [Documentación](https://rclone.org/docs/) -# time-tracking +# Window Managers adicionales -## Activity Watcher +## i3wm -Instalado desde la web +Añadimos el repo: -En realidad no lo uso para nada. +```bash +cd ~/tmp +/usr/lib/apt/apt-helper download-file https://debian.sur5r.net/i3/pool/main/s/sur5r-keyring/sur5r-keyring_2021.02.02_all.deb keyring.deb SHA256:cccfb1dd7d6b1b6a137bb96ea5b5eef18a0a4a6df1d6c0c37832025d2edaa710 -## go for it +sudo dpkg -i ./keyring.deb +sudo echo "deb http://debian.sur5r.net/i3/ $(grep '^DISTRIB_CODENAME=' /etc/lsb-release | cut -f2 -d=) universe" >> /etc/apt/sources.list.d/sur5r-i3.list +sudo apt update +sudo apt install i3 +``` -Este programa no para de escribir en el disco continuamente. He dejado -de usarlo por que me sobra con el org-mode de emacs. +## qtile -Si de todas formas lo quieres instalar, aquí tienes los comandos: +Aun no tengo claro como instalar _Qtile_ para poder lanzarlo desde el login gráfico de Linux. Mi idea es instalarlo en un entorno virtual (_virtualenv_) de Python, para no enredar más con el Python del sistema. -~~~~{bash} -sudo add-apt-repository ppa:go-for-it-team/go-for-it-daily && sudo apt-get update -sudo apt-get install go-for-it -~~~~ +Vamos a describir la instalación en un _virtualenv_ dedicado. Si te bajas el Qtile estable desde su [página web](http://qtile.org) 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: -## i3 window manager +```bash +# Creamos el directorio de trabajo +mkdir /qtile +cd /qtile + +# Descargamos el qtile estable de la página web +wget https://github.com/qtile/qtile/archive/v0.18.1.tar.gz +tar xvzf v0.18.1.tar.gz +rm v0.18.1.tar.gz + +# Creamos el entorno virtual +pyenv virtualenv 3.10.0 qtile +pyenv local qtile +# Instalamos los paquetes iniciales (comunes a mis entornos) +pip install --upgrade pip setuptools wheel + +# instalamos los requisitos +pip install --no-cache-dir xcffib +pip install --no-cache-dir cairocffi + +# Instalamos la versión estable de qtile +pip install --no-cache-dir qtile +``` -Añadimos el repo: +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 ```bash -cd ~/tmp -$ /usr/lib/apt/apt-helper download-file https://debian.sur5r.net/i3/pool/main/s/sur5r-keyring/sur5r-keyring_2021.02.02_all.deb keyring.deb SHA256:cccfb1dd7d6b1b6a137bb96ea5b5eef18a0a4a6df1d6c0c37832025d2edaa710 +#!/bin/bash +source '/home/user/.pyenv/versions/3.10.0/envs/qtile/bin/activate' +qtile start +``` + +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: + +```bash +[Desktop Entry] +Name=Qtile +Comment=Qtile Session +Exec=launch_qtile +Type=Application +Keywords=wm;tiling +``` + +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: + +```bash +sudo apt update +sudo apt install xserver-xephyr +``` + +Para lanzar un _Xserver_ usaríamos un comando como: + +```bash +Xephyr -ac -screen 800x600 -br -reset -terminate 2> /dev/null :1 & +``` -# dpkg -i ./keyring.deb -# echo "deb http://debian.sur5r.net/i3/ $(grep '^DISTRIB_CODENAME=' /etc/lsb-release | cut -f2 -d=) universe" >> /etc/apt/sources.list.d/sur5r-i3.list -# apt update -# apt install i3 +**-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: + +```bash +Xephyr -ac -screen 800x600 -br -reset -terminate 2> /dev/null :1 & +export DISPLAY=1 +i3 ``` + +Para _Qtile_ bastaria con cambiar `i3` por `qtile start` +