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
43 lines
1.9 KiB
Bash
Executable File
43 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# coder-desktop setup, run by install.sh's `setup` step after the files are in
|
|
# place. Everything here is state outside ~/.config. Idempotent; honours
|
|
# OMARCHY_SETUP_DRY=1.
|
|
set -uo pipefail
|
|
|
|
run() { if [[ ${OMARCHY_SETUP_DRY:-0} == 1 ]]; then echo " ? would: $*"; else "$@"; fi; }
|
|
state=$HOME/.local/state/omarchy-setup
|
|
export OMARCHY_PATH=${OMARCHY_PATH:-/usr/share/omarchy}
|
|
|
|
# No idle lock or screensaver: Omarchy's stay-awake mode. The desktop user has
|
|
# no password (the image locks it), so a locked screen could never be unlocked,
|
|
# and an idle lock would darken the stream. The image build checks for this.
|
|
marker=$HOME/.local/state/omarchy/indicators/stay-awake
|
|
if [[ -e $marker ]]; then
|
|
echo " = stay-awake"
|
|
else
|
|
run mkdir -p "${marker%/*}" && run touch "$marker" && echo " + stay-awake"
|
|
fi
|
|
|
|
# Reduced motion, so Chromium reports prefers-reduced-motion and pages that
|
|
# honour it stop animating (see layers/80-coder-desktop.lua for why). No
|
|
# session during the image build, hence dbus-run-session.
|
|
if command -v gsettings >/dev/null; then
|
|
gs=(gsettings); [[ -n ${DBUS_SESSION_BUS_ADDRESS:-} ]] || gs=(dbus-run-session -- gsettings)
|
|
if [[ $("${gs[@]}" get org.gnome.desktop.interface enable-animations 2>/dev/null) == false ]]; then
|
|
echo " = gtk animations off"
|
|
else
|
|
run "${gs[@]}" set org.gnome.desktop.interface enable-animations false && echo " + gtk animations off"
|
|
fi
|
|
fi
|
|
|
|
# Default theme: Omarchy's Retro 82. Only on the first apply, because install.sh
|
|
# also runs at every workspace start (for the roles parameter) and must not undo
|
|
# a theme the developer picked. The image also installs the Covert Cloud themes
|
|
# for anyone who chooses them.
|
|
if [[ -e $state/coder-desktop-theme ]]; then
|
|
echo " = default theme already set once (left alone)"
|
|
else
|
|
run env OMARCHY_THEME_HEADLESS=1 "$OMARCHY_PATH/bin/omarchy-theme-set" "Retro 82" \
|
|
&& run mkdir -p "$state" && run touch "$state/coder-desktop-theme" && echo " + theme: Retro 82"
|
|
fi
|