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
49 lines
1.7 KiB
Lua
49 lines
1.7 KiB
Lua
-- BEGIN hyprmoncfg wake settings
|
|
-- Shared with Omarchy while hyprmoncfg manages displays.
|
|
hl.monitor({ output = "eDP-1", mode = "preferred", position = "0x0", scale = 1.25 })
|
|
-- END hyprmoncfg wake settings
|
|
-- See https://wiki.hypr.land/Configuring/Basics/Monitors/
|
|
-- List current monitors and supported resolutions with: hyprctl monitors all
|
|
--
|
|
-- SINGLE SOURCE OF TRUTH for display config.
|
|
-- Do not add monitor rules anywhere else (hyprland.lua, a hyprmoncfg-generated
|
|
-- file, etc.) -- overlapping rules from several files were what made external
|
|
-- displays unrecoverable before.
|
|
|
|
local omarchy_gdk_scale = 1
|
|
local omarchy_monitor_scale = 1
|
|
|
|
hl.env("GDK_SCALE", tostring(omarchy_gdk_scale))
|
|
|
|
-- Catch-all: anything not named below gets its EDID-preferred mode.
|
|
hl.monitor({ output = "", mode = "preferred", position = "auto", scale = omarchy_monitor_scale })
|
|
|
|
-- Built-in laptop panel.
|
|
hl.monitor({
|
|
output = "desc:Chimei Innolux Corporation 0x1642",
|
|
mode = "1920x1200@60",
|
|
position = "auto",
|
|
scale = 1.25,
|
|
})
|
|
|
|
-- LG IPS236 on the laptop's own HDMI port.
|
|
hl.monitor({
|
|
output = "desc:LG Electronics IPS236 105NDLS5A720",
|
|
mode = "1920x1080@60",
|
|
position = "auto",
|
|
scale = 1,
|
|
})
|
|
|
|
-- LG TV via the Anker USB-C dock.
|
|
-- Deliberately NOT forced to 3840x2160@60: the dock negotiates DP alt-mode
|
|
-- with only 2 lanes (pin assignment D), which leaves no bandwidth headroom at
|
|
-- 4K60. Forcing it produced a "monitor has no mode" loop. "preferred" is
|
|
-- 3840x2160@30 here, which links reliably. Use 1920x1080@120 instead if you
|
|
-- want high refresh over this dock.
|
|
hl.monitor({
|
|
output = "desc:LG Electronics LG TV SSCR2 0x01010101",
|
|
mode = "preferred",
|
|
position = "auto",
|
|
scale = 1.25,
|
|
})
|