Come installare e configurare bspwm in Linux

Bspwm 00 Featured Image
⏱️ 13 min read

Binary Space Partitioning Window Manager (bspwm) è un potente window manager minimalista per Linux. È altamente configurabile e propone un approccio innovativo alla gestione delle finestre. Bspwm è scritto in C e può essere configurato utilizzando qualsiasi linguaggio. Bspwm è l’epitome della personalizzazione dell’utente nei gestori di finestre. Ciò lo rende interessante per utenti esperti e riparatori interessati a imparare a creare il proprio flusso di lavoro unico.

Spiegazione del partizionamento dello spazio binario

Il partizionamento dello spazio binario è l’idea che le finestre in un desktop possono essere rappresentate come foglie in un albero binario completo. Un albero binario completo è una struttura di ordinamento delle informazioni utilizzando nodi gerarchici. Tutte le informazioni all’interno di quell’albero sono ordinate in due con un nodo radice che contiene sempre due nodi.

Bspwm 01 Nodi radice

Bspwm funziona con i nodi. In pratica, quando crei una finestra su un desktop vuoto, bspwm creerà un singolo nodo in cui inserire quella finestra. Puoi pensare a quel nodo come a un nodo foglia. Ma quando crei una finestra aggiuntiva in quel desktop, quel nodo foglia diventerà un nodo radice e bspwm creerà due nuovi nodi foglia collegati ad esso. Quindi posiziona la finestra corrente e quella appena creata in quei nodi foglia.

Qualsiasi nuova finestra che verrà creata dopo questo sarà ora associata a uno di quei nodi foglia, trasformandoli nei rispettivi nodi radice.

Esempio di finestra Bspwm 02

La disposizione delle finestre in questo modo crea una chiara gerarchia all’interno del desktop. È chiaro quali nodi foglia sono stati generati per primi e quali sono quelli che provengono da un particolare gruppo di nodi radice. Ciò è utile quando si creano regole di comportamento personalizzate per finestre e layout di finestre specifici.

Bspwm 03 Esempio di finestra 2

Associazioni di tasti e barre di stato

È importante notare che bspwm gestisce solo Windows. Ciò significa che qualsiasi altra funzione non correlata alla gestione di Windows non è inclusa nel pacchetto bspwm. Ciò include la possibilità di associare i tasti alle funzioni e anche la possibilità di visualizzare una barra di stato.

Per utilizzare le associazioni di tasti in bspwm, gli sviluppatori hanno creato un programma separato chiamato Simple X Hotkey Daemon (sxhkd) che gestisce solo le associazioni di tasti. Per la barra di stato, tuttavia, l’utente può installare una varietà di applicazioni di terze parti come polybar e lemonbar.

Installazione di bspwm e sxhkd

L’installazione di bspwm e sxhkd è relativamente semplice. Entrambi i programmi sono disponibili anche nella maggior parte dei repository Linux. Ad esempio, per installarli in Debian e Ubuntu puoi farlo usando apt:

sudo apt install bspwm sxhkd

In Arch Linux, puoi usare pacman:

sudo pacman -Syu bspwm sxhkd

In Fedora, puoi usare dnf:

sudo dnf install bspwm sxhkd

Per Void Linux, puoi usare xbps:

sudo xbps-install bspwm sxhkd

Nel mio caso, lo installerò nel mio sistema Void Linux, quindi utilizzerò XBPS.

Bspwm 04 Installazione

bspc: il controller universale per bspwm

Per usare bspwm abbiamo solo bisogno di interagire con un programma: bspc. È una potente utility in grado di controllare e configurare il comportamento di bspwm. In effetti, tutti i comandi che useremo per manipolare Windows e configurarne il comportamento sono solo comandi bspc.

Preparazione del file di configurazione per bspwm

Per iniziare a configurare bspwm, dobbiamo prima creare un file di configurazione. Qui è dove bspwm cercherà i comandi bspc che eseguirà alla prima esecuzione. Per impostazione predefinita, bspwm cercherà il file “/home/$USER/.config/bspwm/bspwmrc”. Per creare quel file puoi digitare:

mkdir -p /home/$USER/.config/bspwm && touch /home/$USER/.config/bspwm/bspwmrc

Questo comando creerà la cartella bspwm in “/home/$USER/.config/” e creerà anche il file bspwmrc all’interno di quella cartella.

Bspwm 05 Bspwm Ls

Ora, il file bspwmrc può essere scritto in qualsiasi lingua tu voglia, purché sia ​​eseguibile. Ciò significa che dovremmo prima impostare le sue proprietà del file in modo che siano tali. Possiamo farlo digitando quanto segue:

sudo chmod 774 /home/$USER/.config/bspwm/bspwmrc

Questo assicurerà che noi e chiunque nel nostro gruppo di utenti possiamo eseguire questo file.

Dopodiché, ora possiamo aprire il file bspwmrc. Nel mio caso, userò vim per modificare il mio file di configurazione. Per farlo digiterò quanto segue:

vim /home/$USER/.config/bspwm/bspwmrc

Questo aprirà un file vuoto e ora possiamo iniziare a scrivere la nostra configurazione.

Bspwm 06 Svuota Config

Configurazione di bspwm

Una configurazione di base per bspwm è simile a questa:

#!/bin/bash
 
xsetroot -cursor_name left_ptr
sxhkd &
 
bspc config border_width	2
bspc config window_gap		0
 
bspc config split_ratio		0.62
bspc config focus_follows_pointer	true
bspc config pointer_modifier	mod1
 
bspc config automatic_scheme	spiral
 
bspc rule -a Chromium desktop='^2'
bspc rule -a Gimp desktop='^8' state=floating follow=on

Come indicato dallo shebang nella prima riga, questa configurazione è scritta in Bash. I primi comandi sono i programmi che volevo eseguire prima di impostare qualsiasi configurazione per bspwm.

Il primo, xsetroot, cambia il cursore X predefinito nel più familiare puntatore sinistro. Il secondo inizializza il nostro demone hotkey in background.

configurazione bspc e regola bspc

I seguenti comandi nella configurazione sono specifici di bspc. bspc config si occupa della configurazione generale del window manager. Include impostazioni sia estetiche che funzionali.

Bspwm 07 Configurazione Bspc 1
  • larghezza del bordo determina lo spessore, in pixel, della larghezza del bordo delle finestre.
  • finestra_gap si occupa della quantità di spazi vuoti, in pixel, attorno alle finestre.
  • rapporto_diviso determina il rapporto tra i due nodi foglia quando divisi.
  • focus_follow_pointer imposta se il puntatore del mouse può controllare quale finestra viene messa a fuoco.
  • modificatore_puntatore determina il tasto della tastiera per ridimensionare le finestre utilizzando il mouse.
  • schema_automatico determina la disposizione delle finestre quando suddivise in modalità automatica.

La regola bspc, d’altra parte, si occupa del comportamento dei programmi quando vengono aperti in bspwm.

  • La prima regola nella nostra configurazione di esempio forza l’esecuzione di Chromium nel secondo desktop.
  • La seconda regola nel nostro esempio obbliga Gimp a funzionare nell’ottavo desktop. Forza anche Gimp a funzionare in uno stato mobile piuttosto che nel riquadro predefinito. Infine, forza il focus della finestra su Gimp quando viene caricato.

Con ciò, ora abbiamo una configurazione di base per bspwm. È importante notare, tuttavia, che le opzioni per bspc config e bpsc rule è esteso. Se vuoi saperne di più sulla messa a punto del tuo bspwmrc, puoi controllare Github Documentazione Github per avere un elenco completo di tutte le impostazioni possibili.

sxhkd: l’utilità di associazione tasti per bspwm

sxhkd è un programma semplice. Ascolta gli eventi di input da tastiera ed esegue i comandi in base ai tasti premuti. Può gestire input multi-tasto tramite accordi e dispone di un file di configurazione intuitivo, semplice e di facile comprensione.

Preparazione del file di configurazione per sxhkd

La preparazione del file di configurazione per sxhkd è simile all’impostazione del file bspwmrc. Innanzitutto, dobbiamo creare la cartella e il file di configurazione per sxhkd. Possiamo farlo digitando il seguente comando:

mkdir -p /home/$USER/.config/sxhkd/ && touch /home/$USER/.config/sxhkd/sxhkdrc
Bspwm 08 Sxhkd Ls

Quindi, dobbiamo impostare il file sxhkdrc in modo che sia eseguibile:

sudo chmod 774 /home/$USER/.config/sxhkd/sxhkdrc

Una volta fatto, ora abbiamo il nostro file di configurazione sxhkd per inserire tutte le nostre associazioni di tasti.

Configurazione di sxhkd

sxhkd riconosce le associazioni di tasti in uno schema specifico. Prima richiede un tasto modificatore. Questo può essere Alt, Super, Iper o Controllo. Dopodiché, devi fornire una chiave normale per completare il tuo tasto modificatore. Può, quindi, essere combinato per essere una combinazione di tasti aggiungendo un segno “+” tra queste due chiavi.

Pertanto, il modulo generale per una combinazione di tasti sxhkd è simile al seguente:

modifier key + normal key (+ {_, additional, keys})

Una volta fatto, è necessario premere accedere e Tab per creare una linea rientrata sotto la combinazione di tasti. Successivamente, è necessario specificare il comando che si desidera eseguire quando viene premuta la combinazione di tasti.

Un file di configurazione di esempio per sxhkd è simile a questo:

# make sxhkd reload its configuration files
alt + Escape
	pkill -USR1 -x sxhkd
 
# quit or restart bspwm
alt + shift + {q,r}
	bspc {quit,wm -r}
 
# create a new terminal window or swap the current one to the biggest one in the screen 
alt + {_,shift + }Return
	{st, bspc node -s biggest.local}
 
# close or kill a window
alt + {_,shift + }c
	bspc node -{k,c}
 
# change the window state
alt + {t,ctrl + t,l,f}
	bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
 
# expand a window by moving one of its side outward
super + alt + {h,j,k,l}
	bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
 
# focus or send a window to the given desktop
alt + {_,shift + }{1-9,0}
	bspc {desktop -f,node -d} '^{1-9,10}'

Spiegazione della sintassi di associazione dei tasti

Come abbiamo discusso in precedenza, la sintassi di associazione dei tasti per sxhkd è relativamente semplice. Inoltre, sxhkd può raggruppare insieme le combinazioni di tasti e può eseguire comandi di ramificazione attraverso l’uso di accordi sui tasti.

Bspwm 09 Sxhkd Config 1

Ad esempio, un certo numero di comandi in questa configurazione utilizza le parentesi graffe. Questo ci consente di assegnare più funzioni su combinazioni di tasti simili. Considera questo comando nella configurazione:

alt + shift + {q,r}
	bspc {quit, wm -r}

Questo comando si occupa della chiusura e del riavvio di bspwm. Le parentesi graffe nella combinazione di tasti corrispondono alle parentesi graffe che abbiamo nella riga di comando. Pertanto, quando premiamo Alt + Spostare + Q nella tastiera il comando: bspc quit viene giustiziato. Tuttavia, premendo Alt + Spostare + R eseguirà bspc wm -r.

Possiamo anche ignorare la necessità di fornire chiavi aggiuntive durante la diramazione. Considera questo esempio:

alt + {_,shift + }Return
	{st, bspc node -s biggest.local}

Questo comando si occupa dello spawn del terminale. Scambia anche le finestre nel desktop. Posso eseguire il primo comando premendo Alt + accedere e posso eseguire il secondo comando premendo Alt + Spostare + accedere.

Questo perché il carattere di sottolineatura funge da pass-through per le associazioni di tasti. Questo ci consente di avere una combinazione di tasti predefinita per un comando ma anche di una combinazione di tasti “modificata” per altri comandi.

Infine, sxhkd non è limitato a una singola ramificazione. Considera questo esempio:

alt + {_,shift + }{1-9,0}
	bspc {desktop -f,node -d} '^{1-9,10}'

Questo comando si occupa della commutazione dei desktop. Gestisce anche il movimento delle finestre all’interno di quei desktop. Il primo comando viene eseguito quando si preme Alt + 10 mentre il secondo è fatto con il Spostare tasto modificatore.

In questo, abbiamo utilizzato due parentesi graffe per impostare la chiave pass-through ei numeri per i desktop. Queste due opzioni corrispondono quindi alle due parentesi graffe nel comando sottostante.

Finalizzare l’installazione

Con ciò, ora abbiamo una conoscenza di base della configurazione di bspwm e sxhkd. L’ultima cosa che dobbiamo fare è abilitare bspwm come nostro window manager. Puoi farlo direttamente tramite Xorg o tramite il tuo display manager.

Esecuzione di bspwm usando xinitrc

Il modo più semplice per inizializzare bspwm è aggiungerlo al file .xinitrc. Se stai usando una distribuzione Linux minima, questo è probabilmente il metodo che stai già utilizzando per caricare un window manager.

Per fare ciò, devi solo aggiungere quanto segue nell’ultima riga del tuo .xinitrc:

exec bspwm
Bspwm 10 Xinitrc

Esecuzione di bspwm utilizzando un Display Manager

Tuttavia, se stai utilizzando un desktop completo come Linux Mint o Ubuntu, potresti dover selezionare bspwm nella schermata di accesso.

Ad esempio, nella mia installazione di Ubuntu devo fare clic sull’icona a forma di ingranaggio nella schermata di accesso e selezionare bspwm dal menu contestuale per caricarlo.

Bspwm 11 Ubuntu

Congratulazioni! Ora hai un’installazione funzionante di bspwm. Ora puoi personalizzare ulteriormente il desktop modificando i file di configurazione e installando dock di terze parti. Ecco alcuni desktop personalizzati a cui ispirarti.

Domande frequenti

1. Perché il mio schermo è nero quando ho effettuato l’accesso per la prima volta?

Probabilmente è perché non hai ancora impostato uno sfondo del desktop. Questo è spesso il caso se si esegue un’installazione minima. Puoi cambiare il tema dello sfondo usando un programma di visualizzazione di immagini come feh.

2. Perché le mie combinazioni di tasti non funzionano?

Molto probabilmente questo è dovuto a due cose:

  • Le associazioni di tasti non sono state caricate perché sxhkd non è in esecuzione.
  • Si è verificato un errore di sintassi con sxhkdrc. L’errore più comune commesso durante la configurazione di sxhkd è con i rientri. Per inizializzare correttamente i comandi, è necessario inserire spazi di tabulazione nelle righe rientrate.

3. Quando ho effettuato l’accesso al mio sistema, mi è appena tornato al prompt di sistema.

Ciò può essere dovuto a una serie di cose. Tuttavia, la causa più comune è un problema con il file .xinitrc. Devi assicurarti che bspwm sia l’ultimo programma che Xorg carica e che non sia in esecuzione come processo in background.

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar di Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Potrebbero interessarti anche...

Subscribe
Notificami
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x