The repo was one machine's capture. It is now a set of profiles built from layers under profiles/: machines/ hp-laptop, macbook-air-m2, coder-desktop roles/ developer, devops, ai-agents features/ handoff (lan-mouse) shared base, personal, personal-desktop A profile resolves to its includes (depth first), any --roles, then itself; for a path several layers provide, the last wins. install.sh --show prints the layers and which one owns each file. Hyprland settings no longer share a file: base's hyprland.lua loads ~/.config/hypr/layers/*.lua with Omarchy's own require_all, and bindings.lua stays stock so nothing binds twice. Verified with Hyprland 0.56.2 --verify-config for all three profiles, plus a broken probe layer to prove the directory is loaded. packages.txt gains per-line arch (Arch Linux ARM lacks opencode, codex, mise, shellcheck) and cmd= (skip when dotfiles' ~/.local/bin already provides the command), and an [ignore] section that replaces capture.sh's hard-coded list. Tab-separated records would have collapsed empty fields under read, so package records use the unit separator. hp-laptop: re-captured. monitors.lua catch-all scale is now 1, shell.json has four new plugins, fix-stuck-displays has its connector-name fix, navbar-cat is gone, plugin-manager and omarchy-phone are pinned, the herdr-hud working tree is re-diffed and bin/herdr-web rides along. Its handoff peer is now the Air (192.168.1.49); the old default list was the HP's own addresses, written from the Air's side. macbook-air-m2: captured read-only over SSH as it is (no themes, plugins or bar changes). Its LAN_MOUSE_POINTER_SCALE=0.7 moves from the shared unit into a lan-mouse.service.d drop-in in its own layer. coder-desktop: the Omarchy settings covert-cloud's image used to patch in by hand (Virtual-1 at 1920x1080, no animations, stay-awake, Retro 82 once), for the image to apply at a pinned commit. Roles reach it per workspace via install.sh --roles ... --no-clobber. capture.sh writes each file back into the layer that owns it, and refuses to run before the first layered install unless --force, since the old file shapes would land in shared layers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0153egowV1Xw2RNjZnSyZicc
39 lines
1.7 KiB
Lua
39 lines
1.7 KiB
Lua
-- Learn how to configure Hyprland: https://wiki.hypr.land/Configuring/Start/
|
|
|
|
-- Omarchy's bootstrap keeps path setup out of this user config.
|
|
dofile((os.getenv("OMARCHY_PATH") or "/usr/share/omarchy") .. "/default/hypr/bootstrap.lua")
|
|
|
|
-- Disable all Omarchy default bindings. Add your own in hypr/bindings.lua.
|
|
-- omarchy_default_bindings = false
|
|
--
|
|
-- Or disable only bindings for Omarchy's preinstalled apps/web apps while
|
|
-- keeping core window-manager bindings:
|
|
-- omarchy_preinstalled_bindings = false
|
|
|
|
-- Load Omarchy defaults.
|
|
require("default.hypr.omarchy")
|
|
|
|
-- Put your personal overrides in these files. They're loaded after Omarchy's
|
|
-- defaults so package updates can improve the defaults without rewriting your
|
|
-- ~/.config/hypr files.
|
|
require("hypr.monitors")
|
|
require("hypr.input")
|
|
require("hypr.bindings")
|
|
require("hypr.looknfeel")
|
|
require("hypr.autostart")
|
|
|
|
-- omarchy-setup layers: every profile layer (role, machine, feature) puts its
|
|
-- Hyprland settings in its own file under hypr/layers/, so layers never fight
|
|
-- over bindings.lua or looknfeel.lua. Loaded in name order, after the files
|
|
-- above; reload=true makes `hyprctl reload` re-run them.
|
|
require("default.hypr.require_all").files(os.getenv("HOME") .. "/.config/hypr/layers", "hypr.layers", { reload = true })
|
|
|
|
-- Toggle config flags dynamically.
|
|
require("default.hypr.toggles")
|
|
|
|
-- Add any other personal Hyprland configuration below.
|
|
-- o.window("qemu", { workspace = "5" })
|
|
|
|
-- Added by hyprmoncfg: its generated monitor rules load last, so nothing before this can override the applied layout.
|
|
do local path = os.getenv("HOME") .. "/.config/hypr/hyprmoncfg-monitors.lua"; local file = io.open(path, "r"); if file then file:close(); dofile(path) end end
|