Dashmage's Blog

Software Workflow 2024

A dump of (mostly) all the software tools, apps and utilities I use on a regular basis as of right now.

Operating System

Currently I'm on Ubuntu 23.04 Mantic dual-booted on an HP Envy x360. HP Wifi and BT drivers are a pain to get properly working on Linux and I've had to jump around kernel versions to find something stable. Battery life isn't that great either. I get about 2 hours of normal usage which is abysmal compared to the 5 hour plus I used to get on Windows. Certainly not going back to Windows now though. I'm looking forward to upgrade the distro to Ubuntu 24.04 soon.

Regolith (opinionated i3 for Ubuntu) was my window manager of choice previously when running Jammy (Ubuntu 22.04) but it's quite flaky on Mantic. So I'll probably wait for 24.04 before giving Regolith another shot. I really do miss a tiling WM in my workflow even if Gnome isn't as bad as I thought.

Update: Recently upgraded to Ubuntu 24.04 and a lot of the bluetooth problems bothering me have magically vanished. Will set up Regolith again once it's available for the new LTS.

Terminal

Recently switched to Alacritty from gnome-terminal. There wasn't any noticeable jump in speed although the experience is very smooth nonetheless. An interesting feature difference is that Alacritty doesn't support tabs. Config is managed through the ~/.config/alacritty/alacritty.toml file.

Shell

Happy user of the fish shell. Fish's autocomplete is such a joy to use and there's no way I'm going back. There are some gotchas due to being non-POSIX compliant (small changes like setting environment variables using the set foo bar syntax instead of foo=bar on bash) but you're pretty sure to find an answer online considering how popular fish is.

I'm also using fisher to manage the very few plugins that I use. These include the indispensable z and fzf.fish. z allows me to jump to commonly accessed directories with few keystrokes. fzf is for fuzzy finding commands in my shell history. Remapping ctrl + r to fzf is a game-changer.

Terminal Multiplexer

Was using tmux for a very long time with this batteries-included config. Switched recently to Zellij and I'm loving it for the most part. Automatically saves sessions and the keybindings are quite intuitive although there are a lot of clashes with existing ones. Had to unbind Ctrl + o for opening up the session mode since that was interfering with the same keybinding in helix to jump to the previous location. Using Alt + h,j,k,l to navigate between panes even across tabs has been very useful. Floating windows are also something I never knew I needed till now.

My only gripe is this issue I face when quitting zellij with the helix editor open in one of the panes and restarting the same session. My theme doesn't get loaded up and the only way to get it back to normal is to quit and open helix up again.

Prompt

Starship prompt - great way to get a nice default shell prompt with indicators for git projects. Very customizable via the ~/.config/starship.toml file.

Editor

I've been using helix for a couple of months now and I'm a very happy user. My IDE journey goes from VSCode -> VSCode + Neovim extension -> Neovim vanilla -> batteries included Neovim distro with NvChad and then lazy.nvim -> helix.

What I love about helix is that it sets you up with a well-configured defaults from which it's easy to set up whatever you'd like. My helix config is minimal and gets the job done. Most of the LSP configuration comes baked-in and I only needed to add a couple of extra lines of extra config for Python. It comes chock full of themes, telescope and fuzzy finder integration and great default keybindings all without having to write a whole lot of code for.

The selection -> action way of doing things Kakoune style does take a bit of getting used to. But overall, I don't see myself moving away from this editor any time soon.

Web Browser

Firefox user for many years now and it syncs nicely with my Android phone. Apart from a few glitches on Google Meet on Linux (not sure if that's a Linux problem though), everything else is perfect.

Faced some performance issues with the snap so I thought I'd try the deb package. Steps for installation of the non-snap version which includes symlinking the binary and creating the desktop file manually.

Useful extensions: Sideberry, uBlock Origin, unhook for youtube, vimium, Imagus (hover over image for full size), Dark Reader, Wikiwand

I also have some custom styling in order to remove the horizontal tab bar when using Sideberry.

Apps

Obsidian - All notes are locally stored as markdown files so I can do whatever I want with it. Easy to customize and there's a vim mode for navigation. Installed as a snap.

Spotify - music streaming platform of choice. This one's a snap too and it's been very stable.

Other useful utilities

keyd - daemon that remaps keys. Had an extensive setup with this tool before switching to my corne where I have keymap directly flashed onto the keyboard via QMK. I'll probably write a post about the split-ergo keyboard journey soon. The remap from CapsLock to ctrl/esc (ctrl on hold, esc on tap) should be an essential change for all keyboards.

CopyQ - clipboard manager. A bit wonky on wayland although it worked perfectly on 22.04 with X11.

Chezmoi for dotfiles management. My personal dotfiles can be found here.

Kopia for easy backups which comes with a nice GUI too.

Syncthing - platform independent way of syncing files across devices (Android phone, Linux laptop, Raspberry Pi).

Themes and Fonts

I really enjoy the Poimandres theme. So I've been trying to apply the palette across my tools.

Favourite fonts include Jetbrains Mono, Hack and Source Code Pro.

#tools