Harsh Sharma (codelif) - Linux desktop tooling, mostly in Go
NAME
codelif - Harsh Sharma; writes Linux desktop tooling, mostly in Go
SYNOPSIS
codelif [--go] [--c] [--reverse-engineer TARGET]
DESCRIPTION
Builds daemons, status bars and protocol clients for Linux. Prefers text protocols, single binaries, and software that keeps working when you close the browser.
Most of it starts the same way: something on my machine is worse than it needs to be, and the fix turns out to be a weekend project.
Currently in that "C is better" phase.
PROJECTS
- pawbar(1) - a status bar that is a kitty terminal panel
-
Modern terminals already ship truecolor, text sizing, inline images, hover and mouse reporting. kitty's panel kitten will put one of those anywhere on your screen. At that point a status bar does not need a GUI toolkit; it needs a terminal and an escape sequence. Everything a bar normally reimplements, the terminal already did.
- hyprnotify(1) - org.freedesktop.Notifications, rendered through hyprctl notify
-
Hyprland could already draw a notification. Nothing on the system knew how to ask it to, because everything speaks DBus and hyprctl does not. This is the missing half: the spec-compliant DBus side, wired to a renderer that was sitting there unused.
- whatevr(1) - a Linux-first WhatsApp client; one daemon, any number of thin frontends
-
Chat clients fuse the network, the message store and the pixels into one process, so every new interface means reimplementing all three. Here whatevrd owns the connection, the SQLite store, the media cache and notifications; a frontend owns pixels and a documented unix socket. That split is the whole design: writing another frontend is a weekend, not a fork.
- jpoop-router(8) - a Raspberry Pi routing a network that does not want to be routed through
-
The campus network expects a browser at a captive portal, hands out credentials with daily quotas that run out, and runs WEP on the uplink. A Pi sits in front of all of it. Three Go binaries split by privilege: credentials rotate on their own and record the portal's own reason when one stops working, allowances are enforced against nftables counters in the kernel rather than sampled from userspace, and egress goes through a tunnel with DNS pinned so lookups cannot leak, which fails open the moment the tunnel stops carrying traffic.
Sixty-odd more at github.com/codelif. Most of them are one evening long.
WRITING
See codelif(7) for notes and posts.
FILES
SEE ALSO
BUGS
Sleeps less than two hours a day.
Report bugs to [email protected].