Capture omarchy-air's customizations as a per-host overlay

hosts/<hostname>/{config,system}/ now overlays the shared trees. install.sh
installs a host file in place of the shared copy at the same path, and
capture.sh pulls back into whichever copy the host installs from. That keeps
hardware-specific files off the wrong machine: the HP's EDID-named monitors.lua
and its fnmode=2 would otherwise land on the Air.

capture.sh refreshes the shared trees only on omarchy-laptop, where they were
captured, or when CAPTURE_SHARED=1 is set. On the Air, a plain run copied its
stock terminal, hypr and shell files over every one of the HP's customizations.

air's overlay holds monitors.lua (1.33333 scale and GDK_SCALE=1 for the
2560x1664 panel), input.lua (stock settings plus the inert-accel measurements),
herdr onboarding=false, git identity and credential helpers (no secrets),
mimeapps.list, and the Asahi installer's hid_apple fnmode=1 and show_notch=1.
bindings.lua is not overlaid because the shared one is a strict superset.
hosts/omarchy-air/README.md records what was left out on purpose and why, and
warns that the shared packages.txt is x86-specific.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKPyqMc7MGKyBLKVdeDejp
This commit is contained in:
2026-10-16 15:49:19 -04:00
co-authored by Claude Opus 5.5
parent b3f3f46b98
commit e1e5f05876
11 changed files with 404 additions and 16 deletions
+10
View File
@@ -29,6 +29,7 @@ into the repo so this stays the source of truth.
| `systemd/user/` | `lan-mouse.service`, `voxtype.service`. |
| `system/` | `/etc` drop-ins: the ARP sysctl and `hid_apple` fnmode. |
| `packages.txt` | Packages beyond the Omarchy baseline, each with a reason. |
| `hosts/<hostname>/` | Per-host overlay of `config/` and `system/`: a file there replaces the shared copy on that host only. See `hosts/omarchy-air/README.md`. |
## The customizations, and why
@@ -187,3 +188,12 @@ git add config/foo/bar.conf
nothing else needs changing. Check first that the file actually differs from
stock — `diff /usr/share/omarchy/config/foo/bar.conf ~/.config/foo/bar.conf` —
or you will be tracking a file Omarchy already ships.
### Per-host files
Hardware-specific files (monitor scale, fnmode) go under `hosts/<hostname>/`,
mirroring `config/` or `system/`, rather than into the shared tree. The shared
tree comes from `omarchy-laptop`, and `capture.sh` refreshes it only there (or
with `CAPTURE_SHARED=1`). On any other host it refreshes just that host's overlay,
so a machine running stock files cannot overwrite the shared customizations.
`OMARCHY_SETUP_HOST` overrides the detected hostname for both scripts.