Tools should bring us at least a little bit of pleasure in their use. If they don’t, they’re badly designed tools. Free software lets us design our tools together so we get the tools we want and need, allowing us to use our computers as we like, rather than as some corporation thinks we should.
With that in mind, here are the various bits of free software that make my computering easier or more fun or at least more tolerable.
I use Linux. Doesn’t matter which one, they’re all fundamentally the same (filthy corporate distros aside). I was initially drawn to Linux by the ethics of communality and universality, but I stay because it makes using my computer fun again.
I also tinker around with BSDs from time to time and, if I didn’t game, I’d likely use those more. They’re fun too.
I use dwm. I like, when tiling, having a big focus window on the left and the rest of my windows in a stack on the right, and being able to easily make any of those windows the focus window. It’s what works best with my brain and since using it I find anything else… difficult.
Applications are spread across various workspaces - my browser is always fullscreen on workspace (‘tag’, technically, in dwm) 2 for example, so when I want my web browser I hit mod+2. File manager is mod+3, Steam is mod+5 and so on. I don’t use a bar because I don’t need one, I know where my stuff is and I move between things without thought.
I use qutebrowser and enjoy doing so very much. It’s a keyboard-centric browser with vim-like bindings but it works as well as any other browser with the mouse, too. It’s easily customisable - getting my tabs as icon-only and down the left side was a breeze - and it lets me do cool stuff like…
If I’m looking at a page on IMDB, Rotten Tomatoes or Steam, I can press ctrl+l, which sends the current page’s title to a little script I made, which takes the name of the game/tv show/film I’m currently looking at and adds it to my “stuff to watch” or “stuff to play” list as appropriate. The absolute heights of laziness.
Qutebrowser’s only real downside is the lack of a cosmetic adblocker. But the combination of this userscript for skipping past Youtube ads and qutebrowser’s non-cosmetic adblocker makes that barely noticeable.
I used Firefox for a long time but it’s really gone to shit. Constantly removing customisation options, bundling stupid services and forcing AI down our throats. I’m much happier on qutebrowser.
I recently switched to xterm after using st for a long time. I was perfectly happy on st, I just fancied making things a bit more defaulty. Xterm’s great. It emulates the terminals very well indeed and is good at making words be on a screen. And, unlike all those fancy terminals, it opens as fast as st.
As part of my aforementioned move towards defaultiness, I tried going back to bash. I didn’t enjoy it. Sometimes fancier is better. If you’re on bash, give Z shell a go! With zsh-autosuggestions
and zsh-syntax-highlighting
(should be in your repos) installed, it’s just a better bash! Bash compatible, but with syntax highlighting and autosuggestions! And you get advanced globbing for free! What a savings!
I use neomutt for email. It’s a real fucker to set up, but once you’ve got it set up, you’re left with an email client that works exxxacccctttly how you want it to.
I use isync to check for, download and notify me of new mail, notmuch to index it, and neomutt to read, write and reply.
nnn is just the best file manager. It’s easy to use, has sensible defaults and is configurable and scriptable. It’s just grand.
While I do most of my file management on the terminal, sometimes it’s nice to have a visual overview. And it also serves as a lovely playlist for mounted media.
You can just use neomutt as a straight-up imap client, which is less set-up, but I prefer having a local copy of all my mail.
Similarly, mpv is just the best video/audio player. If you’re not using mpv, you should be using mpv. And, with yt-dlp installed, it can even play things from the youtubes!
This is where *nix really shines, for me. The ability to take all those useful shell commands like awk
and sed
and column
and sort
and glue them together to do complex things! It’s kinda the whole point of Unix!
Script things! Automate things! Make boring, repeated tasks go away!
Then bind those scripts to keys! All desktop environments and window managers let you do that! Do otherwise tedious things instantly at a keypress of your choice!
I’ve got a keybind to mute my mic, system-wide, so I don’t have to remember per-application mute binds or dick around looking for buttons. And one to toggle between my speaker and earphones (speaker’s a repurposed Alexa, disconnected from the net). I wrote a script for looking words up via the dict protocol in the best dictionary.
I wrote a kind of dmenu replacement which uses fzf and has built-in recency and frequency ordering, which pops in a shell. I use it for launching programs, choosing emoji, launching Steam games, getting passwords from pass and various other things!
Shell scripting lets you make your computer do exactly what you want it to do. And then you can make it do it on a button press! Like what computers were meant to before corporations stole our future!
Speaking of shell scripting, I wrote blop. And since I wrote it, it works exactly how I want a static site generator to work. So if you happen to want a static site generator that’s poorly written and works exactly how I want it to work, you’re in luck! Chris likes it too!