README.md (2155B)
1 # tools 2 [](https://builds.sr.ht/~mtmn/tools?) 3 4 Various tools I have been using throughout the years. 5 6 | tool | description | 7 |---|---| 8 | [bandeno](bandeno/) | Bandcamp RSS feed proxy | 9 | [diggah](diggah/) | find files modified within a time range, locally or over SSH | 10 | [dam](dam/) | line-file syncer with rsync and coloured diff | 11 | [hue](hue/) | Ruby library and CLI for Philips Hue | 12 | [lastfm_rs](lastfm_rs/) | Last.fm scrobble exporter to CSV | 13 | [lazymaster](lazymaster/) | 2-pass audio loudness normalization via ffmpeg | 14 | [mpd](mpd/) | MPD utility tools | 15 | [nts](nts/) | NTS show tracklist fetcher | 16 | [pmn](pmn/) | password selection utility for pass (Wayland, X11, macOS) | 17 | [pracomer](pracomer/) | Pomodoro timer | 18 | [shuffle](shuffle/) | random album picker for MPD | 19 | [speediness](speediness/) | network speed test | 20 | [tempfox](tempfox/) | Firefox user.js preference overrides | 21 | [wlr-river-title](wlr-river-title/) | River/Wayland focused view title printer | 22 | [wrd](wrd/) | full-text search and reader for an offline web archive | 23 24 ## Toolchains 25 26 | language | version | 27 |---|---| 28 | Rust | nightly (2026-06-22) | 29 | Zig | 0.16.0 | 30 | Python | 3.14 | 31 | Go | 1.26.3 | 32 33 ## Building 34 35 Install [Bazelisk](https://github.com/bazelbuild/bazelisk). All common tasks are available via `just`: 36 37 ```sh 38 just fetch # fetch all dependencies 39 just build <target> # build a specific tool, e.g. just build lazymaster 40 ``` 41 42 ## Deploying 43 44 Builds or deploys built binaries to `$HOME/.local/share/tools`: 45 46 ```sh 47 sudo install -d -m 700 -o "$USER" "$HOME/.local/share/tools" 48 just build <target> 49 just deploy <target> 50 ``` 51 52 ## Development 53 54 ```sh 55 just clippy <target> # run Clippy on a Rust target 56 just rustfmt <target> # format a Rust target with rustfmt 57 just rust-gen-project # generate rust-analyzer project schema 58 ``` 59 60 ## Other 61 62 ```sh 63 just tidy # run bazelisk mod tidy 64 just cargo-lockfile # update Cargo.lock 65 just pip-update # update requirements.out (Python lockfile) 66 just clean # clean the Bazel cache 67 ```