What software do you use daily in 2026?
82 points by r1w1s1
82 points by r1w1s1
There was a similar thread here six years ago, and I'm curious how people's daily setups have changed since then.
What does the software side of your daily setup look like in 2026?
Operating system, desktop environment or window manager, terminal, shell, editor, browser, and any other tools you consider essential to your daily workflow.
I'm especially interested in the small or less obvious tools that have become indispensable to you.
Emacs is everything.
Most of my major tools have already been covered, so I'll cover some of the other smaller ones that I haven't seen yet
Also worth bringing up a couple of Firefox extensions (since there's a lot of Firefox users it seems)
Edit: Added more links
It's always a motivation boost seeing someone using the software I develop. Thanks for using & mentioning Hister. Let me know if there is anything you'd like to see improved.
I vibecoded my own version of this (nicknamed Memex) over the last couple of months (using Python/SQLite/Typesense). I'm looking forward to switching to Hister since it looks much better than mine. The only thing it's missing is persisting images (and OCRing them) - I read a lot of substack posts that often have graphics that are important to keep.
Regardless, thanks for this, it looks great and it was a breeze to set up!
Hister looks awesome and I was pining for such a tool a year ago (I think I remember looking through omnom at the time).
Gonna give it a whirl soon.
Is there any (planned) support for keeping archival versions of pages in case the latest version changes in an undesirable way (e.g. gets taken down, replaced)?
And how do you recommend keeping the index clean of junk like the settings page on GitHub? The divide between "page I visit to read" and "page I visit to do things" seems somewhat hard to define for me (and there are of course some things in the intersection). I suppose if the weight of each indexed page is minimal, this is less of a concern, but I have this suspicion that a nontrivial amount of my history is undesirable for the index.
Is there any (planned) support for keeping archival versions of pages in case the latest version changes in an undesirable way (e.g. gets taken down, replaced)?
There is a very rudimentary "versioning" rule type that you can apply which saves the diff of the pages on updates.
The extension/crawler detects non 200 responses and does not update the index in case of error.
Also, content specific extractors like mastodon, X does not update the page if it can't find a toot/tweet.
And how do you recommend keeping the index clean of junk like the settings page on GitHub?
The best approach is defining skip rules for all the pages you don't want in your index (you can do it from the extension as well). The second approach is defining search queries to delete all matching results in case there are unwanted entries already in your index. See our query language for more details.
Glad you like fq! what are your main uses? Haven't seen chafa before. I did a similar hack that i use from time to time (usually with watchexec) https://github.com/wader/ffcat
I wind up using fq a bunch for debugging. For example, just yesterday I had some code which wrote out some CBOR files and failed to load them back in. Using fq helped me figure out whether it was the saving or the loading that had the bug.
I first started using fq while working on a personal project for tagging image files where the tags were stored in the image metadata, instead of a central database. I had implementations in rust, python, and javascript that worked individually, but weren't interoperable. Using fq gave me a better grasp of how the metadata was being written by the different image libraries and eventually got me into a place where the different languages could work together.
I do so much with direnv it seems… It’s painful when folks commit the file to their repository so I can’t make my own tweaks without dealing with VCSs asking if I want to commit those changes—for a file meant for personal use in the first place.
Could add it to .git/info/exclude per project or even ~/.config/git/ignore to apply globally.
The projects themselves should add it too to their .gitignore so someone’s personal config is never accidentally committed by anyone. No one’s config should enter the repo… env config, text editor config, that’s all personal stuff.
You can do your own changes with jujutsu’s private commits: https://docs.jj-vcs.dev/latest/config/#set-of-private-commits
Particularly if it only contains use nix, those using Nix + direnv already know how to echo "use nix" >.envrc && direnv allow, it ends up hurting more than it is helping since customization to a file meant for customization is now always marked as “dirty”. Likewise a project should not require alternative VCS to get your way out of, IMO, fundamentally bad project architecture / bad developer experience to begin with the option of ‘doing less’—which is not committing the file—is simpler & more flexible.
I don't use direnv, but wouldn't direnv-denying the project checkout and having the checkout inside a direnv-allowed directory with your preferred settings solve the problem?
Why are we trying to engineer our way out of the problem when most committed .envrc say just use nix? This is a personal developer file that has been misused the wrong way by having projects include it in the first place.
Because «people being wrong on the internet» is a famously unsolved problem? «I disagree how upstream handles environment setup» as a technical problem (going beyond that case, by the way) is something we have a chance to engineer our way out of…
NetBSD with nothing out of the ordinary: ctwm, urxvt, nvi, mutt, git, gforth, lynx, Firefox. I've been trying to keep it simple, rewriting some of my tools in tcl (for note taking, for example).
Very interesting, what do you use gforth for? General purpose scripting, instead of shell/tcl/python?
I'm using it for my website these days, I'm writing a Forth DSL for writing web pages. It's nothing fancy, but Forth works really well as a templating engine, and it's fun! I'm building words that render HTML with semantics (microformats2) and accessibility in mind.
My favorite feature is "the log", an append-only CCSV file that is easy to interact with:
<form>
s" guestbook" log-append \ store in logs/guestbook.ccsv
s" Name:" s" name" text-input
s" Message:" s" message" textarea
</form>
\ show all messages
log-records" guestbook"
0 ?do
<p> @name s" said: " emit-safe @message </p>
2drop
loop
I still have a lot to learn about Forth, but that's part of the fun to me. I like going back to code I wrote a month ago and trying to rewrite words so they don't use locals. Each word becomes a mini puzzle that I have to solve, if I want to use just the stack.
macOS with Nix (Lix 2.95)
+1 for Zoxide (Or any similar software) for getting around my computer faster inside my shell.
Should I use tide over starship?
It has asynchronous rendering (which helps with large git repos) and a nice jujutsu plugin that doesn't require disabling git modules (starship does, at least for now)
Where's the jj plugin? By default I'm only seeing git (trying it out for the first time now)
it's the only Docker engine capable of freeing up memory used by containers
Huh. This is news to me, if you have a moment to elaborate I would like to know more about this.
Operating system: Mac OS X at work, NixOS at home. I use home-manager with both and it's indispensable to me.
Desktop Environment: GNOME at home. I was messing around with Niri for a while. I care about this a lot less than I did 15-20 years ago.
Terminal: Ghostty, although I'm about 50/50 on going back to Kitty. The performance seems similar enough for my usage but I do sort of miss the hotkey for opening links.
Shell: Fish + starship. Really love pv, eza, fzf, fd I use sometimes but I'm pretty good with regular find so I don't use it that much.
Editor: Helix. I use IntelliJ IDEA sometimes for Java but the LSP support for Helix is mostly sufficient for me, although I wish there were a single Python LSP that did everything right out of the box. Eventually when Jetbrain's Java LSP becomes more widely available I won't need IDEA either.
Browser: Firefox. I'm fortunate not to have to use Chrome.
Dev Tools: Lazygit I really cannot live without, and git absorb and mergiraf. Also ack, duckdb, hyperfine, delta. I'm using pgcli more these days than regular psql.
Other: Obsidian, pandoc. Tempted to get another Supernote.
I tried yazi but it kind of hasn't stuck. I tried a couple other shells (Elvish, nushell) but couldn't get them to stick either.
Fedora linux, Niri (big fan), usually wezterm with fish, neovim, Zen browser are the main things that I use.
I find Zathura pretty nice to use, and I have a clean workflow with Obsidian, Zotero, and Zathura along with vimtex. I don't use too much else in my day to day, honestly.
I also use noctalia shell.
Also a Fedora desktop user, neovim and the standard terminal probably cover 90% of my non-browser usage. Actually, I settled on AstroNvim after years of custom setup. Podman, git, go and postgres certainly deserve a shout out.
Using darktable quite a bit as I’ve taken photography (mainly macro) as a hobby now that I’m retired.
Any recommendations on starter cameras? I'm trying to separate photography from my phone, just for less distractions. darktable seems dope!
Darktable is great, it can be a little overwhelming at first but I read a couple "tutorials" and watched some youtube videos and I was able to quickly get comfortable enough with the 10-12 modules that matter. I don't try to do anything crazy with the processing, just to make it pop, I try to stay true to the photo.
As for the camera, I was lucky enough to get a used Olympus OM-D EM-5 mark ii for 400$ CAD (it goes for closer to 600$ on Amazon). I love the mirrorless micro four-thirds (MFT) format as it's super light and lenses will also be lighter and more compact, making it ideal for hand-held macro photography and carrying on hikes. I read somewhere that any quality camera in the last 10-12 years is still going to make great photos (I think the rationale was that older models will lack some features that significantly improved the state of the art, be it better resolution, better autofocus, in-body image stabilization, etc.).
The lenses (and the ecosystem of lenses targeting the camera you choose) are probably more important than the camera itself, in the sense that they quickly cost more than the camera, they impact the quality of the photo quite a lot, and chances are if you keep doing that hobby you may want to get a better camera that still supports your investment in lenses (you can get all kinds of adapters of course, but you typically lose some of the synergy of a native lens+camera match). With the olympus/OM system MFT I can definitely see me upgrading to an OM-1 at some point.
In use directly almost every single day:
There's lots more in the background, but these are the ones I interact directly with almost every single day.
Re: PDF viewers, sioyek is pretty nice. When you press "t" it shows the TOC and you can type to search it.
PDF viewer: Okular (I'd love to replace it with something that doesn't launch KDE services though).
Why not just use pdf-tools in Emacs?
Debian, KDE, Konsole, bash, Zimwiki, Forgejo, Miniflux, Linkding, vim, Sublime Text, tmux, Firefox, Incus, Podman
os=arch
wm=sway
desktop_shell=noctalia
term=monstar
shell=yash
editor=kakoune
attach_detach=zmx
vcs=jj
env=direnv
I'm a bit different than most, I'm not a pure technologist anymore sadly, my job is to be a bit of an all rounder and stay on top of things, and above all: to be dependable.
That shapes how I use computers, I used to like reliable software, now I have the additional burden of needing that software to make me reliable.
That's a pretext for me to wax poetic of my love for Dato - a macOS calendar extender app thing.
One keypress to join a video call, easy view of whats coming up in my day, and it hides itself in the menu bar by displaying the week number (configurable). People I talk to always refer to week numbers, almost never specific dates, so having easy access to the weeknumber by itself is useful but it's just one more way I love this software.
Pairs really nicely with another software from the same developer called Velja which I use as a "browser router".
Teams meetings open in a Chrome profile that has access to office365 vs personal sites (like link aggregators) which open in Safari.
Other programs I use heavily are:
Amphetamine Which adds a lot of great options for keeping my mac awake while doing things like transferring files or running large jobs
Magnet which I use for window management (adds snapping windows controlled by hotkeys)
Lastly, and this one is a harder sell for most of you because it's about your network more than your own choices: Zulip.
God damn I love Zulip.
Sure, maybe not the most sexy looking app the the world and the mobile situation is a little lacklustre but the way it keeps communication organised is really great, because it's easy to have a focused conversation people tend to have more of them. I really love Zulip.
Yeah, Zulip seems to be the closest to allowing to manage large amount of messages in a tractable way
I'd love to hear more about your love for Zulip. Mostly because I hate Slack and am always keeping an eye out for alternatives. If you're in the mood to gush, I'm in the mood to listen.
Hell yeah!
It'll be meaningless I guess if you haven't interacted with it too much, but Zulip is split into three main "content area" types.
Materialised views which are for ease of navigation, they're quite meta; "Inbox" for anything you're following or tagged in- basically anything directed at you.. pretty useful to just keep open... "Combined feed" for a sort of "all channels" feed; and my favourite: "Recent conversations" - which just gives you a list of all topics, which channel it was in, who has participated in the thread and when it was last active... with a little pip to show if it's unread.... but if you click on the pip: you mark the conversation read.
fucking. briliant... because it means I can just browse through periodically and mark topics as read easily because I'm not interested enough to read them, but I don't want to commit to "muting" the topic to essentially hide it.
Basically what you'd expect, directed messages, no topics, no threadings, quite bare-bones. You can have multiple people.
My only dislike of this is that I wish you could transfer a group to be a channel, or move the channel to become a thread inside a channel- right now they're a bit of a blackhole.
The bread and butter, all channels are forced into using topics/threads; and when you click into a channel you get a feed in chronological order (with small headings to indicate the topic that the message was in reply to); but crucially on the channel bar you have an expanded list of all the topics sorted by last active time.. here too you get an unread notification pip which you can just press to ignore.
Topics can be configured to be "followed", meaning notify on all messages, "default" which only highlights on mentions (of you directly, or your group) or "mute" which effectively hides it from view completely.
Now, it sounds simple, and it is, but weirdly it takes some getting used to, and the friction of thinking of a relevant topic name is more than what you get with Slack/Teams, so people have this visceral reaction to being expected to do more, they hate it... but after a month of using it- people realise that they can skip lots of irrelevant content and they start to love it.. but they have to be forced, which is annoying.. it's like trying to get someone to stop scratching their genitals in public.. "Yes, I know it feels good, but how does it feel when you see someone else doing it?".
I'm sure parents can relate..
Also the whole thing can be keyboard driven... which is just fucking great.
Press escape twice and I"m back to my "Recent Conversations" view from anywhere.
Press "W" and start typing someones name, press down (to select them), then enter, and I"m messaging with them directly. Very quick.
idk man, it's just good.
(All for work)
Is Mimestream worth the annual license? I use Spark and it's probably good enough but Mimestream always tempts me.
I love it. I forget why I stopped using Spark ... I also used Airmail for a while and liked that, too but had to give that up when it didn't work with the 2FA/Okta/Google setup a previous employer had.
Mostly I use emacs as a book reader(using pandoc to convert .epub to .org) and document viewer. It's generally to slow/cumbersome as an actual code editor once you turn on LSP, syntax highlighting, etc. Or you turn all that off and then it's fast, but annoying.
Linux Mint LTS (Cinnamon), Ghostty, Tmux, Fish, htop, Helix, Lazygit, Firefox, uBlock Origin, Zoxide, FZF, Albert launcher, ripgrep, ripgrep-all, and the coreutils.
I have done a lot of distro hopping, and used tiling window managers for a while, but decided to settle for something boring. Mint/Cinnamon work fine, but I am on the lookout for something more stable.
The combination of Zoxide for directory jumping, FZF for shell history and path completion, a decent launcher, and a launch-or-raise script with keybindings for common apps means I can find any file, launch any app, or work in any directory pretty much instantly. So nice!
I find Fish is noticeably nicer than bash for interactive use, and the learning curve was easy, since I fall back to bash for scripting.
(Not that you asked) but I’ve been using Zorin OS for the last couple of months and have been enjoying how boring and predictable it is. Looks great as well.
Thanks for the recommendation! I will definitely check it out.
BTW I have been following your blog for years and always enjoy your posts.
Ignoring common ones (NixOS, SwayWM, WezTerm, tailscale, tmux, Chromium, zoxide, just, fd, ripgrep) to focus on the less obvious tools:
dig alternativeThose are the essential ones. I curate a larger list of my favorites here: https://github.com/PsychoLlama/recommendations
Some notable newcomers:
Halloy is great aside from the fact that it basically invented its own windowing system inside its main window. its almost never what I’d consider the right default when I browse channels.
If you haven't already seen it, you might be interested in the documentation for using a single pane. I also disliked having to manage another set of windows, but with those settings I can use Halloy as a fancier weechat supporting more of IRCv3.
Yeah, I had to fight it a bit to get it to work without tiling the window into infinity.
Tiling is bad. I almost never want anything to tile.
OS: Biggest change for me is that I switched from Windows 10 to Linux Mint (Cinnamon) as my primary OS. It feels like I’ve finally regained complete control over my computer and data.
Other:
My setup has pretty much stayed the same over the last 8 years or so.
Besides that I rely on a handful of tools that makes my experience in dte more pleasant:
Linux (Ubuntu/Gnome and CachyOS/Cosmic DE, both with ZFS), Betterbird (Thunderbird fork), Vivaldi browser, KeePassXC, Emacs, Temboz (my own RSS feed reader), Wiki.js, Homebox home inventory, tmux, git, pi.dev + lemonade, Docker, LXD, Incus, HomeAssistant, recollect, rsync, unison
On the desk: macOS, iTerm2, fish shell, vi, Safari, Signal
In the server closet and in the cloud: debian-server, Proxmox, docker-compose, fish shell, vi, TrueNAS Scale, UniFi Network, Traefik
Apps/Platforms: Roon (music), Jellyfin (video), atuin (shell history management), Forgejo, Paperless-NGX
Thanks to the @WeetHet in comments here, I discovered tide for fish shell which I'm using as of about 10 minutes ago.
I try to keep to the same apps on all OSes, where I can. I mostly use macOS and Linux (generally Ubuntu or Pop OS, but I'm experimenting with Alpine). This means I favour cross-platform apps, and most of these also work fine on Windows when I need to.
Arch Linux, Sway, Alacritty, zsh, Vim, Firefox. Within Firefox, Tree Style Tab, uBlock Origin, uMatrix, Greasemonkey and Stylish are the main extensions… and a really valuable gem, Tab flip for Tree Style Tab: I found Shift+F2 to swap between the two most recent tabs to be so useful that I adapted it to workspaces in Sway, bindsym Mod4+F2 workspace back_and_forth and bindsym Mod4+Shift+F2 move container to workspace back_and_forth, workspace back_and_forth (didn’t like workspace_auto_back_and_forth).
As far as being a desktop environment is concerned, I’ve enjoyed making it my own over the years. As an example, I wrote a script that manages a global popup terminal (floating, titlebarless, fixed dimensions according to the command), and this supports interesting things:
Windows has Win+Alt+D to show one month of calendar and time in up to two time zones. I have Super+Alt+D show twelve months of calendar (starting from last month), and the current time in the five time zones I might care about, all nicely coloured. I even marked my wedding in a different colour a couple of years back for fun; but it was messy doing that with just sed on cal output, so I dropped it after the next Monday-the-12th came around!
I want temporary units, python, zsh and node instances quite often, so they all get shortcuts (Super+U, Super+P, Super+Z, Super+Shift+P because I was already using Super+N for notifications stuff). Oh, while I’m here, units is super worthwhile, and I have set up plenty of custom units of my own, the useful and the useless, such as “elephant”, “gazillion”, “cubit” and “electricityprice_morgan” (you decide which are which).
Increasingly OSes have a “quick settings” panel which will never actually have all the things you want. I press XF86Launch1 and get a menu with all the specific things I want, with one key to activate them—w to try switching to one of the other known wifi networks, W to flip between 2.4GHz-only and 5GHz-only iwd config (dodgy router workaround), d to toggle dark mode system-wide, s to cycle through some display scaling stuff useful for some specific situations, h/H to turn bluetooth headphones on or off, 7 to restrict charging to 70%, and a few more… whatever I want.
The system-wide dark mode thing is very recent. I had some years ago set up colo dark to switch all Alacritty (config symlink swap) and :colo bland-dark in Vim; triggering these manually on the odd occasions when I wanted dark mode was fine, but then my wife became pregnant (yay!) and was falling asleep very early leading to me wanting dark mode a lot more often; and manually flipping it everywhere, particularly in Firefox, got tedious. It took more effort than I expected (some silly D-Bus stuff), but I got darkman working, so now it manages all that stuff. The most interesting part was getting all running Vim instances to swap colorscheme. Short answer: intercept vim and insert --servername VIM before passing it on to /usr/bin/vim, then for servername in $(vim --serverlist); do >/dev/null vim --servername "$servername" --remote-expr "execute('colorscheme $colorscheme | let &filetype = &filetype | redraw')"; done (filetype reset is to fix things like italic and bold in things like HTML; it sadly only helps the current buffer). Minor side-effect of window title pollution because Vim’s title thing is awful (and you can’t easily modify it via 'titlestring', you’ll have to reimplement a lot more in Vimscript than you’d think or hope): titles now end with - /run/user/1000/vim/VIM5 instead of - VIM5 (for whatever value of 5).
As more time goes by, and the more that I try to limit my time on the computer, the only tools I really live or die by are the ones which have relatively minimal config churn
Nerd stuff:
Creative stuff:
My own stuff:
How's the mac version of your WM going? I saw that you'd talked about it here, but I haven't really followed along. I'm kind of interested in trying it out once it's stable!
I imagine people look at the repo and see there aren't many commits going in these days and think it's "stalled"; it's actually the opposite - the Windows version was so feature complete that once I had finished porting it to macOS, there wasn't much left to do!
I've been using it on all my macOS devices all year and it is at 99% config and feature parity with the Windows version
Every now and then I may add a new config-driven feature, but it's pretty rare - I've been developing this tiling window manager for myself for over half a decade and at this point there aren't really many new things left to do besides making sure things keep on working across operating system updates
There remain some esoteric bugs on both platforms that are still easier to work around than to spend time investigating and finding a fix for; I'm sure they'll get addressed sooner or later by me or someone else
Nice. Congrats on shipping, and especially on shipping something as hairy as a window manager on two different platforms that really don't make any effort to offer affordances for window managers.
That's really cool how far you've advanced it in so little time. I'll have to give it a try next time I'm set to fuss with my setup.
I admire the approach you've taken to licensing.
Foqos is interesting. Have you ever tried to bypass it? I used a similar app on Android a while back. Because it wasn't a system app, I could easily get around the block whenever I was determined, even after I'd granted it privileged permissions. For example, I could open a ton of apps so the background service would crash, or I could just reboot the phone. In that case, you have a small window to stop it before it starts. Maybe my phone was just slow back then, so I guess iPhones don't have those issues. Though nowadays, most banks I use won't work if I allow accessibility permission for these app blockers to work.
Foqos is interesting. Have you ever tried to bypass it?
Honestly this isn't much of a problem or concern for me, both because I have so many other lines of defense both at the network and Screen Time configuration level outside of Foqos, and because as with all addictions, setting up road blocks and walls to increase friction is not even a fraction of the battle
Nevertheless, I have a very extensive setup developed through a lot of trial and error across Opnsense, AdGuard Home and my physical devices where I have trusted people who hold the admin passwords/passcodes/SSH private keys, which I myself have no knowledge of
For example:
Though nowadays, most banks I use won't work if I allow accessibility permission for these app blockers to work.
I'm not sure about how this works on Android, but since Foqos is largely just automating the ioS Screen Time feature, all of my US banking apps work without issue (Schwab, Fidelity, Amex etc.)
Disclaimer: Not everything below is used truly daily, but everything is used more or less regularly.
Desktopug -Q is nifty), find, fd
Side-note: I used to install PowerToys (well, still do), mostly for Text Extractor (there are other useful utilities), but for quite some time Win+Shift+T shortcut is native in Windows and this screen OCR feels to work better than it ever did in Text Extractor.
I use vimium in Firefox and it has a wonderful shortcut for searching tabs. I'd use it for that feature alone, but it's great in other respects, too.
You can search tabs in firefox by typing % first. More info here
I am aware of that. The problem with % or List all tabs button is that they are not organic search tab features - they require multiple steps to start doing the activity:
List all tabs icon, move mouse and click Search tabs, start typing search term.How often do you need to manage your extensions that it warrants having its own keyboard shortcut, yet searching tabs does not have its own?
Since beginning of this year you can customize keyboard shortcuts in Firefox via about:keyboard (no longer showing everything at once since Firefox 154 - I will never understand the trend of styling changes that make stuff take more space and worsen UX at the same time), so you can at least clear Ctrl+Shift+A from Extensions and Themes.
I am not the only one wishing for keyboard shortcut for "Search Tabs" in Firefox.
shoutouts to brew, uv, duckdb, make, gh, jq
I tried for the last six months mise and man it’s amazing, ho early it simplifies a lot the project configuration but colleagues find it hard to configure it understand the concept of it..
Sounds like fun. I'll go first, and I will go into more details if someone has any questions.
Operating system: Arch Linux at home, Asahi Fedora on laptop, Linux Mint on Work PCs
Desktop environment or window manager: i3wm at home and work, Sway on Laptop
Terminal: Alacritty
Shell: Fish
Editor, mail client and RSS reader: Emacs
Browser: qutebrowser
Chat: weechat, Element Desktop and Signal
Music: feishin and qbz (coming from Supersonic)
My setup has (except for music) remained unchanged this year as well. I am quite happy with how everything has turned, and feel like my computer is well customized for my needs and responds well to how I think.
How's your experience with qutebrowser? I'd use it if it had extension support. Its built-in ad blocker just can't compare to uBlock Origin, and I really need password manager integration.
I thought I can’t live without uBlock too. The built-in adblocker just isn’t that good. I however do live with it, because everything else in qutebrowser is just the superior experience for me. The only real issue was YouTube. I had a script that would speed the ads up. It worked decently well, however I’m in a family with my Google account where someone is paying for premium so I don’t have to deal with those ads.
As for password manager, just recently I migrated my passwords from Bitwarden to pass. There is a user script that has a pretty seamless integration with pass.
Another couple things I have setup with qutebrowser is disabling JS by default, and a couple of custom keybinds including one that flips a website’s css to have a makeshift dark mode.
My own setup has changed quite a bit over the years.
I used to run a full desktop environment, but over time I've found myself preferring smaller and simpler tools. It wasn't really a deliberate attempt to build a "minimalist setup"; I just kept removing things I no longer needed.
A rough evolution would be:
Desktop / WM: KDE → IceWM → PekWM → dwm → cwm Editor: Vim → nvi
My current daily setup:
These days I prefer having a collection of small tools rather than a full desktop environment. An unexpected benefit is that my workflow is less tied to any particular window manager.
The individual programs have changed, but the workflow has gradually become simpler.
OS: Slackware-current
How'd you come to be a slackware user these days? I have fond memories of it from the mid 1990s, but I eventually drifted elsewhere.
r1w1s1
I've actually been using Slackware since the early 2000s, so I never really left :)
These days I run Slackware-current on my ThinkPad as my daily system, and I also use it professionally as my working environment for DevOps/SRE tasks.
Despite Slackware's "old school" reputation, -current is very up to date. It's a continuously updated development branch that gives you a rolling-release-like experience, but changes are still carefully integrated and tested by Patrick Volkerding before they land. For example, I'm currently running the 7.2.0 kernel from -current, alongside a modern software stack that includes recent KDE Plasma releases.
Over the years I've actually moved further toward the traditional Unix way of doing things: cwm, nvi, xterm, tmux and small command-line tools. Slackware fits that kind of environment remarkably well. It stays simple and predictable, and it doesn't try to hide the system from me.
That's really why I still use it: it works extremely well, stays out of my way, and gives me the kind of Unix environment I want.
Nice! I remember slackware as a very happy place. I started learning Linux by writing its disk sets to AOL floppies collected for me by family and friends and installing it on a salvaged 486SX PC. My first time setting up X11, I let the smoke out of the monitor I salvaged with that PC by guessing at a modeline because I couldn't find documentation.
I drifted away because I needed to get more current in order to run Linux on my laptop (a very long time ago), and I started working at a place where most things were RedHat based, so I mostly chose not to fight the muscle memory I was needing to develop.
Now that I know -current is a thing, I'll have to try it next time I feel like a distrohop.
Emacs, Firefox, Fish shell, Ghostty, Git, ripgrep, Slack, Mattermost, Microsoft Teams (unfortunately), Signal, Whatsapp, Messages.app, Obsidian, Spotify, Pinboard, Notes.app, Gmail, an LLM (mostly Google Gemini these days), Google Search, iOS, Finder, macOS.
{Guix,NixOS,FreeBSD} + {emacs,hx,vim} + {sway,tmux} + {alacritty,foot} + zsh + {zoxide,fzf,mcfly,oh-my-zsh,powerlevel10k} + {fossil,git} + {yt-dlp,mpv} + {helium,firefox} + {pass,vaultwarden}
I also use tailscale and podman quite a bit.
I've ended up with a mix of devices and OS in recent years which I must sort out but plain text files are often my starting point for a lot of things.
I have a domain with Domain Chief
Host one or two websites on Bunny - also use them for DNS.
My most used piece of software is Shipmail
Recently starting using AliasVault
Not currently using them but Static is nice too.
F5Bot is useful.
Feeds - I'm trying a few different ones out but I keep going back to Miniflux
I do a lot of my work in the browser rather than native apps so I love useful little tools and services for quick jobs such as Online HTML Viewer or cc.me
Hasn't changed in the last six years: macOS and neovim.
More recent additions:
I think I'm running the leanest stack I ever have - just a few tools and not much else. It's also coincided with me spending more of my time off computers when I'm not working. A notable change is that I used to have a visual editor like VSC/Zed around for reviewing, but I managed to recreate the stuff I liked about those editors in vim with some LLM assistance so I've ditched those entirely.
Love these questions and love to be learning about lots of useful tools i was not aware about.
Here are some of mine that I have been using and loving more and more:
I still use notepad++ daily, also if working from linux. And I use php as a tool, writing ad-hoc scripts for processing random stuff, and a dozen tools i wrote for myself in it
That's pretty much it
GUI:
CLI:
Helix, Sway, SublimeText, Ghostty, Firefox, fish. Fedora and macOS.
I also use Monodraw but not daily, however it fits your “less obvious” tool point, since it’s not your typical diagramming tool.
Firefox is the oldest software I use daily. I switched to it when Mozilla browser was still a thing.
And this is not including any of the homelab for brevity's sake.
Some of these I don't interact with daily (e.g. chezmoi or syncthing) but they are essential to my use of the computer daily, and if they broke my workflow with the other things would too, thus their inclusion.
zsh)cat)find
ls
grep
cd
git TUICasuarina Linux is new. I was wondering why you would use it, but then I found out you're the creator. What made you choose to fork Chimera Linux instead of just using or customizing a mainstream distro?
Some of it is covered in https://casuarina.org/docs/about/#motivation
The short version is I really like the tooling and architecture of Chimera, but for my daily driver desktop I found the incompatibility imposed by musl difficult, so I swapped it out. In the back of my mind I'd still like to make Chimera work for me, but for now Casuarina does the job (and I still use Chimera on my laptop).
I just spent 20 minutes writing up a comprehensive list with links, only to accidentally close the tab and lose it all. So I'll just list a few notable ones I haven't seen mentioned yet and link to my dotfiles if you want to see the rest.
Honorable mention to already-mentioned Jujutsu as a Git substitute. If you haven't tried it yet, you are truly missing out.
And another honorable mention to zmx. All the good parts of tmux, leaving all the tab and split management to your terminal app.
I was setting up macOS music streaming from SMB the other day and was surprised there weren't many options that supported both scrobbling and remote drives. also settled on foobar2000 but with a different scrobbler plugin that has almost the same name and the exact same amount of stars on GitHub
Still stuck in the terminal... Tried Zed a few times, but there is too much magic for me. And too scared to go back to Emacs (spent almost 15 years there).
Main: Ghostty terminal, Helix editor, Pi agent harness & Amp. Amp is still the best all-round agent, in my opinion.
Tools: difftastic structural diffs are still the most convenient way to read long changes as to me, hunkdiff to observe agents & review diffs (though I am looking into lumen as a replacement for its ability to annotate diffs inline within the agent).
The best recent addition: Mise to manage tools, dependencies & dev environments. Almost too good to be true. Coupled with bootstrap, it solved almost all my problems & forced me to remove every custom script / solution I had.
Outside of the development / AI worlds, nothing fancy. Safari (with Wipr 2 as ad blocker, StopTheMadness to stop the web3 madness, Noir for dark mode); Things3 works just fine after all the years, Tailscale to access all my devices remotely.
Every day I genuinely don't use what I'd like to use for a lot of tools (due to corporate IT policy - for security reasons - begrudgingly, I think this is a good policy), especially in terms of operating system. Windows for work. OpenBSD for play, but most weekdays I don't even open my personal laptop.
Personal:
kshvisWork:
bash on WSLvis on WSLI am surprisingly decent at PowerShell, and over the years I've come to actually like it. I think there are some very good concepts behind it, but it really really sucks for quickly editing/scripting plaintext (where Unix shell shines).
Any recommended tutorials on PowerShell?
I hoped to get better with PowerShell, considering I use Windows daily and I believe operating on objects (vs raw text) for processing should be more effective by design, yet running bash (with typical set of tools like sed, awk, etc.) on Windows always ends up quicker. Decades of shell experience (BTW I used to be POSIX sh purist in the past, nowadays bash convenience with all its arrays related features wins as it usually allows writing simpler and more readable scripts) make PowerShell adoption seemingly harder than it should be. What doesn't help is that PowerShell always felt overly verbose and somewhat ugly.
I don't have any specific resources because I learnt it while I was forced to use it :)
At my old job, it was the only thing I could use for scripting without making a fuss with IT to unblock other stuff. (Granted, I did have local admin so I could have been naughty but I didn't).
Bash does end up way quicker for the sed/awk type tasks.
PowerShell isn't the best for interactive use sometimes, I suggest writing scripts + functions and saving them for later reference. And yeah it can be pretty ugly, but you get used to it.
PowerShell has some really powerful features like being able to call .NET functions and reference+use .NET types.
I find the way I've learnt most tools+coding languages is to force myself to use it. So that's my advice. Uninstall bash, force yourself to get into the weeds and the "stupidness" of powershell (especially when it comes to plaintext manipulation) and you'll just learn to navigate it. I know that is going to be brutally hard but this is what worked for me lol (unintentionally, I may add).
Do a search in your favourite search engine if you get stuck, and save useful snippets+functions somewhere (scripts, profile.ps1, etc).
Uninstalling bash may be too brutal for me, but yeah, I get it. No shortcuts, as usual.
Saving snippets+functions is good universal advice that applies to everything. In recent years whenever scripting something, typically oriented about some tool or utility, I started deliberately naming scripts [tool_name]-[what_tool_feature_it_uses]-[what_it_does].[ext] (or similarly), that way with Everything I can easily find them later:
ext:[ext] [tool_name] with additional [keyword] in filename or content:[keyword]
I hate reinventing/redoing stuff I know (or believe) I did in the past already.
My two PowerShell snippets:
I have a NixOS system as a home server, and use a Mac as my daily driver. For the Mac:
Everywhere:
Fedora for all PCs and servers.
Gnome, feels like base Linux to me.
Fish, I like that it remembers my last entries easily.
Librewolf, no ai or spying.
Micro, fun text editor.
LibreOffice, FOSS windows but worse.
Zotero, reference manager.
Hister, local search engine, also allows me to search my notes. I’m not sure it’s reached the essential stage for me but I like using it.
Hoarder, for keeping bookmarks but honestly Zotero can do this.
I use nextcloud but honestly prefer a bash script with rsync. I love rsync.
Ghost and Mediawiki for my websites.
Baikal to keep me organized.
Jellyfin and Navidrome for my music. I use rhythmbox and strawberry to sync to my iPod. Big on work and running music.
I was using Trilium a lot, not the new one, but it can’t handle large single markdown files well.
I sometimes use memos but I don’t get the point frankly and hate you can’t export your notes.
I prefer mailbox.org for my email and encrypted offsite storage of my notes.
I use pen and paper for a lot of my notes but struggle between moods of wanting to type in my master notes using micro and writing by hand.
VS Code, Konsole, Dolphin, Firefox. That's often the only four windows I have open all day. Running on KDE's lovely desktop environment, on Neon, KDE's Ubuntu variant.
Although clang++ and ninja are quite useful programs, I dunno what I'd do without cd and ls.
I'm running low on disk space these days so special mention to df, du and rm.
Multi machine: input-leap, syncthing, ssh Editor: Neovim Distro : void Shell: zsh (need to improve my histfile setup) VCS: git Windowing experience: dwm, st terminal (not pleased, will change) Home automation: curl. Golang based roku remote control. Browser: Firefox, with ublock origin, a YouTube shorts remover, and a plugin to remove utm nonsense Grepping: tried ripgrep. Wow fast. Normally grep. LLM: pi Background jobs: temporal (running a server on every personal machine) Messaging: Signal /desktop, Zulip. Multimedia: mpv
I need to reframe my workspaces to reflect how I complete tasks in these last few years. I am north of 35 windows in Firefox on two computers, and need to control that.
I have a lot of little software to handle small things. That's suitable for my setup but nobody else's.
Currently (for the last 3 years maybe) I’ve been working with MacOS and I’m planning not moving to anytime soon, tmux and nvim (thanks to primeagen) and moved to Aerospace for windows tiling recently.
I would like to try mix to setup a new system tho.
EDIT
I forgot, terminal Kitty
The setup is somewhat boring but works well and has stood the test of time. Directly answering your question:
Other local software that I use daily:
Qownnotes
What makes you use this? It seems so busy.
It is very versatile and has a nice integration with Nextcloud. If everything is enabled and on the screen, it can seem "heavy/busy". But the app and its interface can be customized at will, and once it is according to your taste, it does its job very well.
Can you share with me how to easily unjumble it? I downloaded it based on your comment, the Nextcloud and caldav integration is cool! It's a mess though. Thanks for the reply dethos :)
I would start by picking only the panels you do want to use (window > panels). Then unlock the remaining panels on the screen (window > unlock panels) and move them around to fit your desired layout and workflow. Then do the same with the toolbars (many you won't need).
If you have more than one use case, you can save multiple layout presets and switch between them, depending on what you are doing.
From here, there are many settings to tune, or not, according to your desires.
It's apparent I'm old and set in my ways:
Essential is a shell, an IDE, and a browser.
Currently: Terminal+Ghostty, IntelliJ IDEA, neovim, Firefox - on a MacBook Pro.
It works. Would prefer Arch or Debian on a ThinkPad and thus use a different terminal then (but no strong preferences, maybe terminator) and probably i3 or sway, Plasma if a tiling wm is out for some reason.
Other stuff:
That's the only daily setup.
My own machines run Arch+xfce, Arch+Plasma,OpenBSD+i3,Windows 11 and most of the same software as above, if applicable.
At the risk of not meeting the intimidating standards set forth by the other comments...
Personal Life/Personal Projects
Work Life/Work Projects
I feel like I lead two very distict and estranged lives, sometimes.
At work, I use Windows 11, Visual Studio, Resharper, VS Code to some degree, Notepad++, and Edge. Really exotic setup, I know. The most exotic part is probably Firefox in WSL2 for my private browsing, since the work "analytics" extension doesn't reach into it.
At home, it's Windows 11, VS Code, Rider, Notepad++, and Firefox. My servers are running Proxmox or Debian.
But seriously, I do use some stuff semi-regularly, although most of this is just relevant to Windows users:
And from the one i built
Are all of these indispensable? Probably not. But I find all of these to be incredibly effective at their task and I have evaluated substitutions for every one of them and found these to be the best tools available for me.
What I use as someone who daily drives Windows 10:
Audio
Browsing
Gaming
Pirating
Programming
etc
as the token technical writer of lobsters it saddens (but does not surprise) me that no one thought to mention a documentation system ;P
NixOS + sway + kitty + fish + Neovim + LibreWolf has been my basic setup for years now. Additionally I launch Gajim for XMPP/IRC (via Biboumi), I use Darcs/Git for VCS (still too lazy to write the tools to make Pijul more usable). Being on NixOS & using Nix on all projects, I use Nixtamal daily to keep inputs up to date—waiting on nixos-rebuild --sudo --no-flake --file host/(hostname) as I type.
Removing already-mentioned dropped surprisingly few lines…
rofi (for fuzzy-choosing from lists). fzf probably doesn't rise to most daysnsjail, because a lot of heavy stuff is not trustworthy to run unconstrainedfdm to fetch email then tabulate it locallyfdm as to whyage encryption/decryption suite (mostly for my password store)mtn for DVCS (I have to use Git for interoperability, but for stuff I control, I still use Monotone because it is simply much better; ask me if you want to know how to build it with non-EOL Botan 3 and PCRE 2)remind for calendar, although given that I actually generate its input from my own DSL, maybe eventually I will cut out remind itselfcurl and curl-impersonate; I am considering some kind of LLM-agent-targeted false-browsers for grabbing text pages that fetch actual content in JavaScript, as it will be much faster than actual browser with all its persistent stuff — that I carefully make non-persistent using nsjail
sbcl (as Common Lisp implementation)pdflatex, latexmk
sxiv for images, mplayer (both usually inside nsjail because image file formats are horrible and multimedia file formats are worse)socat for some of the messing with networking, squid and 3proxy as proxies (locally, so that just a socket to them can be passed into a jail)zathura and evince for PDFsA big bunch of my own scripts around all that, and also some heavier tooling of my own, like (to name things with public repositories) a FUSE filesystem for turning anything query-shaped into nested directories (it is even my interface to age), nsjail command generator (integrated with other stuff), HTML-to-text convertor (and also a crawler DSL that I use to fetch updates e.g. new Lobsters stories)…
Not close to daily but often enough:
fdupes for searching duplicate filesncdu when deduplication is not enough and I need to see where the space goeshtop as the system load viewer