My desktop environment in 2026

2026-11-02

A short tour of the hardware, desktop and tools I use for daily work in 2026: a Rust-flavoured Linux desktop, a handful of terminal tools and my editors for code and Markdown.

Desktop and hardware

I run Fedora Linux on a Dell XPS with a 4K screen, paired with a Logitech Ergo M575 mouse.

On top of Fedora sits the COSMIC desktop from System76. COSMIC is written in Rust, comes with a great tiling window manager and ships with a consistent set of apps (files, terminal, panel applets). It's available directly from the Fedora repositories:

sudo dnf install @cosmic-desktop-environment

The COSMIC app library on Fedora (image: Fedora Project)

The rest of my graphical application stack is rather boring, in a good way:

Self-hosted

Passwords live in Vaultwarden, a Bitwarden-compatible server that I host for my family.

Shell tools

The shell is plain Bash. Everything else is added on top, and most of the CLI tools below are installed and version-pinned with mise, which also manages the Zola version used for this very website:

[tools]
zola = "0.18.0"

atuin

atuin replaces the shell history with a SQLite database and adds context like exit code, duration and working directory to every command. Ctrl-R opens a full-screen search UI with fuzzy matching.

atuin's history search (image: atuin)

ripgrep and friends

rg (ripgrep) is my default for searching through code and text files. It's fast and respects .gitignore out of the box.

Task automation

Just

Just is a command runner: a justfile collects the commands a project needs, with a syntax inspired by make. No need to remember the exact commands for each project: just --list shows what's available.

Tasks don't have to be shell one-liners. Recipes starting with a shebang line can be written in any language with an interpreter, such as shell or Python.

A justfile and its output (image: just)

Just isn't limited to projects. With just -g, it uses a global justfile in the home directory (~/justfile), a good place for personal system tasks that work from any directory, like updating packages, making a backup or cleaning up old files.

pitchfork

For long-running development services, there's pitchfork from the author of mise. It starts databases, API servers or workers in the background, waits until they're ready and collects their logs, so I don't need one terminal tab per service. Services are defined in a pitchfork.toml per project and can be controlled from a TUI.

Development

Zed

Zed is my main editor. It's written in Rust, has built-in language server support, and stays responsive even on large projects. There's also a Just extension for syntax highlighting of justfiles.

Zed (image: zed.dev)

git and gitui

Version control is done with git. For browsing the log, reviewing diffs and similar tasks I use gitui, a keyboard-driven terminal UI for git.

gitui in action (image: gitui)

Note-taking and task management

For notes and tasks I use ZenNotes, a keyboard-first Markdown notes app. Notes are plain .md files in a folder, so there's no lock-in and the vault can be synced or versioned with any tool, including git. It offers a command palette, split and preview modes, tasks, tags, daily notes and rendering of math and diagrams, plus a zn command-line tool.

ZenNotes (image: zennotes.org)

Still looking for

A good TUI for PostgreSQL, SQLite and DuckDB. I regularly work with them and would like a terminal-based client with a decent table browser and query editor. I'm following the development of a few projects, but none fits my needs yet. Recommendations welcome!