Draai je Wayland of X11?

De bekendste Linux-distributies zijn van het X Window System overgestapt naar Wayland voor hun display server, maar vaak maken ze nog gebruik van X11 als de driver van je grafische kaart geen Wayland ondersteunt. In de praktijk zullen veel gebruikers niet eens weten of hun systeem nu op Wayland of X11 draait. Tot ze tegen een incompatibiliteitsprobleem aanlopen, zoals Microsoft Teams dat onder Wayland vastloopt zodra je je scherm wilt delen. Dus hoe weet je nu of je Wayland of X11 draait? Op een Linux-distributie met systemd is dat eenvoudig. Vraag eerst de actieve sessies op met:

loginctl

De kans is groot dat je op je computer maar één sessie te zien krijgt, zoals:

SESSION  UID USER SEAT  TTY
      2 1000 koan seat0 tty2

      1 sessions listed.

Zie je meerdere sessies, dan gaat het om de sessie waarbij je gebruikersnaam staat. Kijk naar het sessie-id, in dit geval 2. Vraag dan het type van deze sessie op met:

loginctl show-session 2 -p Type

Je krijgt dan Type=wayland of Type=x11 te zien.

Bashtop

Er bestaan talloze tools om de resources van je Linux-systeem op de opdrachtregel in de gaten te houden, maar bashtop geeft er een heel duidelijke invulling aan. In één oogopslag zie je het geheugen- en schijfgebruik, het netwerkverkeer, de processorbelasting en temperatuur van de processorkernen (als lm-sensors geïnstalleerd is, zie de Experttips in het vorige nummer van Linux Magazine), en de lijst van gulzigste processen zoals je die in top ook te zien krijgt.

Met PgDown en PgUp scroll je door de pagina’s van processen, en met de pijltjes naar onderen en boven selecteer je een proces. Met de pijltjes naar links en rechts sorteer je volgens een andere kolom en met r draai je de sortering om. Een druk op enter geeft je meer informatie over het proces, t sluit het geselecteerde proces af met SIGTERM (signaal 15) en k met het abruptere SIGKILL (signaal 9).

Met f filter je de proceslijst op een zoekterm en met c verwijder je de filter weer. Met een druk op Esc ga je naar het hoofdmenu en kun je opties aanpassen of het hulpvenster met een lijst van de sneltoetsen opvragen.

Bashtop is verrassend genoeg een Bash-script, en kun je dus eenvoudig uitvoeren zonder installatie. Wil je het toch installeren, kloon dan de repository en voer de Makefile uit die het bestand naar /usr/local/bin kopieert:

git clone https://github.com/aristocratos/bashtop.git
cd bashtop
sudo make install

Upgrade alles

Als je Linux-systeem al een tijdje meegaat, heb je er allerlei software uit diverse bronnen op geïnstalleerd. De pakketbeheerder van je distributie regelmatig nieuwe updates laten installeren doe je wellicht wel, maar wat met tmux- of vim-plugins, Python-, Ruby-, Node.js, Go- en Rust-pakketten? De kans is groot dat je er daar van vergeet. Bovendien is het onhandig om voor al die pakketbeheerders een manuele updatestap uit te voeren.

Gelukkig bestaat hier een oplossing voor: topgrade. Dit programma upgradet alles op je systeem door voorgaande pakketbeheerders en nog vele andere uit te voeren. Topgrade is zelf een Rust-programma, dat je met Cargo installeert. Maar je hebt de laatste stabiele versie van Cargo nodig. Op distributies die wat achterlopen, installeer je het best de laatste Rust-toolchain met:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Voeg dan ook de volgende regel aan je ~/.bashrc toe:

export PATH="$HOME/.cargo/bin:$PATH"

Log uit je shell uit en open een nieuwe shell. Daarna installeer je topgrade met:

cargo install topgrade

Voordat je je hele systeem gaat upgraden, probeer je het best eerst een dry run uit:

topgrade --dry-run

Het programma toont dan welke opdrachten het zou uitvoeren als je het zonder opties start. Helaas krijg je niet te zien welke pakketten topgrade juist zou upgraden. Met de optie –help krijg je te zien welke opties topgrade kent. Als je een volledige upgrade van alles niet vertrouwt, kun je met –only alleen pakketten uit specifieke bronnen upgraden, bijvoorbeeld alleen je Go-pakketten:

topgrade --only go

Je kunt ook vragen om alles te upgraden behalve pakketten uit specifieke bronnen, bijvoorbeeld alles behalve de pakketten van de systeembeheerder van je distributie en firmware:

topgrade --disable system firmware

Als je vaak dezelfde opties gebruikt, kun je deze aanpassen in het standaard configuratiebestand dat topgrade raadpleegt:

topgrade --edit-config

Daarin zie je ook extra mogelijkheden, zoals Git-repository’s die je kunt laten updaten, machines waarop je ook topgrade wilt uitvoeren via ssh en extra opdrachten die je wilt uitvoeren (zoals een docker pull om je Docker-images te updaten).

 

Prullenbak voor je terminal

In grafische bestandsbeheerders ken je het concept van een prullenbak, maar op de opdrachtregel heb je die extra veiligheidsmaatregel tegen per ongeluk verwijderde bestanden niet. Verwijder je een bestand met rm, dan is het weg en kun je het alleen terugkrijgen met undelete-programma’s, zonder garantie op succes.

Het programma rmw (van remove to waste) vult die leemte op: je kunt er op de opdrachtregel bestanden mee naar de prullenbak verplaatsen. Download de laatste release van GitHub voor de installatie. De eerste keer dat je het programma uitvoert (probeer maar eens met de optie –help om te zien wat de mogelijkheden zijn), creëert het de nodige directory’s en een configuratiebestand.

Eerst moeten we opmerken dat rmw geen drop-in replacement is van rm: het kent niet alle opties van die laatste. Het is dan ook niet aan te raden om een alias te maken. Gebruik rmw gewoon voor je dagelijkse eenvoudige opdrachten om bestanden te verwijderen, en rm als je complexere opties nodig hebt.

De werking is eenvoudig:

rmw bestanden

Hiermee verwijder je een of meerdere bestanden, ook directory’s kun je eenvoudigweg opgeven: die worden zelfs recursief verwijderd. Als je nu enkele bestanden verwijderd hebt, zul je zien dat in ~/.local/share/Waste/files je verwijderde bestanden staan, en in ~/.local/share/Waste/info staan bestanden met informatie over het originele pad en het tijdstip waarop je het bestand of de directory hebt verwijderd.

De laatste verwijdering draai je eenvoudig terug met een undo:

rmw -u

Met rmw -s open je een tekstmenu waar je de bestanden kunt kiezen die je wilt herstellen. Met de spatiebalk selecteer je te herstellen bestanden en met een druk op enter herstel je die allemaal. Bekijk zeker ook het configuratiebestand, ~/.config/rmwrc. Je ziet er de volgende regel:

purge_after = 0

Die 0 kun je veranderen naar het aantal dagen waarna bestanden in de prullenbak verwijderd moeten worden. Je kunt die controle ook manueel triggeren met:

rmw --purge

Wil je de volledige prullenbak legen, dan kan dat met:

rmw --empty

Overigens gebruikt rmw een afzonderlijke prullenbak dan die van je desktopomgeving. Wil je dezelfde prullenbak gebruiken, verander dan de volgende regel in het configuratiebestand:

WASTE = $HOME/.local/share/Waste

naar:

WASTE = $HOME/.local/share/Trash

https://remove-to-waste.info