Log in
Seblog.nl

#linux

The obligatory post-FOSDEM post

This weekend I went to FOSDEM, an open source conference in Brussels, with Henrique and I thought I ought to blog about it. Let me prefix this with explaining that it was my first time, which meant I did not really know what to expect.

We quickly learned that attending a room wasn't as simple as just going there. There was an interesting talk announced for the Networking room, and after getting a coffee we went there to be just in time, only to find a giant queue of people in front of a door that said the room was full. This pattern repeated itself throughout the weekend.

As Henrique is a train nerd (yes) we got ourselves into the 'Railways and Open Transport' room, for talks about how to count passengers using open source software. It's great how this conference can provide such niche talks and get so many people interested in them. It was not easy to get into the Transport room.

I must admit that the niche also made me feel lost a few times. Everything is so zoomed in, it makes it hard to pick a place to attend, especially since getting into a room is always an investment. The trick is then to just pick a room that sounds interesting and just stay there, let the serendipity hit you.

Since nobody bought a ticket to the event, nor even did have to register, it is quite impossible to know the exact capacity of the event. It was really crowded, but that was mainly a good thing.

A few personal highlights:

  • a thing about state machines in the Erlang/Elixir room (which was next to Transport, so H. stayed there)
  • all the examples of how Liquid prompt provides a better thought-out presentation of information in the terminal
  • the idea that we should design our security features for a person who just had a baby and has a cat who pukes in the corner – we aren't paying perfect attention all the time
  • drinks in Delirium, but also the other nice foods, meeting nice people
  • the motivational talk by the guy who maintains curl, that piece of software that is in almost everything, including most apps, your car and on Mars
  • all the git commands I did or (mostly) did not know about
  • the various tweaks in my dotfiles or other workflows just because someone mentioned something
  • the weird LED-screen badge that everybody had and we finally bought too

It was also really nice to talk almost exclusively in Dutch with Henrique all weekend. It's really amazing how far he has come with learning the language and I am glad I could help him in his efforts by providing casual conversations with an occasional gentle correction.

So all in all, yes, this was a very good weekend and I would go again.

Meer Linux avonturen

Mijn avonturen op Linux gaan eigenlijk best prima. Inmiddels beginnen de nieuwe sneltoetsen er een beetje in te slijten en ben ik gewend aan de mogelijkheid dat er iets het gewoon even niet doet. Maar je krijgt er zo veel voor terug, zeggen ze dan (over kinderen).

Mijn tijd in de Awesome window manager was van korte duur: binnen twee dagen ben ik overgestapt op LeftWM. Deze is geschreven in Rust (en dus kan ik de broncode een beetje begrijpen), heeft geen statusbalk ingebouwd (en dus gebruik ik nu Polybar) maar bovenal is de manier waarop extra beeldschermen werken anders.

Bij Awesome krijg je per scherm dat je aansluit 9 tags/spaces/plekken waar je vensters op kwijt kan. Bij drie schermen heb je er dus 27 (al kan je dit aantal vast instellen ergens). LeftWM werkt meer zoals Xmonad en geeft je gewoon 9 tags, die je vervolgens zelf per scherm kan swappen. Als je tag A op scherm 1 weergeeft, en tag B op scherm 2, en je vraagt dan om tag B, dan wisselen beide schermen om. Als je om tag C vraagt, wordt C zichtbaar en verdwijnt B naar de achtergrond. Ik denk dat ik dit logischer vind, vandaar dat ik ben overgestapt.

Omdat ik nu Polybar als statusbar heb maakt het ook nog weer iets minder uit: ik kan nu makkelijk overstappen naar een andere window manager die óók geen bar heeft, want dan hoef ik de statusbar niet nogmaals te tweaken. Bovendien bestaat merendeel van wat ik doe in LeftWM sowieso al uit calls naar andere programma's.

Bijvoorbeeld: de knoppen om mijn volume te regelen deden het niet. In mijn LeftWM-configuratie heb ik de volgende drie keybindings toegevoegd. Merk op dat ik hier vooral een extern programma genaamd amixer aanroep. Dat programma staat los van LeftWM en ik kan het dus ook makkelijk vanuit een ander programma dat keybindings registeert aanroepen. (Het lastigste gedeelte was achterhalen wat de naam van deze volumeknop was, maar dat was dus deze.)

        (command: Execute, value: "amixer -q sset Master toggle", modifier: [], key: "XF86XK_AudioMute"),
        (command: Execute, value: "amixer -q sset Master 5%+", modifier: [], key: "XF86XK_AudioRaiseVolume"),
        (command: Execute, value: "amixer -q sset Master 5%-", modifier: [], key: "XF86XK_AudioLowerVolume"),

Een ander groot raadsel was hoe ik speciale tekens als de ë kon typen. Dat heb ik uiteindelijk opgelost door tijdens het opstarten van LeftWM ook iBus op te starten (met ibus-daemon -rxRd) en in iBus het standaardtoetsenbord 'English (Macintosh)' in te stellen. Hierdoor werkt het typen van 'maffe' tekens net zoals op mijn Mac, met slechts een paar verplaatsingen en vooral met AltGr (rechts) in plaats van de linker Alt (die nog steeds voor andere sneltoetsen werkt).

O en wat dacht je van iets simpels als het locken van het scherm als je je laptop dichtklapt? Ook dat werkte wel gewoon in de Gnome desktop-omgeving, maar natuurlijk niet in mijn window managers. Daar draai ik nu het volgende voor in mijn startup: xss-lock --transfer-sleep-lock -- i3lock --nofork. Het programma xss-lock luistert naar het dichtklappen van de laptop, het programma i3lock geeft me het daadwerkelijke lockscreen (een leeg wit scherm). Dit is de linux-filosofie ten voete uit: alles doet maar één ding, maar samen maken ze wat.

Ik gebruik i3lock en niet slock (zoals het voorbeeld overal op het internet) omdat ik met i3lock de vingerafdruklezer van mijn laptop kon gebruiken. Daarvoor heb ik de volgende inhoud in het bestand /etc/pam.d/i3lock gezet (geen idee, maar het werkt):

auth required pam_env.so
auth sufficient pam_fprintd.so
auth sufficient pam_unix.so try_first_pass likeauth nullok
auth required pam_deny.so

auth include system-auth
account include system-auth
session include system-auth

Ik wil namelijk niet steeds het wachtwoord hoeven in te typen, want iedereen om me heen kan zien wat ik intyp. En als ik toch zo'n vingerafdrukscanner heb, waarom niet? (Op Gnome werkte hij ook al.)

Het grootste ontbrekende programma is nog iets om screenshots mee te nemen. Stiekem gebruikte ik dat op macOS ook vaak om op te meten hoe groot een bepaald element op mijn scherm is, en soms zelfs om iets aan te wijzen tijdens een video-call. (Met Escape cancel je de screenshot, maar met Cmd en Shift kan manipuleren hoe het geselecteerde gedeelte zich gedraagt, bijvoorbeeld door het te verplaatsen zonder zich te resizen als je de muis beweegt.) De meeste oplossingen op Linux lijken vooral een bestandje ergens op je schijf te zetten, maar ik mis dus de grafische crop-tool. Wie een tip heeft: ik hoor het graag.

Al met al ben ik heel tevreden! Ik kan nu echt nog meer met het toetsenbord (zonder muis) doen dan ik op macOS kon en dat is heerlijk. Een vriend van me zei 'wel gek, Seb zonder Mac', en dat klopt, want mijn eerste had ik in 2010, maar ik zit me nu al sterk af te vragen of ik wel een Mac ga vragen als een toekomstige werkgever me een laptop-van-de-zaak wil aanbieden.

Het pielen

'Het kan geen kwaad,' zei de man in de video. 'Je kan gewoon een window-manager draaien naast je bestaande desktop-environment, dat maakt niets kapot.' Hij liet zien hoe je vanuit het standaard Gnome inlogscherm inderdaad in de awesome window manager kon komen, en hoe je die vervolgens kan instellen. Nou, dacht ik, vooruit dan.

Ik merk dat ik nog steeds moeilijk kan uitleggen waarom de tiling window manager zo'n aantrekkingskracht tot me heeft. Het is denk ik het minimalisme ervan: geen van mijn vensters hebben nog een balk met een kruisje erboven, vensters zet je uit met een toetsenbordcombinatie. Ook heb ik de muis minder nodig: wisselen van venster gebeurt ook met een toetsenbordcombinatie. Het voelt allemaal veel efficiënter.

Wat ze er echter niet bij gezegd hadden, was dat een desktop-environment nog veel meer doet dan een beetje vensters en menu's tonen. Al direct na installatie kwam ik erachter dat de 'natural scrolling' die ik op Mac gewend ben uit stond, en alle vensters dus de andere kant op scrolden. Ook doen de volumeknoppen op mijn toetsenbord het niet meer, en ook heb ik nog altijd niet achterhaald hoe ik een trema op een e kan zetten (vorige paragraaf nog nodig).

Inmiddels heb ik de standaard layout volledig naar mijn hand gezet middels de config files (ik hou wél van spacing rond mijn icons) en heb daarbij een batterij-indicator aan de balk toegevoegd (hij viel bijna uit zonder dat ik het wist). Ook heb ik een soort avondmodus geactiveerd met redshift en heb ik na twee uur zoeken en mijn muis slopen de scrollrichting weten aan te passen.

Want dat is het: als je je muis kapot maakt omdat je iets verkeerds in een tekstbestandje hebt gezet om een instelling te veranderen, dan snap ik eindelijk wat men bedoelt dat 'Linux niet voor de massa' is. Met Gnome valt het ontzettend mee, vond ik, maar inderdaad, dit window-management-gedoe is wat heftig.

Ik piel lekker verder.

Ik haal zojuist een haar van mijn scherm, en opeens verschuift de pagina die ik aan het lezen was. Enorm wtf-momentje: mijn nieuwe laptop heeft een touchscreen.

De installatie

Nou, de laptop die ik ging kopen is binnen sinds maandag, dus hoog tijd voor een update. Allereerst: Linux op dit ding zetten was echt een eitje. Natuurlijk, je moet even weten wat je moet doen, maar Youtube had heel behulpzame videos die ik van te voren had bekeken, en tussendoor hoefde ik eigenlijk niets op te zoeken.

  1. Je download een iso-image voor de distributie die je wil hebben. Ik ben voor Manjaro gegaan, maar heb het mezelf wel makkelijk gemaakt met een versie met Gnome Desktop, want dat zag er het volledigst uit.
  2. Je download een programma om dit mee op een USB-stick te flashen. De aanbeveling was om Etcher te gebruiken. Via de terminal kon het vast ook, maar aangezien ik mijn Mac toch ging wissen dacht ik: sure, dat installeren we gewoon wel even.
  3. Haal de USB-stick uit de Mac en stop hem in de nieuwe laptop en zet die aan. Het opstartscherm zei al iets van 'press Enter' voor meer boot-opties, maar aangezien er nog geen OS op de harde schijf stond schakelde hij automatisch over naar de USB-stick en startte hij dus Manjaro op vanaf daar.
  4. En toen werkte eigenlijk alles gewoon: de trackpad, het geluid, de wifi. Ik moest alleen nog even in het speciaal daarvoor geopende venster op 'install' klikken, om het OS daadwerkelijk op mijn harde schijf te zetten. (Ik koos voor geen swap-partitie, wat gebruikersnamen en wachtwoorden, en daarna even wachten op het wegschrijven.)
  5. De rest is gewoon een kwestie van programma's die ik nodig heb installeren, zoals Vim, Tmux, mijn Firefox historie overzetten, dat soort dingen.

Het werkt gewoon, maar het is toch even wennen. De meeste sneltoetsen zijn net anders en ook zitten veel knoppen op net een iets andere plek. Ik heb Gnome Desktop nu op 'Tiling' staan en het is even uitzoeken hoe dat werkt. Het geluid dat uit deze Thinkpad T14 komt is werkelijk abominabel (maar wel functioneel) in vergelijking met hoe de MacBook Pro (M1) klonk. Maar goed, dat is ook waar je Apple voor betaalt: de boterzachte gebruikerservaring, die ik na 14 jaar Mac een beetje voor lief nam.

Mijn vorige desktop-ervaring met Linux was vooral op een Raspberry Pi, en ik moet zeggen: dit is heel erg volwassen. Nu mijn nerdy programma's zijn ingeregeld met mijn eigen dotfiles en dus alles (qua terminal) precies is zoals ik gewend ben, voelt het al gelijk echt als mijn eigen computer. Zelfs al sla ik dus soms op enter terwijl ik dat niet bedoeld had, en struggle ik met zoiets simpels als Ctrl+C Ctrl+V.

Een nieuw begin

Het is alweer 2024 en daarmee zijn we 20 jaar verder dan 2004. In 2004 mocht ik van mijn oma een boek uitzoeken voor mijn verjaardag, en koos ik Leer jezelf makkelijk PHP (Geschikt voor versies 4 en 5) door Arjan Burger. In de jaren daarna begon ik diverse projectjes, van random-stamboomgenerators tot een complete website met een custom CMS voor een bevriende kunstwinkel. In 2006 begon ik ook dit weblog. Uiteindelijk vond ik werk als PHP-programmeur, vanaf 2014 als freelancer en vanaf 2017 in dienst.

In 2019 ging ik bij BigSpark in Nijmegen werken, en daar had ik achtereenvolgens de collega’s Max, Michiel en Bram. Hoewel ze elkaar dus afwisselden waren er twee eigenschappen die stabiel bleven: allen hadden ze een Linux-laptop en allen hadden ze een motorrijbewijs. Dat tweede klinkt wel cool, maar vooral de Linux-laptop vind ik al tijden heel interessant en zou ik ook willen uitproberen. Ik heb het alleen nooit gedurfd.

Maar 2024 brengt verandering: Sneaker District, het bedrijf waarvoor ik één jaar en vier maanden heb gewerkt, is in november failliet gegaan en dus ben ik per 1 januari werkeloos. Ik ben op zoek naar nieuw werk, maar neem aan dat ik snel weer iets kan vinden. Het betekent echter ook dat ik nu mijn MacBook-van-de-zaak kwijt ben, en dat ik momenteel niet eindeloos budget heb om een eigen MacBook aan te schaffen.

Wat ik zei: ik kijk al tijden nieuwsgierig naar collega's en IndieWebCamp-gangers die Linux gebruiken, zonder zelf de stap te wagen. Maar nu, zonder laptop en zonder veel budget, heb ik besloten ervoor te gaan. Ik heb een laptop zonder OS besteld (want waarom Microsoft betalen als je het niet gaat gebruiken?) en zodra die binnen is ga ik – techsavvy als ik ben – proberen er een Linux-distributie op te zetten.

En welke dan? Mijn eerste keus zou Ubuntu zijn (makkelijk beginnen en ik ken Ubuntu op de server al heel goed), maar ik zit ook naar Manjaro te kijken (want de cool kids draaien Arch natuurlijk). Uiteindelijk wil ik denk ik iets zonder desktop environment, met een standalone window manager, maar laat ik niet te hard van stapel lopen.

O en ik ben dus voornemens om over de ervaring te bloggen, maar dat begreep je al wel uit het bestaan van deze post, denk ik.