/uses
This page is inspired by /uses. I won’t present every boring detail of my setup, but anything I feel is interesting, unusual or I particularly love.
For a more or less complete config, check out my dotfiles.
Hardware
- PC
- I use a custom-built machine. Building it myself allowed me to maximise what I care about (CPU, RAM, fast storage) while leaving out what I don’t (integrated graphics are good enough for me). It’s cased inside the beautiful Fractal North case.
- Monitor: LG DualUp
- I find the unusual aspect ratio of this screen almost perfect for software development; it feels much more natural than a super-wide screen, but provides the added screen real estate over a smaller or laptop screen. You can also display two inputs side by side, which is occasionally useful.
- Keyboard: X-Bows Lite
- This keyboard is the best compromise I’ve found between a traditional layout and the more radical ergonomic designs available. There are probably better keyboards out there, in terms of ergonomics and efficiency, but they come with the downside of making it harder to use other keyboards. The changes here are subtle enough they don’t make other keyboards unusable, but effective enough to vastly improve the experience—particularly being able to hit Control and Shift with a thumb (a particularly useful feature when I used to use Emacs).
Development environment
- Editor: Neovim
- One of the best investments of time in my career so far has been making myself familiar with vi keybindings. Once they’re ingrained in your head, they make moving around in your code feel natural and fast. Neovim adds to that foundation by providing a modern extension language (Lua) to replace the… esoteric… Vimscript which has fostered a powerful plugin system. Modern LSPs alongside innovations such as Treesitter give Neovim IDE-like power while retaining all the benefits of a lightweight text editor.
- Multiplexer: tmux
- I use only the small subset of tmux functionality that serves my needs, but it does so exceedingly well. It allows me to run multiple applications in a single terminal emulator and switch between them easily, run a persistent session over SSH, and pair remotely.
- OS: openSUSE
- I’ve jumped around a lot in the past between different Linux distributions, and the BSDs. Currently, I’m running openSUSE Tumbleweed, which is a rolling release that seems to do a good job of balancing stability with bleeding edge software.
- Window manager: Hyprland
- I’m a big fan of tiling window managers, which tend to just get out of your way and let you work. Now that the Linux world is moving from X11 to Wayland, I’m using Hyprland. It lets me move around windows with vi keybindings and adds just enough animation to make things feel smooth and stylish.
Self-hosted
- Wallabag
- In a similar vein to Pocket, or Instapaper: save articles to read later.
- Immich
- Heavily inspired by Google Photos, Immich is by far the best open source photo management system I’ve seen, with a matching mobile app.
- Forgejo
- I run an instance for my personal projects, as well as one for work.
- Calibre-Web
- Takes a Calibre library of ebooks and provides a nice web UI for them, making them easily accessible from anywhere.
- Radicale
- CalDAV and CardDAV server for calendars and contacts. Pairs well with DAVx⁵ for syncing on Android.
Other stuff
- Home Assistant
- I run the fantastic Home Assistant for smart home stuff. I’m not doing anything too fancy with it currently, mostly lighting and TRVs.