Before working from home, I had no desk at all: I was writing code either sitting on the bed or the sofa. But this isn't really a healthy setup for staring at a screen and typing on a keyboard for 8h+ a day. At work, I used to have a standing desk, and I liked to be able to stand for a while while working, so I got one for home as well, using a stickers-covered Ikea's 150x75cm Linnmon plank with an electric frame from Ergo. Amusingly, the desk's connectors are RJ45. Everything is wired up to a power-strip hanging on the right-leg of the desk with magnets, making it easy to turn everything off when not in use.
As for the chair, I have, like everybody else, an Ikea's Markus, except that I removed the arm rests to be able to sit (half) cross-legged on it.
I'm using a gigantic 0.7955658L (aka 28oz in freedom units) white mug, refilled twice a day (morning and afternoon) with tea, usually green gunpowder or lapsang souchong. As for the food, since I like to mindlessly stuff myself with snacks while I'm writing code, I settled for shelled almonds, bought in a 5kg batch: they're ~healthy, and they do not taste that good due to the shells, thus limiting my intake.
For non-work things, I'm happy to code for hours in a full-screen terminal on a 12"5 laptop, but when I have to juggle with emails, chats, documentation, bugs, code, terminals, … it doesn't work very well on a small screen, so I went completely overkill and bought a curved 35", the Acer Predator Z35.
I used to have at least two screens, but I realised that I'm happier with a single huge one, with at least 3 windows arranged in columns.
At my previous job, almost everybody was super into mechanical keyboards: blinking
LEDS, 60%, matrix
ergo keyboards, ordering custom
stuff on massdrop, soldering
their own PCB, flashing their own
and of course endless discussions about what is the best switch
I let me completely unfazed, until I gave a try to a coworker's
Das Keyboard 4 Professional:
I saw the light, and immediately bought one with my favourite weird layout:
As for the switches, I went with Cherry MX brown:
tactile feeling without the clickityclick. No blacklight, forcing me to not
stay in the dark while using it, which is I consider a feature.
I really like that it comes with two USB-ports on top of the media keys: one for my
mouse so that I can plug them both to a computer with a single
cable, and the other slot for a Yubikey.
Speaking of the media keys, I didn't think that I would use them so much,
but being able to change tracks/adjust the volume (with the big volume knob ♥) without having to do
Fn+F12 is more than convenient.
I'm a huge fan of Thinkpads' trackpoints, but unfortunately, it's non-trivial to add one to my keyboard, and while Lenovo is selling keyboards with trackpoints, they're less comfortable my current one, so I have to resort to a mouse: Logitech M500S. The wheel has two scrolling mode: fast or click-to-click, which I really like, as well as previous/next buttons next to the thumb.
I really want to give Logitech's MX Ergo a try, but not enough to overcome my distaste for wireless input devices.
My employer was kind enough to let me expense a fancy Yeticaster: the audio quality is really neat, much better than headsets or cheap microphones, and along with Google meet it is able to cancel footsteps, the clicking of my typing, my beloved roomba Dobby, and even the blender in my kitchen when it's working.
Like everyone else, I'm using a Logitech Webcam C920 HD Pro: ~cheap-ish, 1080p and plug'n'play on Linux. The only (minor) issue is that the automatic white balance is a bit too enthusiastic, making me look paler than I actually am, especially when I have white windows on my screen.
I previously wrote about my quest to find a pair of headphones for both work and travel. Now that there is a pandemic, I don't have to worry about travelling much, and since I'm not a student anymore, I can afford to carry a bigger bag around. So I gave my beloved AKG N60 away to a friend, and bought a Sony WH-1000XM3: better than the Bose QC35 noise-cancellation-wise, and while the bass are a bit more present that what I would like, it's nothing that can't be corrected via software. Apparently people aren't happy about the lack of support for bluetooth multipoint, but since I'm using the chord for everything, I don't really care.
I'm not using any sound system, partly because I prefer headphones, but also because it would be taking too much space on my desk.
I'm keeping a bunch of notebooks on my desk, albeit I'm not using them a lot, except for sketching diagrams and doing maths. For writing, I really like Pilots G2 Medium tip 07, so much that I'm hoarding a batch of them and pay special attention to the can-I-borrow-your-pen-for-5-minutes-but-instead-it's-a-permanent-transfer-to-my-desk people.
I'm riding a Thinkpad x230 since 2012, and I don't plan on getting something newer as long as it's working, and working it does: despite being nine years old and a couple of minor scratches, it still feels snappy and rock solid.
Now that I can't be at my work's workstation anymore, I'm relying on a Thinkpad X1 Carbon V5 to ssh to it, and while this might sound overkill, Google Meet is still somehow managing to eat all the CPU and RAM from time to time.
I have a beefy desktop machine on a separate network, used mostly to:
- play some games,
- fuzz windows-only programs (I have access to a ton of CPU on Linux at work)
- reverse stuff
To make the Windows experience less horrible, I'm relying on:
- Chocolatey to manage/update software;
- Notepad++ to edit small files.
- Powertoys to have pseudo tiling and a launcher;
- Wincompose to have a working compose key;
Because I only have space for one 35" monitor and peripherals on my desk, they are shared between my work computer and my personal ones: I expensed a Thinkpad USB-C Dock Gen 2 station, so that I just have one USB-C cable to plug my work laptop in and be ready to work. It's also where my rubber duck debugging device is sitting. Moreover, it has the nice side-effect of guaranteeing that both my webcam and microphone are turned off when I cut the power and leave my computer running.
To switch between my machine, I just have to replug my keyboard and headphones, and switch the input on my screen.
I have been using Linux as my primary operating system since at least 2007. I went from Ubuntu to Debian, to Gentoo, to Hardened Gentoo, to ArchLinux, back to Debian, and finally to Xubuntu: it's fast, maintained, not ugly, and is based on well known distributions with security teams.
Previously, I've been using Openbox or Awesome, but I grew lazy, and nowadays I'm perfectly happy with XFWM4 shipped by default in Xubuntu: it's fast, customizable enough, and able to split my screen in two. The only program for which I need more than a half-screen tile is my terminal: Terminator used to be unmaintained at some point, so I switched over to Tilix. I've heard good things about Kitty, but unfortunately it's made by the same person behind calibre, and contains waaaaaaay too many lines of code for its own good, along with an embedded and heavily patched version of glfw, so big nope. An interesting quirk of my setup is that I'm not using window decorations at all, and that my status bar is thin and on the top of my screen. I'm also using 6 virtual desktops, usually organised like this:
- Communication: irc/signal/[matrix]/xmpp/…
- Web browsing
- Terminal to run code
- Code editor
In my social circle, everyone used
Vim, so that's what I
learnt. I gave a try at other editors (
UltraEdit, …) but their vim mode isn't usually
complete enough and I really like the modal approach too much to give it up.
vi is present everywhere, so I'm rarely lost on other machines.
I gave a try at vis but it diverges too much
from vim, and didn't find kakoune usable yet.
I really like its window/buffers management, the absence of clutter on the screen, its thorough self-documentation, … but most of all, its shortcuts are so ingrained in my muscle-memory that I'm not thinking anymore about what to type to do a particular action/movement.
But of course, everything isn't perfect:
- vimscript is horrible;
- some syntax highlighting (like the yaml one) are über-slow, but I hope that neovim moving to Tree-sitter will impove the situation;
- most operations could be snappier
- a couple of its keybindings are weird, like
- the code is HUGE, and isn't really fuzzed (yet)
As for the font, nothing fancy: DejaVu Sans Mono.
I've been using zsh for a dozen years, but recently went
back to bash after realising that I
didn't understand the crazy contraption that became my
zshrc, nor needed any of its fancy
features at all: bash is able to have proper autocompletion (including on
vcs status in the prompt,
typo correction, shared history, …
check my bashrc for details.