Profiles: machines, roles and shared layers
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
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
# See machines/hp-laptop/packages.txt for the format. cmd= skips a package whose
|
||||
# command is already on PATH, e.g. from dotfiles' ~/.local/bin shims.
|
||||
[repo]
|
||||
github-cli cmd=gh # GitHub CLI
|
||||
git-delta cmd=delta # syntax-highlighted git diffs
|
||||
uv cmd=uv # Python packaging and venvs
|
||||
just cmd=just # command runner
|
||||
direnv cmd=direnv # per-directory env (.envrc)
|
||||
shfmt cmd=shfmt # shell formatter
|
||||
shellcheck x86_64 cmd=shellcheck # not built for aarch64 by Arch Linux ARM
|
||||
httpie cmd=http # HTTP client
|
||||
mise x86_64 cmd=mise # runtime manager Omarchy's dev-env uses; HP has mise-bin, ALARM has no mise
|
||||
visual-studio-code-bin cmd=code # editor (omarchy repo)
|
||||
@@ -0,0 +1,8 @@
|
||||
# General software development. Omarchy already ships git, docker (+compose,
|
||||
# buildx), lazygit, lazydocker, nvim, ripgrep, fd, fzf, clang/llvm and
|
||||
# `omarchy install dev-env <lang>` for language runtimes via mise, so this only
|
||||
# adds what is missing from that.
|
||||
description="Software development: gh, delta, uv, just, direnv, VS Code"
|
||||
# dotfiles modules this role pairs with on Nic's machines (advisory; install.sh
|
||||
# prints them, it never runs dotfiles itself): zsh, git
|
||||
dotfiles=(zsh git)
|
||||
Reference in New Issue
Block a user