Something went wrong. Try again.
various tools I have been using throughout the years
Something went wrong. Try again.
Files
- Ruby 26%
- C 23%
- Python 22%
- Go 10%
- Zig 10%
- 3 more languages 9%
README.md
tools #
Various tools I have been using throughout the years.
| tool | description |
|---|---|
| bandano | Bandcamp RSS feed proxy |
| diggah | find files modified within a time range, locally or over SSH |
| dam | line-file syncer with rsync and coloured diff |
| hue | Ruby library and CLI for Philips Hue |
| lastfm_rs | Last.fm scrobble exporter to CSV |
| lazymaster | 2-pass audio loudness normalization via ffmpeg |
| mpd | MPD utility tools |
| nts | NTS show tracklist fetcher |
| pmn | password selection utility for pass (Wayland, X11, macOS) |
| pracomer | Pomodoro timer |
| shuffle | random album picker for MPD |
| speediness | network speed test |
| tempfox | Firefox user.js preference overrides |
| wrd | full-text search and reader for an offline web archive |
| plants | bluetooth battery monitoring for linux |
| reflink-snap | reflink (copy-on-write) snapshot manager for XFS |
| rem2org | Remind to org-agenda exporter |
| kundali | scans track metadata and builds a sequence around an anchor track |
| backup | backup helper for git, tarsnap, plakar and rclone |
| tpswitch | toggle the touchpad by holding an evdev grab |
Toolchains #
| language | version | pinned by |
|---|---|---|
| Rust | nightly | rust-toolchain.toml (rustup) |
| Zig | 0.17.0 | build.zig.zon (minimum_zig_version) |
| Python | 3.14 | system |
| Go | 1.26 | go.mod |
| Ruby | >= 3.0 | hue.gemspec (required_ruby_version). reflink-snap uses stdlib only |
| Janet | 1.41.2 | system |
Building #
Install knit
and the native toolchains. Knit orchestrates cargo, zig build, go build,
cc, and a shared Python virtualenv. All common tasks are available via
just:
just all # build every tool into bin/
just build <target> # build a specific tool, e.g. just build lazymaster
just run <target> # build and run a tool
Deploying #
Knit builds and copies binaries to $HOME/.local/bin:
knit deploy/<target>
knit deploy/all # build and install every tool
The equivalent convenience wrapper is just deploy <target>.
knit deploy/mpd (or just deploy mpd) installs the configured mpd_*
binaries. Deployed Python tools
(diggah, lazymaster, nts, shuffle) are thin shims that run out of this
repository's .venv, and deployed Ruby tools (hue, reflink-snap) run
straight from the checkout. Both need the checkout to stay in place.
Development #
just test # run the Rust, Zig, Go, and MPD test suites
just clippy # run Clippy over the Cargo workspace
just rustfmt # format the Cargo workspace with rustfmt
just clang-tidy # run clang-tidy over the C sources
just lint # run Clippy and clang-tidy
rust-analyzer works out of the box against the Cargo workspace.
Other #
just cargo-lockfile # update Cargo.lock
just pip-update # update requirements.txt (Python lockfile)
just clean # remove build artifacts and caches