From e872d3c0b9c85dd4f74494f516f2cb073317bce0 Mon Sep 17 00:00:00 2001 From: Jeremy Daer Date: Fri, 31 Jul 2026 00:43:54 -0700 Subject: [PATCH 1/2] Correct three AGENTS.md claims against the repo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - The privilege-escalation rule told agents to use pkexec for all privileged work, which contradicts default/omarchy-skill/SKILL.md — a file this repo ships — and the code follows the skill, not this line. Defer to it rather than restate it, so the two cannot drift apart again. - config/hypr/hyprlock.conf does not exist, so the refresh example fails with "Not a shipped user config". Use hypr/hyprland.lua, the example bin/omarchy-refresh-config prints in its own usage. - Neither IPC example was right: no target named `bar` is registered anywhere, and `image-selector` is registered by shell.qml rather than the background switcher, which registers `background`. Name the targets that exist. --- AGENTS.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 8a8da1c0..975f2497 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -67,7 +67,9 @@ Example: # Privileged Commands -- Whenever you need to trigger a sudo command, use `pkexec` so it results in a user prompt they can approve. +- Follow the "Privilege Escalation" section of `default/omarchy-skill/SKILL.md`. It draws the + `sudo`/`pkexec` line by whether the caller has a terminal to enter a password in, and the repo's + own scripts follow it. # Git @@ -237,9 +239,12 @@ IPC: direct Quickshell socket calls in every CLI. - The `shell` IPC target exposes lifecycle and configuration methods including `ping`, `summon`, `hide`, `toggle`, `call`, `rescanPlugins`, `reloadConfig`, - `setPluginEnabled`, and `listPlugins`. Individual plugins can register - additional IPC targets (the bar registers `bar`, the background switcher - registers `image-selector`). + `setPluginEnabled`, and `listPlugins`. `shell.qml` also registers + `image-selector`, which drives the `omarchy.image-picker` panel. +- Individual plugins register their own IPC targets, named for the plugin rather + than for where they appear: the background switcher registers `background`, and + bar widgets register one target each — `omarchy.indicators`, + `omarchy.system-update`, `omarchy.clock`. There is no `bar` target. Widget files in `shell/plugins/bar/widgets/` contain Nerd Font glyphs as raw unicode characters. The `Write` and `Edit` tools strip multi-byte @@ -253,10 +258,12 @@ the surrounding context, or a Python script that inserts codepoints via To copy a default config to user config with automatic backup: ```bash -omarchy-refresh-config hypr/hyprlock.conf +omarchy-refresh-config hypr/hyprland.lua ``` -This copies `$OMARCHY_PATH/config/hypr/hyprlock.conf` to `~/.config/hypr/hyprlock.conf`. +This copies `$OMARCHY_PATH/config/hypr/hyprland.lua` to `~/.config/hypr/hyprland.lua`. The argument +must name a file that exists under `$OMARCHY_PATH/config/`; anything else exits with "Not a shipped +user config". # Migrations From a737ec4ce348b29d1fdba86c3c9196ae4b189eea Mon Sep 17 00:00:00 2001 From: Jeremy Daer Date: Fri, 31 Jul 2026 01:24:51 -0700 Subject: [PATCH 2/2] Describe what omarchy-refresh-config validates, not what it doesn't The previous wording claimed the argument must name a file under $OMARCHY_PATH/config/ and that anything else is rejected. The check is `[[ -e $default_config_file ]]` against an interpolated path, so `../AGENTS.md` resolves in both trees and copies over $HOME/AGENTS.md, exit 0. --- AGENTS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 975f2497..868b3b41 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -262,8 +262,8 @@ omarchy-refresh-config hypr/hyprland.lua ``` This copies `$OMARCHY_PATH/config/hypr/hyprland.lua` to `~/.config/hypr/hyprland.lua`. The argument -must name a file that exists under `$OMARCHY_PATH/config/`; anything else exits with "Not a shipped -user config". +is interpolated into both paths and only checked with `[[ -e ]]`, so pass a plain relative path: a +name containing `..` resolves and copies, landing outside `~/.config` rather than being rejected. # Migrations