Most commands here are packaged from scripts/ with writeShellApplication (strict mode, shellcheck at build time). Editing the .sh does nothing until you rebuild — the copy on PATH is in the store. The exceptions, which run straight from the repo, are marked.
themectl set <name> | current | list | next | prev | reload
themectl bg [set <path> | next | prev]
DOTS_DIR overrides where it looks for the repo (default ~/dots).
dots-* shims
Every dots-* name below is a symlink to one script, scripts/dots-compat.sh, which dispatches on $0. They exist so the vendored Quickshell bar has a stable command vocabulary. An unknown name exits 127.
State and toggles
Command
Does
dots-theme-set <name>
themectl set <name>
dots-theme-bg-set <path>
themectl bg set <path>
dots-toggle-idle
Stop/start the hypridle user unit; prints on/off
dots-toggle-notification-silencing
Toggle do-not-disturb in ~/.local/state/dots/notifications.json (the Quickshell notification service watches it)
dots-audio-input-mute
Toggle mute on the default PipeWire source
dots-llm [status|next|off]
Which LLM unit is running / cycle to the next / stop all (order: llama-cpp llama-sec llama-agent llama-gemma llama-coder llama-fim ollama)
dots-shell lock
quickshell -c lock
dots-shell restart
Restart the bar
dots-shell notifications status / idle status
JSON / on-off for the bar
Status (print, never fail)
Command
Prints
dots-updates
1 if the locked chaotic rev differs from chaotic-nyx HEAD, else 0 (cached 1 h in ~/.cache/dots-updates)
dots-update-available
1 if flake.lock is older than 7 days, else nothing
dots-mounts
Space-separated names of unhealthy mounts among /mnt/media /mnt/backup /mnt/pool1; empty means all fine
dots-qbt
<downloading> <dl B/s> <up B/s> from the qBittorrent API, or off
dots-weather, dots-weather-status
One-line wttr.in summary
dots-brightness-display
Backlight percent (100 on a desktop with no backlight)
dots-hw-display
Backlight device name, if any
dots-voxtype-model
Current whisper model
dots-screenrecord-filename
Next ~/Videos/recording-<timestamp>.mp4 path
Launchers
These open a floating terminal ($DOTS_TERMINAL, default ghostty) with window class com.dots.float, as a transient systemd scope so it outlives the bar.
Command
Opens
dots-update
nh os switch in ~/dots, waits for Enter
dots-launch-wifi
impala
dots-launch-bluetooth
bluetui
dots-launch-audio
wiremix
dots-launch-or-focus-tui <cmd>
<cmd> (always launches; doesn't focus an existing one)
Points at time.timeZone in hosts/nixos/configuration.nix (timedatectl can't change a declarative zone)
dots-voxtype-config
fzf over whisper models → voxtype set-model
Capture and OSD
Command
Does
dots-capture-screenrecording
Start recording the focused output (HEVC, desktop + EasyEffects audio) to ~/Videos as transient unit dots-gsr; DOTS_GSR_ARGS replaces the capture flags
dots-capture-screenrecording --stop
Stop dots-gsr (SIGINT, so the mp4 is finalised)
dots-capture-screenrecording --save-replay
Dump the replay buffer if gsr-replay is armed
dots-swayosd-client, dots-swayosd-brightness
Pass through to swayosd-client (no-op if missing)
Adding a shim
Add a case branch to scripts/dots-compat.sh.
Add the name to shimNames in home/quickshell-rise.nix — without this the symlink isn't created.
git add -A && update.
Other packaged commands
Command
From
Usage
voxtype
scripts/voxtype.sh
toggle · start · stop · status [json] · model · models · set-model <path>. Models: ggml-*.bin in $VOXTYPE_MODEL_DIR (default ~/.local/share/voxtype/models)
Track the upstream Rise repo the bar was vendored from: status, diff [file], ahead [rev], pin <rev> (the pin lives in config/quickshell/rise/.upstream-rev)
tests/iso-install.py
Install the vm host from the ISO under QEMU and check two boots; see Getting started
config/zen/zen-theme-link.sh
Link config/zen/*.css, plus the rendered dots-palette.css and dots-sites.css, into every Zen profile's chrome/. SRC (default: the directory the script is in) / ROOT env override source and profile root. Launch Zen once first so a profile exists
config/quickshell/rise/scripts/*
Bar helpers: codex-usage, opencode-usage, openrouter, qs-barctl, qs-kb-*, qs-proj
Fish
Abbrev
Expands to
update
nh os switch (desktop) · nh darwin switch (mac) · nh home switch (minimal)