The Base42 hackable desktop: self-written replacements
for the day-to-day system software we use, in the suckless spirit —
small C programs, compiled-in configuration, minimal dependencies,
-Wall -Wextra -pedantic clean.
Each tool lives in its own repository and is usable on its own; this meta-repo ties them together. The submodule pins are a known-good set: these exact commits run together as a live desktop session.
| Project | What it is |
|---|---|
| hed | Terminal text editor, plugin-first architecture, tree-sitter highlighting, swappable vim/emacs/vscode keymaps |
| hterm | SDL2 terminal emulator; SDL-free emulator core with headless tests |
| hwm | Scrollable-column (niri-style layout, dwm-style construction) X11 tiling window manager |
| hws | Niri-style workspace/window overview overlay for X11 (EWMH, live composited thumbnails) |
| htray | System tray + status bar overlay for X11 (XEmbed, single file) |
| hnd | Desktop notification daemon (org.freedesktop.Notifications over raw libdbus, single file) |
| hsm | Runit-style service supervisor (daemon hsmd + client hsm), in progress |
| hml | IMAP/Maildir mail sync, mbsync-compatible on-disk state, in progress |
Planned, not yet started: hweb (browser).
git clone --recursive https://github.com/42dotmk/hackable
cd hackable
make # build every project
make install # symlink everything into ~/.local/bin (no sudo)
make hwm # or build just oneEach subproject's own README covers its usage and per-project install.
- Pure C99 (hed is C11), minimal dependencies; the compiler flags are the linter.
- Configuration is compiled in (
config.h/config.c), never runtime config files: change the source, recompile. makebuilds,make installsymlinks into~/.local/bin,make cleancleans — in every repo.- The tools interoperate only through standard protocols (EWMH, XEmbed, D-Bus, OSC escape sequences), so each remains usable with third-party counterparts.