small forkable linux tools that help

five little scripts for the tedious parts of linux: updating everything, getting a file onto your phone, moving sound between earbuds and speakers, finding a thing, and cleaning up whatever an update broke. plain shell, nothing running in the background, and they print what they did. fork them for whatever setup you run.

we need coders - help out
we need translators - help us do translations.

why

the rules

the rule is simple: do the job, don't get clever, and don't touch anything i wasn't asked to. the six below are what that looks like in practice.

it asks first

most of them take --check. run that and they say what they'd do and stop. anything they'd overwrite gets a .bak-<timestamp> copy first. nothing happens quietly in the background.

runs on demand

no service sitting in memory waiting for an event. you run it, it does the thing, it exits. nothing to enable at boot and nothing to remember to disable later.

honest about results

when part of an update fails the updater prints PARTIAL and carries on to the next thing. not a green tick, not "done". if it skipped something it says so.

your repos only

the installers download nothing. every dependency comes from the package manager your distro already has, guessed from /etc/os-release. set UPDATE_PM= when the guess is wrong.

readable at 2am

plain shell, one small file per job, a comment at the top saying what it's for. shellcheck-clean, with a test suite in ci, because i'm the one who has to fix it later.

they know each other

the runner talks to the other four, so its maid tab can toggle your earbuds or start an update. the helper hands controller work to the updater on opensuse. any one works alone; install more and they start noticing each other.

the tools

what each one does

install the ones you want. none of them need the others.

MaidShare

files & sharing shell

send files and links from linux to an android phone

nothing to install on the phone. it picks a route on its own - kde connect if the phone is paired on the same wifi, usb/adb if there's no network, otherwise a temporary wifi page with a qr code - and tells you which one it took.

  • works the other way too: the phone uploads through a qr and a browser
  • files land in ~/Downloads/MaidShare, no account anywhere
  • dolphin right-click entries, if you use dolphin
$ maidshare report.pdf

Maid Runner

launcher python · qt

search everything from one key

a small qt search box for plasma. type, enter. tab moves between five sources, and the maid one is the only search box that knows what's going on with your system. nothing running when it's closed.

  • the maid tab reaches every action of the other four tools
  • the calculator uses an ast allowlist, never eval
  • six rofi themes included for when pyqt6 isn't there
$ maid-runner

Maid AU

system updates shell

one updater for the whole system

system packages, flatpak apps and firmware in one run, with a snapshot before and after. it tells you when a reboot is needed. it doesn't reboot for you.

  • backend worked out from /etc/os-release: zypper, dnf, pacman or apt
  • prints PARTIAL when a layer failed instead of pretending it passed
  • the whole run goes to ~/.local/share/update-all.log
$ update-all.sh --check

Maid BT

audio shell

bluetooth earbuds switching that doesn't fight you

one command moves the sound from your pc to your phone and back, or turns the radio off. dual-connection earbuds stop fighting the phone, and ldac stays on instead of quietly dropping to sbc.

  • on, release and off, each about a second
  • a watcher connects the buds when they appear and parks the sound when they vanish
  • tray widget, launcher entries, and an optional phone remote
$ bluetooth-toggle.sh on

Maid Helper

repair shell

a first-aid kit for the usual breakage

checks the things that quietly go wrong and fixes what it safely can: missing fwupd, an empty flathub remote, nouveau blacklisted, a gamepad with no driver loaded.

  • every module runs check first and only changes things with fix
  • it will not install proprietary drivers. not with a flag, not ever
  • bootloader edits get printed for you to run by hand
$ mod-flatpak.sh fix
what it looks like

a day with them installed

not a dashboard. about ten seconds of your attention, spread across the day.

morning

one key

runner key, three letters, enter. app, command, sum or search.

buds in

sound follows

run on and the audio is on the earbuds a second later.

quick reply

file to phone

right-click, send. the popup tells you which route it used.

phone rings

music pauses

the watcher pauses the player and mutes discord, then puts them back when you hang up.

later

updates, previewed

--check first to see the list, then a real run: snapshot, packages, summary.

something broke

the kit looks

the helper finds it, fixes what it can, and checks again after. asks for root only if it needs to.

that's all of it

open source. clone one repo, run the installer, and see whether it saves you the annoyance it saved me.