De ‘window manager’ is de software die ervoor zorgt dat er vensters op je scherm getekend kunnen worden. Open je de browser op je pc? Versleep je het venster of zet je het ergens anders neer? Allemaal zijn het interacties met de window manager. Dikwijls doet de manager niet veel meer dan de weergave en manipulatie van deze vensters faciliteren. Er is echter een klasse van window managers die je productiviteit enorm kan vergroten: de ‘tiling window manager’. De window manager die we hier gebruiken heet ‘Binary Space Partitioning Window Manager’, ‘bspwm’ in het kort.
Dergelijke tools rangschikken en herschikken automatisch vensters, naargelang hoeveel je er open hebt staan. Doe je een Word-bestand open terwijl je de browser al open hebt? Dan zal het scherm automatisch in twee verdeeld worden, zonder dat je daar de computermuis voor hoeft vast te nemen. Een volgende applicatie zal dan weer het nieuwe Word-venster in tweeën splitsen, tenzij jij de window manager anders geconfigureerd hebt. Voor Microsoft Windows zijn er echter geen tiling window managers beschikbaar. Als je productiever wil zijn op de computer zal je dus eerst Linux moeten installeren. Er zijn tal van mogelijkheden te vinden, waaronder ‘awesome’ en ‘i3’. Let wel op: deze managers zullen enkel werken als je het X Window System gebruikt op je installatie. Indien je Wayland gebruikt, is een manager als ‘Sway’ de aangewezen optie. Deze workshop werd geschreven voor systemen die Ubuntu of een derivaat ervan met het X Window System draaien.
Stap 1: de nodige pakketten installeren
Vooraleer je bspwm kan installeren is het nodig om de nodige pakketten binnen te halen. De meest evidente manier om dit te doen is via de pakketmanager. Je kan ook de code op Github zoeken en hem meteen van daar downloaden. In dat laatste geval zal je zelf nog wel op zoek moeten naar een aantal programma’s die anders gewoon meegeleverd worden. Voor de makkelijkste ervaring open je een terminalvenster en tik je het volgende in:
sudo apt install bspwm feh suckless-tools
Op die manier installeer je bspwm en enkele andere programma’s die je leven heel wat makkelijker zullen maken.
Stap 2: configuratiebestanden aanmaken
Bspwm haalt zijn instructies uit een configuratiebestand. Om ervoor te zorgen dat alles werkt, kan je de standaardwaarden gebruiken. Daarna kan je deze aanpassen, zodat het systeem precies reageert zoals jij het wil. Naast bspwm werd in de vorige stap ook de ‘Simple X Hotkey Daemon’ (sxhkd) geïnstalleerd. Dit programma regelt alle sneltoetsen en haalt ook zijn instructies uit een configuratiebestand. Dit zal je dus ook willen kopiëren. Je moet er ook voor zorgen dat het configuratiebestand voor bspwm uitvoerbaar is – anders zal de window manager er niet veel mee kunnen doen.
mkdir $HOME/.config/bspwm && mkdir $HOME/.config/sxhkd
cp /usr/share/doc/bspwm/examples/bspwmrc $HOME/.config/bspwm/
chmod +x $HOME/.config/bspwm/bspwmrc
cp /usr/share/doc/bspwm/examples/sxhkdrc $HOME/.config/sxhkd/
Stap 3: configuratiebestand bspwm aanpassen
In de standaardconfiguratie is bspwm niet bijzonder aantrekkelijk. Daar breng je echter gemakkelijk verandering in: een aantal instellingen maken de gebruikservaring een pak beter. Best gebruik je hiervoor nog je originele desktop environment of een TTY-terminal. Hiervoor open je eerst het configuratiebestand met een tekstverwerker naar keuze. ‘Gedit’ is een goede optie, aangezien deze standaard bij Ubuntu gebundeld zit.
gedit $HOME/.config/bspwm/bspwmrc
Eenmaal je het bestand geopend hebt, kan je instellingen gaan toevoegen. Deze kan je bovenaan het configuratiebestand toevoegen, onder ‘#! /bin/bash’. Hier stel je ook je bureaubladachtergrond in – zorg er dus voor dat je weet waar die zich bevindt. Het is aangeraden om de achtergronden in een aparte en herkenbare map te bewaren.
xsetroot – cursor_name left_ptr
feh –bg-scale $HOME/Afbeeldingen/Bureaubladachtergronden/achtergrond.jpg
Je wil er ook voor zorgen dat sxhkd kan werken. Ook dit stop je in bspwmrc, het configuratiebestand waarin we momenteel aan het werken zijn. Tik je op een QWERTY-klavier, dan kan je in het configuratiebestand sxhkd oproepen en naar de achtergrond verplaatsen met ‘sxhkkd &’. Gebruik je een AZERTY-toetsenbord, dan zet je het volgende onder ‘#! /bin/bash’. Op deze manier weet het programma dat er een aantal toetsen anders liggen.
sxhkd -m -1 &
Stap 4: een terminal emulator kiezen
Voor je klaar bent om je eerste stappen te zetten met bspwm is het een goed idee om de configuratiebestanden voor sxhkd aan te passen. Daarin passen we momenteel één instelling aan – de rest is voor later, als je eenmaal met bspwm aan de slag kan.
Meer bepaald wil je ervoor zorgen dat je ook in bspwm een terminalvenster kunt openen. Standaard verwijst de software naar urxvt. Heb je deze geïnstalleerd, dan kan je deze laten staan. Anders moet je dit echt wel gaan aanpassen. Hiervoor open je het configuratiebestand met een tekstverwerker en pas je de waarde ‘urxvt’ aan naar ‘x-terminal-emulator’.
gedit $HOME/.config/sxhkd/sxhkdrc
Stap 5: bspwm voor de eerste keer opstarten
Om bspwm voor de eerste keer op te starten log je uit of start je het systeem opnieuw op. Op het inlogscherm, waar je het wachtwoord moet intikken, zal je zien dat er rechtsonder een tandwiel is bijgekomen. Als je hierop klikt verschijnt er een keuzemenu. Hier selecteer je ‘bspwm’. Daarna kan je inloggen zoals je altijd doet.
Stap 6: sxhkd configureren
In bspwm is het toetsenbord de meest voorname manier om door het systeem te navigeren. Je zal dus erg veel sneltoetsen gebruiken. Voor de meest optimale gebruikservaring is het daarom aangewezen dat je die sneltoetsen instelt op een manier waarop jij ermee overweg kan. Hiervoor open je terminal emulator. Indien je stap 4 correct uitvoerde, kan je dit doen door tegelijkertijd op de Windows-toets en enter te duwen. Dan navigeer je naar het configuratiebestand sxhkdrc en pas je de instellingen aan naar wens. Je kan ook de standaardconfiguratie blijven gebruiken. Het configuratiebestand komt dan van pas om na te gaan welke sneltoets aan welke actie gekoppeld is.
gedit $HOME/.config/sxhkd/sxhkdrc
Om een voorbeeld te geven: wij doen graag de sneltoetsen iets of wat overeenkomen met hoe ze in MacOS functioneren. Met andere woorden: de super-toets (hier is dat de Windows-knop) in combinatie met ‘w’ sluit vensters, terwijl super+q een programma volledig afsluit. In de screenshot hieronder zie je het resultaat voor en na.
Stap 7: programma’s openen
Het is je vast al opgevallen dat er in bspwm niets op het bureaublad staat. Je zal dus het toetsenbord moeten gebruiken. Standaard zorgt sxhkd ervoor dat je een launcher genaamd ‘dmenu’ kan openen door op Windows en de spatiebalk te tikken. Daar kan je (het begin van) de naam van een programma intikken en op enter duwen. Of dat nu gaat om Firefox, Nautilus (de standaard-bestandenbrowser in Ubuntu) of een script dat je zelf schreef.
Stap 8: personaliseren
Het handige aan bspwm is dat je niet alleen de hele window manager zelf kan configureren, maar ook de sneltoetsen en de acties die hieraan hangen kan programmeren met sxhkd. Heb je graag een statusbar? Dan kan je deze zelf maken met programma’s als ‘lemonbar’ of ‘polybar’. ‘Dunst’ is dan weer een programma waarmee je meldingen kan activeren. Op zoek naar een visueel aantrekkelijker alternatief voor dmenu? Kijk dan zeker eens naar ‘rofi’. Heb je inspiratie nodig? Op Reddit is er een hele subreddit (r/unixporn) gewijd aan het personaliseren van je systeem.