Uno sguardo su i3 nel raspi 3 (e non solo!)

i3wm è un tiling window manager leggero, minimalista, facilmente personalizzabile con più spazi di lavoro, che  dimensiona, posiziona e gestisce automaticamente le finestre.
Un tiling window manager occupa sempre tutto lo schermo, dividendolo tra le finestre aperte nello spazio di lavoro, l’utente può spostarle  o ridimensionarle ,  con scorciatoie da tastiera.

Uno screenshot di i3wm non molto personalizzato, dal sito di i3 i3wm.org

La scelta

Il motivo per cui ho scelto di provarlo, e poi adottarlo, è che Openbox non da segni di vita sul lato Wayland, mentre i3wm sembra avere già un erede con Sway e  visto che comunque adottavo il modello di tiling di openbox….

L’idea di i3 è semplice: ci si dimentica del menu a tendina tipo “Start” e si avviano i programmi con una barra di ricerca (dmenu) richiamabile con Super+d o Alt+d (in base alla configurazione), digitando le iniziali del programma.
Per esempio, scrivendo “chr” appare evidenziato, il browser web Chromium (se installato) che può essere lanciato premendo Enter. L’unico limite di dmenu è che devi sapere come si chiama l’applicativo che vuoi lanciare.

i3wm apre la prima finestra a tutto schermo e le altre finestre a fianco, dividendo lo schermo in parti uguali orizzontalmente o verticalmente a discrezione dell’utente. Con combinazioni di tasti si possono spostare le finestre non solo a sinistra o destra e su o giù ma anche in differenti schermi se ce n’è più di uno, altrimenti si creano nuovi spazi di lavoro nello stesso schermo, muovendo le finestre con Shift+Super+1/2/3/4…(nei vari schermi virtuali) ci si sposta di schermo virtuale con Super+1/2/3/4…
Il vantaggio di avere differenti spazi di lavoro è che si può essere più ordinati, avendo per esempio quello in cui aprire il browser e un altro in cui tenere i terminali o il file manager e così via. Per sapere quanti schermi virtuali sono aperti si usa Alt che visualizza la status bar se è in modalità hide.

Un utente di i3wm che imparato tutte le scorciatoie da tastiera.

Installazione

Su Arch Linux basta fare # pacman -S i3 dmenu (dmenu ho dovuto installarlo a parte anche se poi ho optato per j4-dmenu-desktop che filtra i pacchetti dai file .desktop riconoscendo anche la descrizione).

Su Ubuntu, Debian o derivate si può utilizzare il comando # apt-get install i3.

Per altre distribuzioni, vedi il sito web di i3wm.

Primo avvio

Per far partire i3, basta mettere in .xinitrc exec i3 e lanciare startx da console, oppure dovrebbe essere selezionabile dal display manager.

Quando parte la prima volta i3  e ti chiede se vuoi personalizzarlo è meglio dargli il tasto super o Windows come shortcut ($mod): il tasto $mod sarà usato nelle combinazioni di tasti per gestire le finestre di i3wm.
In questo modo di default Super+Enter fa partire il terminale xterm, se non viene specificato un altro terminale in ~/.config/i3/config. Si cambia il focus tra le finestre aperte con Super+Freccia, si spostano le finestre in focus con Shift+Super+Freccia e si richiama il dmenu con Super+d.
Per tutte le altre combinazioni, vedi la documentazione relativa.

La maggior parte delle opzioni di configurazione di i3wm è presente su un unico file di testo (~/.config/i3/config), liberamente modificabile e chiaro. Si possono, per esempio, assegnare comandi a combinazioni di tasti (come assegnarne una all’apertura del browser) e  dare nomi agli spazi di lavoro.

Un esempio di i3wm. Gli spazi tra le finestre sono ad opera di i3-gaps.

Considerazioni varie

Al di là delle scorciatoie da tastiera per gestire le finestre, mi ha stupito come sia in grado di non addormentare il desktop quando transmission o ffmpeg girano in sottofondo.

Ho provato a collegare al notebook uno schermo, attivandolo con arandr, lo tratta come uno spazio di lavoro aggiuntivo. Implementare un sistema con più di un monitor correttamente è infatti uno degli obiettivi di i3wm.

Ho impostato la status bar a scomparsa, la faccio apparire con Alt  e scompare quando lascio Alt. La status bar è una barra contente informazioni quali gli spazi di lavoro attivi, la connessione ad internet, l’ora e la batteria. Riconosce networkmanager-applet senza problemi quindi non ci sono problemi a collegarsi (lanciando nm-applet) con arch bisogna installare network-manager-applet.

Come daemon delle notifiche uso dunst, che sul raspberry permette di salvare spazio utile e memoria.

Con i3wm non si è limitati ad affiancare le finestre, si possono anche sovrapporre come gestori di finestre più comuni.

Per uscire dal wm i3, bisogna premere Shift+Super+e solo che nel raspberry con arch non chiude la sessione, mentre nel notebook funziona, questo perchè archlinuxarm è una distro rolling release con gli ultimi pacchetti aggiornati, il che implica prestazioni e novità ma anche piccoli bug (o giganteschi raramente).

Se si vuole fare il reboot (riavvio) o lo shutdown (spegnimento), si può cercare i3-exit con google e si trovano parecchi modi di aggiungere la funzione configurando una scorciatoia da tastiera.
Si può spegnere o riavviare anche digitando i comandi # shutdown now o # reboot rispettivamente nel dmenu.

j4-desktop-menu è altamente flessibile, per esempio accetta comandi di questo genere: java -jar $(locate cgoban.jar) che in pratica usa locate per trovare l’eseguibile da lanciare con il comando java -jar. È però più semplice creare un file .desktop nella directory di default .local/share/applications o /usr/share/applications con impostato il comando usato nel terminale. Non riconosce gli alias.

Per saperne di più

Articolo di acconcio con la collaborazione di fra42.