Not that anyone’s interested in this, but I thought about sharing more information about my setup and how it’s working for me, so here it is.

Note: This is a work in progress and things keeps changing all the time, so the information below is most likely outdated.

My desk

Hardware

Lenovo Thinkpad T480

I use a Thinkpad T480 running Fedora as my daily driver.

My current installation has a little more focus on security and privacy than previous iterations, so I spent a little more time setting up Secure Boot with my own keys, LVM on LUKS for full disk encryption, two-factor authentication during login with pamu2f + YubiKey (I also have a Ledger Nano S as a backup) and ufw firewall configuration that denies all traffic except for the ones I explicitly want. I also try to keep a VPN running at all times, but I’m still evolving this bit.

Things to improve

Translate my current setup to some configuration management tool, such as Ansible.

Monitors

Model Resolution Position
Asus PA279CV 3840x2160 Landscape
Dell U2412M 1920x1200 Portrait

It’s impossible for me to work with just the laptop built-in display.

I like to use the display in portrait position for reading articles and the other one for splitting between text editor, web browsers and terminal windows, all that arranged in different workspaces. I use a i3wm, a tiling window manager for simplifying the task of navigating between the different windows in different workspaces and displays with the keyboard.

Zoomed-in desk view

Things to improve

One of my displays is full HD, and the other is 4k. I’ll replace my old Dell at some point.

ErgoDox EZ Keyboard

A few years back, I used a Macbook Pro as my work computer. I was one of the many users that were affected by the terrible build quality of the built-in “butterfly” keyboard, so I began considering using an external keyboard.

Regarding the ergonomics, one issue I had was occasional shoulder and wrist pain, which was most likely caused by the effort I had to make to keep my fingers lined up with the key rows while touch typing. Also, as an old Emacs user, other common cause of pain was the infamous Emacs pinky. I tried to do the usual change of mapping the Caps Lock key to Ctrl, to make the key easier to reach, but that only helped so much.

After some research, I decided to purchase myself a programmable split keyboard, and the one I chose was the ErgoDox EZ.

With ErgoDox EZ, I managed to move the Ctrl key to my thumbs, causing much less strain on my pinkies. I also heavily changed the default layout to fit my needs. To do that, I used WhatPulse for a while, in order to identify the most pressed keys and gradually changing the keyboard layout towards better ergonomics for my usage. Now I can type for hours straight without busting my arms and hands. You can check out my custom layout here.

The keyboard is built like a tank. It will probably outlive every other piece of hardware I have, so the high price tag is definitely worth it!

Things to improve

Nothing so far.

Kensington Orbit Trackball

By using an external keyboard, I had to start using an external pointing device. I used an old Microsoft mouse for a while before getting myself a Kensington Orbit trackball.

At first, I considered buying myself a Magic Trackpad 2 but one of these is way too expensive here in Brazil. In the end I decided to try a trackball, which is something I was curious about and wanted to try for quite some time.

This was a nice ergonomics improvement, as I don’t have to move my arm around in order to move the pointer. It took me a few weeks to regain the same precision I had when using a traditional mouse or trackpad device, but I feel much more comfortable now.

Things to improve

The Orbit build quality is also very good. The only downside for me was the scroll ring rubber cover, which sometimes gets in the way when spinning the scroll ring and builds up grease and dirt. I eventually removed the rubber, as you can see in the picture below.

The power duo - ErgoDox EZ + Kensington Orbit Trackpad

If a nice trackpad wasn’t so damn expensive around here, I would give that a try.

Google Pixel 6a

My new phone is a Google Pixel 6a running GrapheneOS, that I wanted to try out after the introduction of the sandboxed Google services, which would supposedly make the OS more compatible with the apps I used, and so far everything is working nicely.

Things to improve

Nothing so far, I’ve been quite happy with my current setup.

YubiKey 5 NFC and Ledger Nano S

I use YubiKey as my main hardware token, and keep the Ledger Nano S in a safe place as a backup. I might buy myself another YubiKey in the future and keep the Ledger only for handling cryptocurrencies.

The YubiKey build quality is great. The performance is decent (much faster than in Leger Nano S), and I feel much safer using these devices than I felt when I had to rely on other methods for multi-factor verification. I also no longer have to keep private SSH and PGP keys available in my computer’s file system, and the U2F / WebAuthn support is great.

The PGP support in the Series 5 key is nice and enables me to use these devices for a lot of different things, such as authenticating to remote machines, signing/encrypting messages, managing passwords, etc.

Aside from the obvious usage scenarios, I also use the hardware tokens in my local machine as a second factor and for authenticating sudo.

Things to improve

The only thing I wish is for more services to properly support hardware tokens and standards like WebAuthn. There are still a lot of sensitive services that still rely on TOTP as second factor ~(like ProtonMail)~ and this drives me crazy.

Other Hardware

  • Logitech C920 PRO HD webcam
  • Bose QuietComfort 25 headphone
  • Herman Miller Sayl office chair

Software

Window Manager

I use Sway as the window manager, which helps me spread editors, terminals, browsers and other apps across the different displays and navigate between them quickly without leaving the keyboard.

I’m still finishing to configure it. When I’m done, I’ll make the configuration repeatable with Ansible or some other tool.

Desktop screenshot

Apart from Syncthing for syncing files across devices, I use restic to periodic backups and store them in encrypted form in a local SSD drive and in Amazon S3.

Things to improve

Nothing in particular, but I keep trying small changes to my workflow to see how that affects my productivity.

GrapheneOS

I use the same device both for work and my personal life. In order to separate the two, I use a separate Work profile for work-related apps.

For banking and other critical apps, I use separate user profiles.

To protect the traffic for the work and other critical user profiles, I configured an always-on VPN to ensure all traffic flows through an encrypted tunnel.

I don’t keep a Google account signed in this device.

Some of the apps I use and recommend: Aegis, AntennaPod, Bitwarden, Element, Etesync, Infinity, NewPipe, OsmAnd~, RHVoice, SaveTo…, Scrambled Exif, Shelter, Signal, Tasks.org, Tusky.

Things to improve

I’m currently trying new apps to see which ones stick.

VPN Services

Private Internet Access

PIA offers good trade-off between privacy, security and price, at least for my threat model. Before that I used Mullvad, which is awesome, but a bit too expensive for someone who doesn’t get paid in USD/EUR like me.

Self-Hosted Services

Syncthing

I started self-hosting Syncthing from an old Raspberry Pi for syncing files across devices. It’s surprising how well this works!