Tinkering with omarchy, might delete later
- Shell 80.2%
- Lua 19.8%
The 5h segment vanished from the statusline entirely. Claude Code derives each rate-limit percentage as utilization*100, so a 29% window arrives as 28.999999999999996. The is_int guard rejected it and the segment was silently omitted -- no error, just a missing figure. Only the context percentage is a true integer: Claude Code rounds that one itself before serialising. The rate-limit pair does not get the same treatment, and the payload I sampled when writing this happened to hold 21 and 24 exactly, which hid the bug completely. Numeric fields are now rounded in jq instead of being validated in bash. Doing it at the boundary means bash -- whose arithmetic and test operators are integer-only -- never sees a decimal point, rather than every consumer needing its own guard. The guard is `if type == "number"` rather than `// ""` because `//` treats a legitimate 0 as absent, which would have dropped a freshly reset window instead of showing "5h: 0%". Rounding at the boundary also keeps the colour thresholds honest: 75.5 rounds to 76 and turns yellow, 90.4 rounds to 90 and stays yellow. Verified across 0, 0.4, 74.6, 75.0, 75.4, 75.5, 76.0, 89.99, 90.4, 90.6, 99.999, 100. Degraded payloads re-checked: absent rate_limits, a null five_hour, a null resets_at (keeps "7d: 25%", drops the countdown), five_hour alone, and empty or malformed stdin. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| home | ||
| hosts/foxtrot-omarchy/.config/hypr | ||
| plugins | ||
| .gitignore | ||
| dots | ||
| manifest | ||
| packages-aur.list | ||
| packages.list | ||
| README.md | ||
| themes.list | ||
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
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. - 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 ~/omarchy-dotfiles
cd ~/omarchy-dotfiles
./dots packages install # optional
./dots themes install
./dots apply
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