Uses

This page details some of the many things I use. Generally, my selections align with the philosophies outlined by Gwern. All my configs are provided and somewhat documented in my dotfiles repository on GitHub.

Laptop

Day to day, I run a Framework Laptop 13. More information about my specific device and my experience with it is available in my review.

It runs NixOS, which I’m a huge fan of thanks to its declarative configuration. The ability to run things in an ephemeral shell with nix-shell -p is also core to my iterative development processes.

Environment

I run Sway as my window manager, swaylock as the screen locker, and Yambar as my status panel. I use bemenu (a Wayland equivalent of dmenu) for launching programs and displaying my clipboard history (with the help of cliphist). My notifications are all handled by Dunst.

Kitty is my preferred terminal, pretty much exclusively for its support for ligatures and images and its SSH kitten.

All my file exploring is handled by the very excellent Vifm. My configurations for it are quite extensive, and it works for me as a full stand-in for any ‘conventional’ file explorer, such as Dolphin or Nautilus.

Shell

I spend a lot of my time in the terminal and, as such, have a pretty smooth config. I run ZSH as my shell, with a custom prompt and some default tools replaced. Eza takes the place of ls and tree, Bat takes the place of cat, BTOP++ takes the place of top, and ugrep takes the place of grep.

Browsers

I use a custom search engine wrapper I made to allow for easily switching engines and a few quality-of-life improvements conducive to my workflow. I also usually roll with these extensions:

Development

I’ve already touched on some of my preferred development tools, but I also have many more that I rely on for my front-end development needs.

As you’d expect, I use Git for version control, with GitHub for hosting. In most situations, I use Deno/Bun in place of Node for the performance benefit and convenient feature set, although I obviously keep around all the expected other tools for working on other projects. I’m also quite fond of using httplz as a basic localhost server during development.

Central to all my development is my editor, Neovim. I’ve extensively customised it, and it serves as the bulk of my editing environment. It is setup alongside a long list of language servers and plugins that would best be assessed by consulting my dotfiles. I hope to eventually do a write-up of my specific configuration.

Virtualisation

Sometimes I find myself needing to use Adobe’s Creative Cloud or other software that simply refuses to run on Linux. For that reason I’ve got a Windows 11 virtual machine setup with KVM/QEMU, Spice USB Redirection, Windows guest drivers, libvirt, and other things of that nature, which I access via Virtual Machine Manager.

I ‘enhance’ (more like salvage) the Windows experience with ExplorerPatcher and Microsoft’s PowerToys. It generally works alright for my needs.

Miscellaneous

I use PrusaSlicer for my 3D printing slicing needs, dabble with 3D in Blender, and use LibreOffice for dealing with all the Microsoft Office file formats I have to deal with. Otherwise, I tend to use Neovim paired with Pandoc for most document creation.

My email/contact/calendar/task client is Thunderbird. It isn’t perfect, but is generally alright. Video and loose audio files are played through mpv, and imv serves as my image viewer.


Hosting/Cloud

I have some remote VPS’, most notably one with Hetzner. My emails, contacts, calendar, and task lists are all handled by Runbox, who allow me to hook into all my stuff with the various WebDAV systems.

Home Server

I also maintain a home server for self-hosting a range of services, some of which are detailed on my services page. Much like my laptop, my home server runs NixOS. Everything it hosts is containerised with Docker. I use Oxker as a nice TUI container manager, but it’s all otherwise pretty boring, though that is probably a good thing for what should be a stable server.


Phone

My current phone is a Google Pixel 7a. Nothing too special, but it’s one of the only phones on the market with a good camera and, more importantly, an open bootloader. Being a Pixel, it also has support for the excellent GrapheneOS. GrapheneOS is pretty much stock Android with a myriad of security and privacy improvements.

I generally look for apps that I can customise, that are open source, and that adhere to Material You. The apps I’ve currently got installed include:


Multimedia

I’ve got quite an extensive media library and an equally extensive process for sorting and organising it.

Images/Videos

I self-host Jellyfin for all my movies and televisual needs. It’s got an intuitive design and feels at home next to commercial streaming services.

All my personal photos, home videos, etc, are handled by a self-hosted deployment of Immich. It handles everything quite simply and works well.

Music

Music libraries devolve into a mess with disturbing ease. I convert all my music to OPUS, process them with beets, and then play them with Music Player Daemon (MPD). I can then use a frontend of my choosing, such as ncmpcpp, and pair it with tools like mpc for assigning keybinds.

Books

Currently I manage my extensive e-book collection with Calibre, although it is showing its age in a few places. I pair it with The StoryGraph for tracking read books and sourcing recommendations.

Gaming

I like to do a bit of gaming in my ‘spare’ time, so I’ve got a bit setup. I end up spending the bulk of my games on my Xbox Series S simply as a result of convenience. I do also keep some other consoles around, including my Xbox 360 E, PlayStation Vita 2K, and Nintendo DS, although they see scarce use.

My preferred platform, even if not the most played, is PC. Most of my PC games live on Steam, although I’ve got pretty extensive libraries on GOG, Epic Games, and Amazon Gaming, which I manage through the Heroic Games Launcher. I also have Prism Launcher for my occasional Minecraft needs and GameMode to keep everything running smoothly.

I also emulate many games. I use Ryujinx for Switch, MelonDS for DS, Dolphin for Wii/GameCube, PCSX2 for PlayStation 2, xemu for the original XBOX, Xenia for the Xbox 360, and Mupen64Plus/Rosalie’s Mupen GUI standalone, with everything else handled by RetroArch for convenience.