I just have to link to this.
Alles
Week 3
Recovery goes remarkably fast, yet so slow.
Happened
- Walking goes better every day. I will stick to the the weird shoe that prevents my foot from bending, but I needed the one crutch less and less, so much that I ditched it at the office since Wednesday.
- On Thursday I cycled my first long bike route again to a boardgame evening. Unfortunately Amsterdam is a big city, so it was 10 km and 10 km back. I was okay, but back home my foot was a bit more swollen and painful than before. Healing takes a lot of patience. I worked from home on Friday to recover.
- On Friday I DM’ed a D&D oneshot for friends at home. Well actually, it turned into at least a two-shot, but it was a lot of fun. I tried to apply the principles of the Proactive Roleplaying book I’ve been reading in previous weeks and I think some of that will already pay off in the second session, but I might need a separate blogpost to explain.
- Today on Sunday I went to see my parents in Leiden and I walked the full kilometer from the trainstation, but with two crutches. My brother was doing some work on the house, so I assisted with holding some ladders. Walking goes better and better, but as I am writing this in the train back there is some pain again. It’s a thin balance.
Read
- The Name of the Wind by Patrick Rothfuss (chapters 10-15)
Watched
- Dimension 20’s Escape from the Bloodkeep, episodes 3 and 4
Played
- Gay Sauna: The Board Game
- Curios
Week 2
There we are again. I noticed I already dislike the format, but let’s try to stick with it, at least until my foot is healed.
Happened
- On Monday I got out of my casts! I now have a weird looking sandal that I should wear whenever I want to stand or walk. My foot is still broken, so standing was painful at first, but this gradually improved over the week, although I still need to be careful not to overdo it.
- Wednesday I went to the office again thanks to a coworker picking me up. This turned the rest of the week in a more normal rhythm, with normal days on Thursday and Friday as well.
- Thursday evening I had a D&D session at my house with some friends from Boardgayming. It was actually A.'s first time DM'ing, which was very interesting to be a part of, partially because I recognized a few of the feelings and revelations he had behind the screen, but also because I was a player again, which puts the game in a different perspective for me too, now that I have been on the other side of the screen.
- Saturday I went to Boardgayming XL, thanks to a lift in the car by D. and N., for which I am very grateful. I had ambitious plans for the metro or even cycling, but this was a much safer option to get some boardgames in.
- Headline of the evening was playing Alice is missing, an RPG guided by cards that takes place in total silence while everybody is texting each other on the phone. A recommendation.
- Sunday I went to visit my dad, as he seemed to be doing worse over the past fews days, but luckily he was much better today. I might blog about his condition later but not now.
Read
- A Game Master's Guide to Proactive Roleplaying by Jonah and Tristan Fishel (continued, finished)
- The Name of the Wind by Patrick Rothfuss (chapter 8-10)
Watched
- Dimension 20's Fantasy High, season 1, episodes 15 to 16b
- Dimension 20’s Escape from the Bloodkeep, episodes 1 to 2
Played
- Dungeon Kart
- Coup
- Decrypto
- Alice is Missing
Week 1
Let's start some week-notes, because my life had a bit of an all-changing this week and I wanted to capture and share some of it in a structured way. Also, I've been wanting to track what I read and write for a while, but individual posts feel too much of a hassle. Let's see if this sticks – I wrote it in a draft file during the week, which worked well, and I even managed to remember to post it!
Happened
- I broke a bone in my left foot last Saturday on my way to a final Pride party. Of course I was only able to see a doctor on Monday, because "if you walked home, it is not broken". How else was I supposed to get home? My own pain tolerance also fooled me into thinking it was probably not that serious.
- For the first week, my leg is in a temporary cast, and only tomorrow a doctor is going to predict how long this is going to take. I therefore cancelled a lot of plans for this week, but I still have my hopes up for the coming week. I did however change my ticket for a 14km trail run in the end of September to 7km. I have no idea if that is doable at all, but at least this way I increase my chances. I really hope I can participate (no matter the time) in the 7heuvelenloop in November.
- While I was able to get crutches at the hospital, I also ordered a wheelchair and a special chair for showering. I got quite handy with those tools very fast, but I also cannot think how I would arrange daily life on my own without it.
- I went to Leiden for a night and a day, which was nice, but also challenging, because normal things ('sure I can get up the stairs sitting backwards') quickly became very complicated ('okay but how do I get off the ground now that I am on the second floor?'). Luckily my stepmom provided me with a few tools and groceries and drove me back to my own single-floor apartment, and it was just a lovely break of the week.
- By Thursday I had modified all kinds of things about the wheelchair: I added a shopper in the back, a small pouch to the side, removed the leg stand on the right side, and even attached a spare Philips Hue light switch with some tie-wraps. Sure, the situation sucks, but let’s make it as cool as possible.
- Saturday I played Delta Green with some friends who were so kind to move the session to my place. It's a roleplaying game in which you are part of a secret organisation that investigates occult things, and our (first time) DM Yicun chose Amsterdam as our setting, with the 3rd of August 2024 as the date. This meant that during the sesson, somewhere on Dam Square a Sebastiaan Andeweg was breaking his foot. I wanted my character Stefan Lennips to be there with a sniper or something, but unfortunately, he was caught up in an investigation of an apartment somewhere in West. Very strange things were happening there indeed.
- Today I discovered that there was a third point on the paper they gave me at the hospital: not only should I keep my leg high and keep the cast dry from any water; I should also do some exercises with my toes, every hour. This was a total surprise to me: I have been holding my leg as still as possible for the whole week, hoping that would speed up recovery. Tomorrow I'll hear how much this mistake will hurt me in the long run, but I am not too happy about it.
Read
- A Game Master's Guide to Proactive Roleplaying by Jonah and Tristan Fishel (parts, not finished)
Watched
- Dimension 20's Fantasy High, season 1, episodes 3 to 14
Gesmolten twink op Milkshake afgelopen weekend.
Pink Milkshake
Afgelopen weekend was ik op het Milkshake-festival en het was geweldig. Ik ging vorig jaar voor het eerst een dagje, en dit jaar voor het eerste beide dagen.
Toen ik 15 was fietste ik wel eens langs het COC in Leiden, soms zelfs puur en alleen om er even langs te fietsen. Ik durfde niet eens naar de deur te kijken, pas als ik verderop gekeerd was en aan de overkant van de straat terugfietstte kon ik even snel een blik op de ingang werpen.
Nu nog steeds ging ik 'verkleed als hetero' op weg naar het festival, om pas ter plekke te wisselen naar een outfit die vooral heel roze was, maar verder niet zo heel veel stof bevatte.
In een bepaald opzicht heeft zo'n outfit niets met mijn seksuele voorkeur te maken. Maar dit is ons festival, dus hoewel ik zin had in een roze outfit, wilde ik vooral ook iets aan wat duidelijk maakte: ik ben geen hetero die hier voor een dagje roze aan komt hebben.
Gister snapte ik opeens ook voetbalsupporters beter. Met z'n allen in je clubshirt, of in oranje, dat moet waarschijnlijk ongeveer hetzelfde voelen. Met je kleding laten blijken dat je erbij hoort, dat je snapt wat de juiste tint oranje, roze of rood-zwart-groen is.
Vroeger heb ik ook een tijd gehad dat ik het idee had dat ik tijdens gay-uitgaan moest scoren. Want dat is wat je doet, toch? En vooral als je de rest van de week in een wereld bent waar een dergelijke aantrekking niet vanzelfsprekend is, dan moet en zal het die avond gebeuren.
Gister merkte ik dat ik dat dit weekend los had gelaten. Sure, her en der een flirt is fijn. Maar bovenal waardeerde ik het om in een queer space te zijn, gewoon even te zijn wie je bent en wie je wil zijn.
So now I am a Game Master
I just finished So You Want To Be a Game Master by Justin Alexander, and I guess I am now a Game Master. Well, practically speaking, I already was, because 18 May I ran my first session (with a dungeon from the book) and that was the first of the seven sessions I ran since then. Most of the sessions were in the ever so popular Dungeons & Dragons, but one of them was Pirate Borg.
And I love it. Long time followers of this blog know that 12 years ago, I was deeply into creative writing. Since then, it kind of waned, as I found the game of Go and other hobbies, as well as a job that made me write code all day. More recently, through a Go summer camp, I discovered other boardgames, the Boardgayming Amsterdam community and through that I got into D&D again.[^1]
What I love about it, is that it brings together the storytelling of creative writing, with the mathematics and execution paths of coding, but also just the general social experience of an evening with friends. I even picked up my drawing a bit, albeit mostly for maps.
I still like boardgames, but diving into the RPG-space taught me also a bit more about what I like about those: the story that you tell at the table. Sure, I like to win,[^2] but I am really only able to withstand six hours of Risk because of the epic story that unfolds on the battlefield. Or in my more recently played games: I like to be a member of a house in Night of the Ninja, to be a circus owner in SCOUT, or a radio officer in Captain Sonar.
My next goal is to actually start a campaign, as my seven one-shots are not really sustainable in the long run (so much preparation proportional to the game time). And the general goal is to just get better at improvising at the table, to just go with the flow of where-ever the players want to go. And maybe a subgoal is to write about my progress from time to time here.
It's great to be back in language.
[^1]: Again, because pre-covid I actually played in a campaign as a player, thanks to Mike, Luuk and the others.
[^2]: I wrote about wanting to win in another blogpost.
Ik vind reclame voor vlees altijd al wel lastig, maar een vrachtwagen van een kippenslachter met ‘too tasty to fly’ erop vind ik wel problematisch.
A more inclusive workspace
The only reason I dare to write any of this is because Henrique wrote about the positives and negatives of his new workplace.
I have a relatively new job too, since March, and one of the things I struggle most with is that my coworkers are much less "my kind of people" than I used to have around me in the previous company, which unfortunately went bankrupt. They are still nice people and most of them mean well, but I don't feel at home.
Last Friday, during lunch time, I found myself suddenly in a homophobic conversation among the three other coworkers at the table. It was the kind of conversation where straight males find an anecdote from their past where they were confronted with homosexuality, and then distance themselves from it by telling how they rejected it in the moment. The group will then encourage this by confirming they wouldn't have that either, and then someone else can take the turn to tell such an anecdote.
Being in the conversation felt like being in a slow train wreck. I looked up from my phone, wondered what was happening here, but then it not only continued, it worsened, with the anecdotes just piling up. It is very hard for any person to break such a chain, even for allies willing to change the subject, and I as an open gay person (to them too!) just did not how to handle this. When the conversation ended I walked away, did a solitary walk around the block and packed my stuff to work from home the rest of the day.
The reaction of my teamlead was good: we scheduled a meeting with someone from HR. After the meeting, I talked it over with two of the coworkers that same Monday, and with the last coworker yesterday, as he wasn't present anymore on Monday. With this, everything should be fine.
But I notice I still feel bad. To be fair, I felt much better on Monday. The reactions of the first two coworkers were really good and I noticed how completely at ease I worked on Monday afternoon. I knew I belonged, that I could sit there behind that desk, that it was my place and that I was valued. That is a very important feeling.
The third coworker was back on Tuesday, and this is the coworker I have caught with homophobic and racist comments before, so I felt a bit more nervous going into this conversation.
He didn't notice there was something wrong with the topic, and he said he did not have the intention of hurting me. I said I could try to help him by being more clear about when a topic wasn't suitable. He agreed. I said that I am actively withholding parts of myself and my opinions from lunch conversations, because I know he has different political views. He said that yes, he is that way, he likes to ventilate. At the end of the conversation the teamlead asked if I wanted to add anything. I said that for that moment, I did not.
I was already dissatisfied when we walked out of the room. I gave my coworker space to be himself (as I always try to) and hoped he would return the favor. He took the space, but offered none. In a way, I now made it my problem to wait for the next homophobic moment. I now have to be watchful again, because it might happen again – dare I say, will happen again. The first time it will be mild, but if I let it slip, it will come back bigger, until we are at full homophobia and full racism again.
I mean this last part is obviously speculation. But it reflects how I envision the situation to go, and how I lost that feeling of being able to just be, to just focus on my work without having to worry about what conversations are happening around me. Inclusivity is an effort, and it should not be on the shoulders of those who are in some minority.
In the conversation with HR, they said they were alarmed because I said "I have as much right to this job as them". Conversations like the one at lunch are a way to subvert that right for minorities, because it makes them be on guard when the straight white cis males can work with all their focus. Help, I even think I played this down a bit for HR, just because I didn't want them to feel so uncomfortable with the thought of homophobia in their company. It wasn't aimed at me right? Maybe they didn't mean it like that? But no: it was very toxic and it should not have happened. And: it is not my job to educate my coworkers.
I don't exactly know what note I want to end on. I guess I want to just thank you for reading. Trying to understand each other and to see life from their perspective is the best thing we can do in these matters.
Chasing the casing in Vim
A lot of programming is really just taking data in one form and turning it into another. Imports and exports. Within different contexts, different conventions apply. Within Laravel, database columns are usually snake_case
, yet within PHP most variables are camelCased
. Within HTML and CSS, things are usually kebab-cased
, until you find a React component, which are usually PascalCased
.
Every once in a while I end up copying names from one source and having to turn them into another case. With the Vim language of editing, turning a_cased_string
into aCasedString
usually involves me typing f_
to jump my cursor to the next underscore, and then x~
to delete that underscore and turn the next character into it's uppercase variant. I then have to do that for however many times there are underscores in my target string. (Subsequent jumps to underscores can be made with ;
though.)
The conversion back from aCasedString
to a_cased_string
is always a bit more bothersome, because you need to insert a lot of underscores. I usually do it with a second pass: use fC
to jump to the first insert point, then use i_
and escape to insert the underscore, then jump with fS
, and use the .
to repeat my last insert. Then when I am done with the string, I use guiw
to change the case of the 'inner word' to lowercase (gu
).
The nice thing about that approach is that it feels efficient: I am using all kinds of obscure Vim keystrokes to get my work done and I feel like a wizard. I never touch my mouse! The bad thing about the approach is that it is still a lot of work, especially in longer strings or with many occurrences. Today I thought: there must be a better way for this. Maybe there is even a plugin?
And yes there is, and of course it's by Tim Pope. It's called Abolish and it's main purpose seems to be auto-replacement (which I don't want to use) but it also adds a very handy :Subvert
command, and precisely the mappings I wanted to have.
If I now every have to change any token to camelCase
, I can just jump my cursor to it and type crc
. Do I need snake_case
? Just crs
and that's it, no matter how long it is. And of course it works with the .
command as well. Why have I allowed myself to do all the nonsense I just described above? Just install the tpope-plugin and you're done.
Last year I shared a Vim keybinding that I use quite frequently: I mapped gy
to "+y
, meaning that with the gy
I yank text into the system clipboard (without the awkwardness of typing double quote and plus).
I recently added another mapping to it: if I do gY
, it will actually yank the full content of the open file into my system clipboard. This saves me the awkwardness of typing gggyG
. See my mapping below though: by using the command style yank, I actually don't let the cursor jump, which is much nicer.
nmap gy "+y
vmap gy "+y
nmap gY :%y+<cr>
Mindful boardgaming
So, two weeks ago I wrote about being competitive in boardgames. As I discussed there: I viewed myself as "not competitive", which to me meant that I did not mind losing, and that I would allow others to win if it clearly meant more to them than to me.
This meant that when I was ahead in the game, I would hold back and make smaller moves, just to even the playing field again. I would do this both consciously as well as unconsciously. And seriously: I would say sorry to the other players when I did end up winning. I was a bad winner.
The discussion of two weeks ago changed my mind about this: it is unfair to other players to not give it your all. It is also related to self love (a topic I have been exploring a lot in the past two months): trying to win means you can lose, and you should know that you are still an okay person when you do. Also it's okay to take up the space in a group when you are the winner: you won, you may be seen.
So in the past two weeks I've been trying harder to win, and it changed my experience in boardgames for the better. I didn't necessarily won more, but I am prouder of the wins I did get, and I didn't talk myself down afterwards ("sorry" or "it was just luck"). The wins felt like validation: I am good at games.
At the same time, the loses are indeed hurting a bit more. But I don't see that as a bad thing. I played Unfathomable and lost. But I also identified a few big mistakes in my way of playing the game. Because I was so invested in winning, the mistakes actually hurt, so I will for sure remember not to take on those strategies if I ever play it again. Actually trying to win the game makes you better at games.
That said, I just finished my first in-person Dungeons & Dragons session since 2020, and I really enjoyed it. This is a game that is not about winning at all: it can be endless and it's really just a form of collaborative story telling.
But here also, I made some "mistakes". I felt like I could've tried harder to come up with nice twists for the story (there was a lot of "sure I'll follow" and shooting arrows from a distance). Even though this game is not about winning, there is still a skill and a commitment to bring your best to it. It feels similar to what I call "being competitive".
Two weeks ago I chose the words "therapeutic boardgaming", but I really want to go for "mindful boardgaming" now. Enjoy the moment and give it your best, in that way, you get the best experience.
It's all fun and games
Today, a discussion spawned in a queer boardgaming Whatsapp group I am a member of, about the boundaries of cheating, the value of rules and about competitiveness and fun.
In general, I like to think of myself as 'not competitive'. To me this means I don't try to win in games, but to just enjoy the experience. In the discussion I shared that I sometimes make smaller moves when I have a big lead, to even the game a bit. Not everyone in the discussion liked this.
To give a bit more context: I play the game of Go and I am around 7 kyu. This means that if I go to a tournament, I have no chance of winning a top-3 position, but against someone who knows all the rules but hasn't played before, I have a chance of winning that nears 100%. That's not my style of winning.
To me, the experience of the game is just much more important than winning.
Until someone is holding back
Someone in the discussion said they found it unfair to let someone play with a handicap without them knowing it. I have never thought of my 'holding back' in this way, but I think they have a point. Players are doing their best and they expect me to play to my full ability as well. Holding back undermines the base of the game.
A story related to that: I was playing Ticket to Ride a lot with housemates and they were really fanatic about it. I could just never win: they always completed all their routes, they always went for the longer connections (those get more points) and in general they played efficient.
Then later I joined another friend group, who were already playing Ticket to Ride a lot. I joined their game and won by a huge margin, not just once but several weeks in a row. That is the kind of experience where I feel bad about winning.
But on the other hand: I only learned how to play well because the housemates did not hold back. And my friends also got better because I did not hold back in those first games. Not holding back makes everybody improve their understanding of the game.
The weight of winning
There is another part of not being competitive, which might have to do with the way I look at myself and others. In the past month, I have done a lot of reflecting on self-acceptance and feelings in general. I notice that not wanting to win also has a component of not wanting the attention that comes with it.
And it's not really attention I dislike, because I have it even more in a group I know very well and with people I value a lot. I think this is because the nature of being the 'winner' kind of places you above the rest of the group. It is this aspect I dislike.
But then again: if you agree to play a game, you agree that there will be a winner (depending on which game you pick, of course, but most games work this way). Someone has to fill that role at the end of it. For me personally, I think it would be good to explore my competitiveness a bit more, seeing what happens if I actually try to win.
Trying to win is a bit scary too, because if I actually try, there is still the chance that I loose. It is about valuing myself enough to say "yes I won, I am the best this time", as well as forgiving myself enough to say "I tried and lost, and I am still okay". Therapeutic boardgaming, I guess.
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.
I went to FOSDEM and all I got was tired.
Toggling Github Copilot in Vim with unimpaired
I was trying to remove the Github Copilot configuration from my Vim setup, but then I noticed it was not there at all. I have been neglecting to commit changes to my dotfiles from my MacBook, as I did not have the courage to share stuff I was just trying out. On my new Linux-based Thinkpad I do in fact commit everything, as running open source stuff makes me want to work in public more too.
But since this config was only in the copy of my dotfiles that now lives on ~/dotfiles-mac
, it will get lost now that I don't copy it. A good reason to blog about it.
First: unimpaired is a Vim plugin by tpope, and it is one that should just be part of Vim itself. It adds all kinds of mappings with the [
and ]
brackets, and many of them I use daily (most notably [q
, [e
and [space
). The o
variant of this will change options, with the special yo
binding to toggle the option. I use yoh
all the time (toggles search highlighting) and also yol
is very useful (shows invisible characters).
I wanted to be able to toggle Github Copilot for the current buffer in this same style. Luckily, the g
was still available, and luckily, unimpaired provides an easy way to add new mappings. Unlucky as we are, copilot does not actually provide a toggle, but with Ctrl+R and =
in insert mode, we can evaluate some internal options and print a string based on that. See the full command below.
" Going with that flow
Plug 'github/copilot.vim'
" Toggle github copilot
nmap <script> <Plug>(unimpaired-enable)g :Copilot enable<CR>
nmap <script> <Plug>(unimpaired-disable)g :Copilot disable<CR>
nmap <script> <Plug>(unimpaired-toggle)g :Copilot <C-R>=copilot#Enabled() ? "disable" : "enable"<CR><CR>
As for why I stop with Copilot? It was very useful in my time at Sneaker District, as I was the only developer working on the project and I wanted to be faster than I was on my own. Having a junior developer in my editor was a nice thing to have: it provided me with good suggestions that I usually had to edit a bit.
But I also noticed it slowed me down at times: I got into the habit of stopping to type to see what it would suggest. And sometimes I just stopped to think, and then it would give me suggestions for directions I did not want to go in. For now, I want to experience less distractions, and get into the habit of typing and thinking for myself again.
(There is also some money involved, and the question whether or not you want to send your code to Github for this purpose. It is nice to have those concerns gone, but it wasn't my primary one.)
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.