Meta
Technology I Use
- 1579 words
- –
This post 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
, and BTOP++ takes the place of top
.
Browsers
- Firefox: For general browser usage.
- Firefox Developer Edition: For development on Firefox and testing Gecko compatibility.
- Chromium: For testing Blink compatibility.
- Epiphany: For testing WebKit compatibility.
- Tor: For the occasional dark web browsing session or increased anonymity. I don’t use any extensions with Tor.
I use a custom search engine router 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:
- Facebook Container (Firefox only): Isolates Facebook from the rest of my browsing.
- uBlock Origin: Allows blocking adverts, content, fonts, scripts, etc. I switch this out for the lite variant on browsers that have dropped Manifest v2 support.
- SponsorBlock for YouTube: Can filter out unwanted parts of YouTube videos.
- Fontanello: Provides information about the typographic stylings of selected text.
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 might expect, I use Git for version control, with GitHub for repository hosting and project management. In most situations, I use 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.
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 Microsoft’s PowerToys. The general setup largely works alright for my needs.
Miscellaneous
I usually do video editing in Kdenlive, though will opt for Shotcut instead for projects of a lesser scope.
Raster image manipulation is usually conducted in Photopea, and vector editing in InkScape. Unfortunately I haven’t found anything better than Lightroom Classic for developing photographs. I also haven’t found anything comparable to InDesign for print layout and am sometimes unfortunately forced to use other offerings of Adobe’s Creative Cloud due to compatibility issues and absent/inadequate features.
I use Blender for 3D modelling and animation. My Creality Ender 3 V3 SE 3D printer is complemented by PrusaSlicer, which I use for slicing and has extensive custom configuration for my needs.
For document creation and editing, I tend to use Neovim paired with Pandoc for most document creation, though fallback to LibreOffice with my set of modifications for dealing with Microsoft Office file formats.
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. 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:
- Bluesky
- Pixel Camera: I bought my phone partly for the camera, and no third-party app comes close in processing, so with the stock Pixel Camera app I roll, albeit with revoked network permissions.
- Vanadium: Vanadium is a privacy-focused fork of Chromium bundled with GrapheneOS. As much as I dislike playing into Chrome’s market dominance, Firefox on Android is very poor security-wise, plays badly with PWAs, and there isn’t much point having two separate browser engines installed, among other issues.
- FlorisBoard: Excellent and very customisable FOSS keyboard.
- FeedFlow: A very nice feed reader. Posts open in browser rather than being displayed in-app.
- Harmonic: Slick Hacker News client.
- Digg
- Kvaesitso: Feature-rich, search-focused launcher.
- Google Messages: Google’s SMS/MMS/RCS app. I’d prefer to use a FOSS alternative, but RCS is pretty locked down, so I’m left without alternative.
- Moshidon: Wonderful Fediverse client with plenty of quality-of-life features.
- Droid-ify: Modern, feature-rich F-Droid client
- OsmAnd+: Navigation app based on OpenStreetMap.
- Phone by Google: Google’s Phone app that I’ve chosen to use as it complements Google Messages.
- Google Photos: Not my preference, but it’s one of the only options with good editing capabilities. I keep it disconnected from the internet.
- phyphox: Allows for doing all sorts of really cool things using the many sensors in phones.
- Thunderbird: Email client connected to my Runbox email addresses.
- DAVx5: CalDAV/CardDAV sync adapter to sync my contacts and calendar/tasks.
- jtx Board: Provides a synchronised task list.
- Fossify Calendar: Provides a synchronised calendar.
- Fossify Clock
- Ares Dark: Provides some very nice-looking icons.
- Proton Drive: Cloud storage that I use to quickly move files between my phone and computer.
- Proton VPN: A free VPN for when I need it.
- Flipper: For interacting with my Flipper Zero.
- Revolt: Official Android-native Revolt client.
- WikiReader: Beautiful Wikipedia client.
- Xed-Editor: Advanced text editor for when I’m in a pinch.
- Signal: Excellent chat app for when I need privacy.
- YouTube and YouTube Music: Both patched with ReVanced for quality-of-life improvements.
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. I read my books on my Kindle 3 running modified software for a better reading experience.
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 2000, 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. When playing on my computer, I use Ryujinx for the original Nintendo Switch, MelonDS for the Nintendo DS/DSi, 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 pretty much everything else handled by RetroArch for convenience.