Tinkering with omarchy, might delete later
- Shell 62.6%
- QML 23.6%
- Lua 13.8%
The previous commit added hypridle to turn dragon's OLED off on idle. It
was redundant: Omarchy has done this all along, through a path I did not
follow far enough.
plugins/lock/Service.qml:411 on lock, runs
omarchy-brightness-keyboard off; omarchy-brightness-display off
omarchy-brightness-display off ->
hyprctl dispatch 'hl.dsp.dpms({ action = "disable" })'
and the idle service calls omarchy-system-lock at idle.lock, so the idle
path reaches the same place as the hotkey. Confirmed on the machine: a
manual lock blanks the panels after ~5s.
What misled me was grepping the shell for 'dpms' and finding nothing. The
shell never says dpms -- it shells out to omarchy-brightness-display,
which is where the dispatch lives. Absence of a term is not absence of a
behaviour.
Also worth recording: the form Omarchy uses is
hl.dsp.dpms({ action = "disable" }), a table, not the hl.dsp.dpms("off")
I had written. Mine returned 'ok' from hyprctl, which is what made it look
verified -- but 'ok' only means the dispatcher accepted the call, not that
it did anything. A second reason not to keep that config.
Checked before reverting that the forked daniel.lock still carries the
brightness-off line on both hosts -- a fork that had diverged before it
was added upstream would silently lose display blanking, and that would
have been a real gap rather than an imagined one. It is present on both,
and omarchy.lock is disabled in favour of it.
Leaves dragon protected by idle.lock = 300s. Lower that in shell.json if
five minutes of a static lock screen is too long for the OLED.
|
||
|---|---|---|
| home | ||
| hosts | ||
| plugins | ||
| system | ||
| .gitignore | ||
| dots | ||
| manifest | ||
| nixlink | ||
| packages-aur.list | ||
| packages-drivers.list | ||
| packages-ignore.list | ||
| packages-nix.list | ||
| packages.list | ||
| README.md | ||
| themes.list | ||
| TODO.md | ||
omarchy-dotfiles
My Omarchy config, synced across machines. No symlinks, no templating engine —
just rsync + git behind a small bash script.
Why not stow or chezmoi
- Stow (what the Omarchy manual suggests) uses symlinks. Omarchy's update
migrations run
sed -i, which replaces a symlink with a regular file and silently detaches it from the repo. See omarchy#191. - chezmoi (what the community mostly uses) is fine but its value is Go templating, which I don't want.
This keeps real files in $HOME where Omarchy expects them. When an update
rewrites one, it shows up as ordinary drift you review with dots diff.
Usage
./dots status # what differs between $HOME and this repo
./dots diff [path] # unified diff
./dots pull # $HOME -> repo (capture local changes)
./dots apply # repo -> $HOME (backs up first, prompts)
./dots sync "message" # pull + themes save + commit + push
./dots track <path> # start tracking (shared across machines)
./dots track --host <path> # track per-machine (e.g. monitors.lua)
./dots untrack <path>
./dots themes save|install # git-based themes, by URL (not contents)
./dots packages save|install # explicit pacman + AUR package lists
Layout
manifest tracked paths (relative to $HOME) + rsync excludes
home/ shared files, mirrored tree
hosts/<hostname>/ per-machine overrides, applied *after* home/
themes.list name <TAB> git URL
packages.list pacman -Qqen
packages-aur.list pacman -Qqem
packages-ignore.list installed here, deliberately never recorded
packages-drivers.list globs for hardware-bound packages (see below)
hosts/<hostname>/ wins over home/ for the same path. Hostname comes from
/etc/hostname.
What is deliberately NOT tracked
- Files byte-identical to Omarchy's defaults in
/usr/share/omarchy/config/. Committing those pins you to today's defaults and reverts upstream improvements on the next machine. Rundots track <path>once you change one. - Theme contents. The four installed themes are upstream git clones totalling
~188 MB.
themes.listrecords their URLs;dots themes installre-clones. - Microcode and per-vendor GPU drivers, unless the host asks for them. The
next machine wants the drivers for its GPU, so
packages-drivers.listkeeps them out of the shared list and out ofdoctor's "installed but not recorded". A host opts in by naming one inhosts/<hostname>/packages.list; from then on its driver set is tracked andpackages savekeeps it there. - Sockets, logs, and runtime state (
*.sock,session.json,.plugins.lock). - Secrets. Nothing here should contain credentials — check before committing.
New machine
# install Omarchy first, then:
git clone ssh://forgejo@git.lyte.dev/lytedev/omarchy-dotfiles.git ~/Projects/omarchy-dotfiles
ln -sfT ~/Projects/omarchy-dotfiles ~/.config/omarchy-dotfiles # optional convenience
cd ~/Projects/omarchy-dotfiles
./dots packages install # optional
./dots themes install
./dots apply
The clone can live anywhere; dots resolves its own directory, so running it
through the ~/.config symlink works and still writes to the real path.
hyprctl reload && hyprctl configerrors
omarchy restart shell
omarchy restart terminal
Per-machine files land in hosts/<new-hostname>/ — copy from another host's
directory and edit, e.g. monitors.lua.
After an omarchy update
./dots status # see what the migrations rewrote
./dots diff # inspect
./dots pull # accept upstream's version into the repo
# ...or ./dots apply to force your version back