Introduzione
E rieccoci a parlare di un window manager! Dopo aver visto qui una carrellata di ambienti grafici e gestori di finestre, vedremo come installare e configurare bspwm.
bspwm è un tiling window manager. Cosa significa? Che le finestre vengono ripartite a mosaico sullo schermo, occupando ognuna un suo spazio e senza sovrapporsi l’una alle altre (almeno per impostazione predefinita).
Il paradigma del desktop è quindi totalmente differente rispetto a quello di un window manager tradizionale, di tipo stacking, e potrebbe spiazzare non poco chi prova un tiling WM per la prima volta. 😀
Se siete alle prime armi con il mondo dei window manager, vi consigliamo l’articolo sull’installazione e configurazione di Openbox, sicuramente più semplice e tradizionale! Ma cominciamo finalmente con la versione video sull’installazione e configurazione di bspwm:
Installazione di bspwm
Le seguenti istruzioni sono pensate per distribuzioni GNU/Linux minimali, ma si applicano tranquillamente a distribuzioni preconfigurate come, ad esempio, Linux Mint, Ubuntu, ZorinOS, Fedora, Manjaro..
bspwm fa uso del server grafico X, motivo per cui avremo bisogno di installare xorg su una distro minimale. Inizieremo appunto con l’installazione di xorg e bspwm sulle distro basate su Ubuntu o Debian:
sudo apt install xorg bspwm
Su Fedora digitate invece:
sudo dnf install xorg bspwm
Su Archlinux e derivate:
sudo pacman -S xorg bspwm
Installeremo il demone sxhkd per poter usare e configurare le nostre hotkey. Qui lo installeremo su Arch ma voi adatterete i seguenti comandi alla vostra distro GNU/Linux:
sudo pacman -S sxhkd
Se siete partiti da una distro minimale, non avrete ancora un emulatore di terminale. Quindi andiamo ad installarne qualcuno (es. Alacritty e rxvt) su Archlinux:
sudo pacman -S alacritty rxvt-unicode
Adesso passiamo all’installazione di pacchetti tramite cui andremo a costruire il nostro ambiente grafico finale. In questa guida sceglieremo Thunar come file manager, LXAppearance per configurare l’aspetto di applicazioni GTK, Mousepad come editor di testo, picom come compositor, dmenu come lanciatore di applicazioni, nitrogen come selettore degli sfondi:
sudo pacman -S thunar lxappearance mousepad picom dmenu nitrogen
Sentitevi liberi di sostituire ognuno di questi componenti con uno di vostra scelta! 😉
Su questo articolo non vedremo come configurare un qualche pannello, ma sceglietene uno tra polybar, lemonbar o altro:
sudo pacman -S polybar
Con tutta probabilità avrete già sulla vostra distro GNU/Linux un login manager. Se invece siete partiti da una distro minimale, potreste considerare di installarne uno (ad esempio lightdm):
sudo pacman -S lightdm lightdm-gtk-greeter
sudo systemctl enable lightdm
Alternativamente è possibile avviare la nuova sessione da console TTY, tramite il comando startx, ma solo dopo aver inserito la seguente riga sul file .xinitrc:
exec bspwm
Configurazione di bspwm
Come consigliato sulla Wiki di Archlinux, andiamo a copiare i file di configurazione di esempio su $HOME/.config:
install -Dm755 /usr/share/doc/bspwm/examples/bspwmrc ~/.config/bspwm/bspwmrc
install -Dm644 /usr/share/doc/bspwm/examples/sxhkdrc ~/.config/sxhkd/sxhkdrc
Dopo aver avviato bspwm, tramite login manager o startx, dovremmo vedere uno schermo nero. 😎
Cosa fare? La combinazione di tasti Super+INVIO dovrebbe lanciare l’emulatore di terminale urxvt, mentre la combinazione Super+SPAZIO dovrebbe lanciare dmenu_run.
Quindi modificheremo i file di configurazione secondo le nostre necessità. Ecco come si presenta il file ~/.config/bspwm/bspwmrc di default:
#!/bin/sh
pgrep -x sxhkd > /dev/null || sxhkd &
bspc monitor -d I II III IV V VI VII VIII IX X
bspc config border_width 2
bspc config window_gap 12
bspc config split_ratio 0.52
bspc config borderless_monocle true
bspc config gapless_monocle true
bspc rule -a Gimp desktop='^8' state=floating follow=on
bspc rule -a Chromium desktop='^2'
bspc rule -a mplayer2 state=floating
bspc rule -a Kupfer.py focus=on
bspc rule -a Screenkey manage=off
Il file inizia con lo specificare cosa verrà avviato automaticamente ad ogni sessione. Di default abbiamo solo il demone sxhkd e tocca noi aggiungere tutti i programmi che vogliamo. Ad esempio:
nitrogen --restore &
pgrep -x picom > /dev/null || picom -b -c -f &
pgrep -x nome_pannello > /dev/null || nome_pannello &
pgrep -x nm-applet > /dev/null || nm-applet &
pgrep -x volumeicon > /dev/null || volumeicon &
pgrep -x dunst > /dev/null || dunst &
Segue la configurazione di un singolo monitor con 10 spazi di lavoro. Ovviamente possiamo configurare monitor multipli, il numero di spazi di lavoro ed il loro nome (o icona).
Dopodiché vediamo diverse impostazioni, come lo spessore dei bordi (border_width) e lo spazio vuoto tra le diverse finestre (window_gap)!
Infine vediamo la possibilità di impostare delle regole. Ad esempio, vediamo che Gimp verrà avviato sul desktop 8, in modalità floating, e che ci sposteremo proprio su quel desktop al suo avvio.
Configurazione di sxhkd
Ecco invece alcune poche linee dal file ~/.config/sxhkd/sxhkdrc di default:
super + Return
urxvt
super + @space
dmenu_run
super + Escape
pkill -USR1 -x sxhkd
super + alt + {q,r}
bspc {quit,wm -r}
super + {_,shift + }w
bspc node -{c,k}
Ovviamente potrete modificare tutto quel che volete, dal tasto modificatore predefinito (super) alle combinazioni di tasti. Potrete modificare l’emulatore di terminale predefinito e sostituirlo, per esempio, con Alacritty. Potrete sostituire dmenu_run con un altro lanciatore di applicazioni.
Ed è chiaro che potrete creare le vostre hotkey, seguendo sempre la seguente sintassi:
modificatore + tasto
comando
Indipendentemente dalle vostre eventuali modifiche, vi consigliamo caldamente di prendere confidenza con questo file e le sue combinazioni di tasti! Altrimenti non avrete vita facile su bspwm… 😂
Conclusioni
bspwm è un tiling window manager molto piacevole da configurare ed usare! È sicuramente tra i più facili, in quanto si configura tramite due file non troppo complicati.
Il suo aspetto estetico e il suo comportamento dipenderanno fortemente dalle vostre configurazioni. Per l’aspetto delle applicazioni GTK potete usare LXAppearance, per lo sfondo abbiamo installato nitrogen!
Come per altri tiling window manager, si tratta di cucirsi davvero un “vestito su misura” che dovrebbe darci più soddisfazioni di uno standard.
bspwm è un mondo molto vasto ed è impossibile trattarlo nella sua interezza in questo articolo. Quindi toccherà a voi approfondire da soli, documentarvi e magari…sbirciare tra i dotfiles di qualche utente veterano di questo tiling window manager!
Buon divertimento! 👍
Per chiarimenti e supporto, non esitate ad andare sul forum!
Lascia un commento