2023-11-24
This is a brief list of software I use every day.
Arch Linux A light linux distribution. Its vast package repositories are super convenient, and, despite its reputation, arch has never broken on me. Void is also a great distro. Eventually I would like to try nixos.
Sway A reliable tiling wayland compositor. Having used dwm on X, I naturally chose dwl to be my first compositor and quickly became bored of it. Since then I've hopped to river, hyprland, and gnome, and even made my own compositor (still in development). I recently tried sway and was pleasantly surprised. Sway's codebase is perhaps one of the most professional I have ever seen, and this reflects well in the stability and completeness of the software. Sway is packaged with a number of client utilities and has attracted a small ecosystem of minimal wayland applications. The window management model is incredibly intuitive, and I've had no issues thus far.
Bemenu A good dmenu clone for wayland, customizable via command-line options. I use it very frequently.
Dunst A lightweight notification daemon. Aesthetically, it fits well with sway.
Foot A fast terminal emulator for wayland.
ZSH A powerful shell. I primarily use it interactively and use dash for posix shell script execution. I also install zsh-syntax-highighting. While bash has its merits and is the default on arch, even its man page calls it "too big and too slow." I recently experimented with nushell but discovered its large, rather unnecessary featureset does not justify its insane resource hunger. Zsh manages to simultaneously feel modern yet still like a UNIX shell.
Helix A terminal text editor that functions well out of the box. Given its capabilities, its simplicity is astounding, which, along with snappiness, is something clearly prioritized over extensibilty. Using helix feels like playing a finely crafted instrument. The only feature I miss from emacs is the ability to run the editor as a daemon.
Aerc A no-frills tui email client that serves my needs perfectly.
Iamb A tui matrix client with a clean interface and vim keybindings. I've previously used fractal and gomuks, but both suffered from speed issues and overall bugginess.
Firefox One of the only proper choices for browsing a free web. I install ublock origin and a dark theme.
MPV A cross-platform media player, extensible with lua. It pairs well with yt-dlp.
One way to find excellent free software is by perusing your package manager's catalog. I usually like to invoke the package manager such that it outputs all available packages, then feed that output into a fuzzy finder like fzf. On arch, a shell script to achieve this could look something like this:
#!/bin/sh
FINDER="${FINDER:-fzf -i --prompt}"
case "$1" in
r*)
pkg="$(pacman -Qe | eval $FINDER '"pacman -Rcns "')" || exit 1
[ -z "$pkg" ] && exit 1
pkg="${pkg%% *}"
sudo pacman -Rcns "$pkg"
;;
*)
pkg="$(pacman -Ss | awk '{if(NR%2==1){a=$0}else{print a $0}}' | cut -d'/' -f2- | eval $FINDER '"pacman -S "')" || exit 1
[ -z "$pkg" ] && exit 1
pkg="${pkg%% *}"
sudo pacman -S "$pkg"
;;
esac
Invoking this script like ./pkg-store r
will list your currently installed packages and attempt to uninstall the selection.
Otherwise, it will show you all available packages along with descriptions, ready to sift through and install.
The aur is also a great resource. I'm sure there is a way to replicate the program above with the contents of the aur, which will undoubtedly yield even more results.