- Python 63.7%
- Shell 36.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Refs #5 and mathieu/dotfiles#32. Remove its no-longer-reachable GTK compatibility code and dedicated tests; keep preparation for supported profiles unchanged. Agent: Pi 🥧 |
||
| skills/codex-limits | ||
| systemd/user | ||
| .gitignore | ||
| battery-care | ||
| battery-care.md | ||
| battery-full | ||
| bootstrap_debian.sh | ||
| btrfs-backup-stats.sh | ||
| btrfs-backup.sh | ||
| btrfs-move-fast.sh | ||
| cat_pwd.sh | ||
| change.sh | ||
| check-ip-rep.sh | ||
| codex | ||
| codex-limits | ||
| codex-limits.md | ||
| cua-driver | ||
| desktop-theme | ||
| desktop-theme.md | ||
| desktop_theme_resources.py | ||
| diceword | ||
| forgejo-batch-repo-access.sh | ||
| get_models.sh | ||
| git-sync-remotes.sh | ||
| hypr-toggle-layouts.sh | ||
| install-battery-care | ||
| iq-air.sh | ||
| is-it-strong.sh | ||
| keepawake.sh | ||
| keepawake_status.sh | ||
| LICENSE | ||
| murmur | ||
| murmur-osd | ||
| my-music-assistant | ||
| note.sh | ||
| notes-dmenu.sh | ||
| notify_me.sh | ||
| openai-key-from-secrets | ||
| parse-tickers.sh | ||
| pfview.sh | ||
| pi-box | ||
| post-sleep-check.sh | ||
| radios.sh | ||
| README.md | ||
| report.sh | ||
| rsync_backup.sh | ||
| st | ||
| stocks | ||
| sudo-askpass-rofi | ||
| test-codex-limits.py | ||
| test-desktop-theme-bat.py | ||
| test-desktop-theme-btop.py | ||
| test-desktop-theme-code.py | ||
| test-desktop-theme-resources.py | ||
| test-desktop-theme.py | ||
| time-to | ||
| today.sh | ||
| tpl.sh | ||
| update_pacman_mirrorlist.sh | ||
| wallpaper-converter.sh | ||
| waybar-toggle-tray.sh | ||
| waystt-backend-lanwhisper.sh | ||
| waystt-backend-waystt.sh | ||
| waystt-common.sh | ||
| waystt-ctl | ||
| waystt-lanwhisper-runner | ||
| waystt-launch | ||
| waystt-osd.py | ||
| waystt-post-cleanup | ||
| waystt-text-pipeline.py | ||
| waystt-ui.sh | ||
| weather.sh | ||
| web-search.sh | ||
| zones-time.sh | ||
Duct Tape
Personal utility scripts for a Linux desktop/server workflow (Arch + Hyprland locally, Debian on servers).
This repo is basically a ~/.local/bin toolbox.
Important
Built for my setup: dotfiles Use at your own risk.
Main script groups
Speech-to-text (Wayland)
-
murmur: versioned symlink to the locally installed, untracked Go binary at
~/Projets/murmur/murmur. The Murmur repository already ignores/murmurandmake cleanonly removesbuild/.~/.local/binalready links to this repository, so there is only one deployed executable. A fresh clone needs a local installation before this link works. Do not commit a built binary or runmake install PREFIX="$HOME/.local": itsbin/murmurdestination is the link into this repository. To update after verifying Murmur is idle (murmur status --json):cd ~/Projets/murmur make test build tmp=$(mktemp ./.murmur-stage.XXXXXXXX) install -m 0755 build/murmur "$tmp" mv -f "$tmp" ./murmur ~/Projets/bin/murmur doctor --jsonKeep a copy of the previous executable before replacing it if rollback is needed; Git only tracks the link, not binary versions. Use
make build, notgo build -o murmur, so routine builds do not replace the deployed binary. -
waystt-launch: starts recording/transcription, manages recording overlays and key flow.
-
waystt-post-cleanup: post-processes text (LLM cleanup), clipboard integration, and typing.
-
openai-key-from-secrets: extracts API key without sourcing full secrets file.
-
waystt overlay flow is continuous:
Starting->Listening->Stop->Processing->Doneupdates the same notification when possible.
Backup and storage
- btrfs-backup.sh: snapshot-based backup to external drive.
- btrfs-backup-stats.sh: backup/snapshot stats helper.
- btrfs-move-fast.sh: quick snapshot/subvolume moves in same volume.
- rsync_backup.sh: rsync helper wrapper.
Notes and desktop helpers
-
desktop-theme: coordinated Nord/Dracula/Catppuccin Mocha profiles, offline switching, explicit native-resource preparation and safe rollback. See installation, coverage and isolated tests.
-
note.sh: call Obsidian/obsidian.nvim note actions from CLI.
-
notes-dmenu.sh: dmenu/rofi note picker/creator.
-
notify_me.sh: run a command and notify locally or via pushover.
-
keepawake.sh: toggle a user-systemd idle inhibitor for Hypridle-driven lock/DPMS/suspend, with Waybar status support.
-
my-music-assistant: control the Music Assistant desktop MPRIS player, read its metadata, and feed a Waybar custom module.
-
radios.sh: choose and play radio streams.
-
waybar-toggle-tray.sh: toggle the Waybar tray and adjacent Music Assistant now-playing module together.
-
hypr-toggle-layouts.sh: quick Hyprland layout toggle.
-
sudo-askpass-rofi: askpass helper via rofi.
Dev/API tooling
-
get_models.sh: unified model catalogs. Select one provider:
--codex,--openai,--openrouter,--anthropic(--claude),--google(--gemini), or--zen. Use--allto query every provider, with identifiers prefixed asprovider/model-slug(e.g.zen/big-pickle). Default output is adefault: [...]block;--plainprints sorted, unique identifiers for fzf:get_models.sh --all --plain | fzf get_models.sh --codex --plain get_models.sh --anthropic get_models.sh --zen --plainRequires
jq, pluscurlfor API catalogs. Keys:OPENAI_API_KEY,ANTHROPIC_API_KEY,GEMINI_API_KEY;OPENROUTER_API_KEYis optional. Codex requirescodexandpython3, usescodex login(ChatGPT), and respectsCODEX_HOME: no API key or inference. It lists non-hidden models advertised by Codex, not a guarantee of remaining quota; Codex may use its cached catalog.Zen uses the public catalog at
https://opencode.ai/zen/v1/models, as documented in OpenCode Zen; no key is required (ZEN_API_KEYis optional). Thezen/prefix identifies the provider in this script; OpenCode itself usesopencode/in its configuration.--allskips providers with missing credentials, dependencies or failed requests, with diagnostics on stderr. It exits successfully if at least one provider returns models, and fails if none do. Single-provider failures remain fatal. Slugs containing slashes are preserved (e.g.openrouter/anthropic/claude-sonnet-4.6).To add a provider, update
PROVIDERS, its flag/help and an adapter emitting one identifier per line inget_models.sh; sorting and formatting stay shared. The old compatibility symlinks have been removed. -
codex-limits: passive Codex snapshots or native live quota RPC (no inference), JSON and
--prettyprogress bars. See contract and tests and the agent skill, maintained here alongside the tool. -
forgejo-batch-repo-access.sh: batch manage Forgejo collaborators and branch protections.
-
git-sync-remotes.sh: sync selected git repositories.
Misc CLI utilities
Includes small single-purpose helpers like: weather.sh, today.sh, zones-time.sh, iq-air.sh, web-search.sh, change.sh, check-ip-rep.sh, cat_pwd.sh, report.sh.
- diceword: wrapper around the dedicated
~/Projets/diceworduv project to generate Diceware-style passphrases from any shell.
Notes
- No build system or general test suite;
python3 test-codex-limits.pytests the quota reporter offline. - Most scripts assume common Unix tools are available.
- Check TODO.md for known issues and pending improvements.
User systemd units
- systemd/user/keepawake.service: optional user unit used by
keepawake.sh. Install withsystemctl --user link "$PWD/systemd/user/keepawake.service"or copy it to~/.config/systemd/user/, then runsystemctl --user daemon-reload.