My Setup (2022 Edition)

Posted on Tue 01 November 2022 in geek

It's been a while since I last blogged about anything personally (although I have written a few things for work). In a struggle to come up with things to talk about I finally decided it might be worth documenting my current working setup. It's probably a function of my aging but as I've gotten older I've slowly tweaked and tuned my environment to minimise the friction of doing things. I'll briefly talk about the hardware but most of the environment is software and therefor fairly malleable.

Starting from the top and working my way down.

Desktop (sway/i3/Gnome/ChromeOS)

I spend by far and away the most time in Sway and previously it's X11 reference i3 which are both tiling window managers. I don't really use the tiling feature much as in reality my main workflow is to have full maximised single application screens in workspaces. However I do have hotkeys for the two most important applications I open (terminal and editor) and with a narrowing launcher for the rest. I use Gnome on one of my laptops because I share it with other people and it pays to keep track of the mainstream Linux desktop. I have remapped some keys to closer match my tiling experience as well as tweaking the default applications.

ChromeOS is the weird case where I accept a slightly different desktop paradigm because when travelling I like the ChromeOS feature set of secure and lightweight hardware. Any development I do on the road tends to use the Crostini terminal. More often than not it's just a shell for a ssh or mosh session to a bigger development box.

Key Desktop Apps (Emacs, Firefox, Modern Terminal)

It won't be a surprise to anyone that my main application is Emacs which provides the main interface into the rest of the system for pretty much everything except browsing the web. For web browsing I prefer Firefox which is synced up between my desktop and mobile. I occasionally have to use Chrome to access Javascript heavy web apps like Atlassian or some video call solutions.

I currently use a range of terminals depending on the system. My daily driver terminal on my main box is foot which is simple and minimal. It has a client/server setup so there is really only one foot binary running for all my terminals. I don't need anything fancy because all my terminal multiplexing is handled by tmux which also handles shell persistence.

Hardware

I now run a single desktop machine which is a ~9 year old Intel brought for work which has seen upgrades to the SSDs and thats about it. When I do serious building I have a range of powerful servers with lots of cores and disk space which I can use. I have an electric standing desk although I don't tend to move it during my work day. I do put it in the upright position at the end of the day to stop me sitting down if I'm just checking something in the evening. I also own a personal XPS15 laptop which I can run Steam on although mostly on the built in Intel graphics as Nouveau can't clock it to get any reasonable performance. I don't really mind because for most of my intensive high frame rate gaming I use my PS5 on a big flat screen TV.

For my NAS I have a Synology DiskStation with around 8TB of storage and a Raspberry Pi 4 in a cute metal case running Kodi connected to the main TV. Finally there is a 24 core Arm server which draws a miniscule 5w which acts as a permanent point of presence and eventually may take on some home automation tasks. This is all supplied with 300Mbs of fibre optic broadband and a mesh network of Eero's supplying WiFi to the rest of the house. My office network has a hard link to the main router and comes through a Turris Omnia.