Uses

This page details some of the many things I use. Generally, my selections align with the philosophies outlined by Gwern. Everything is outlined 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 it’s support for ligatures and images, and it’s 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 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 http 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, Virtual Machine Manager, and other things of that nature. It generally works and runs pretty smoothly.

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.

Video and loose audio files are run through mpv, and imv serves as my image viewer.


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:


Home Server

While I do have some remote VPS’, 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, it 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.


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, then play them with Music Player Dameon (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.