Use official agent marks in default menu

This commit is contained in:
David Heinemeier Hansson
2026-08-04 10:04:21 -07:00
parent f293e9df26
commit 884ee6943a
4 changed files with 28 additions and 10 deletions
+13
View File
@@ -0,0 +1,13 @@
# Omarchy icon font
The private-use glyphs in `omarchy.ttf` are:
- `U+E900` — Omarchy
- `U+E901` — Pi, from <https://pi.dev/logo-auto.svg>
- `U+E902` — OpenCode, from <https://opencode.ai/favicon-96x96-v3.png>
- `U+E903` — omp, from <https://omp.sh/favicon.svg>
- `U+E904` — Grok, from <https://grok.com/images/favicon.svg>
- `U+E905` — Codex, from the OpenAI mark on <https://developers.openai.com/codex/>
The agent marks are monochrome so the menu can render them using the active
theme's foreground and selection colors.
Binary file not shown.
+5 -5
View File
@@ -133,14 +133,14 @@
"setup.default": {"icon":"","label":"Defaults","aliases":["default","defaults"]},
"setup.default.agent": {"icon":"󰚩","label":"Agent"},
"setup.default.agent.claude": {"icon":"󰛄","label":"Claude","checked":"[[ \"$(omarchy-default-agent)\" == \"claude\" ]]","action":"omarchy-default-agent claude"},
"setup.default.agent.codex": {"icon":"󰞵","label":"Codex","checked":"[[ \"$(omarchy-default-agent)\" == \"codex\" ]]","action":"omarchy-default-agent codex"},
"setup.default.agent.codex": {"icon":"","iconFont":"omarchy","label":"Codex","checked":"[[ \"$(omarchy-default-agent)\" == \"codex\" ]]","action":"omarchy-default-agent codex"},
"setup.default.agent.copilot": {"icon":"","label":"Copilot","checked":"[[ \"$(omarchy-default-agent)\" == \"copilot\" ]]","action":"omarchy-default-agent copilot"},
"setup.default.agent.crush": {"icon":"󰋑","label":"Crush","checked":"[[ \"$(omarchy-default-agent)\" == \"crush\" ]]","action":"omarchy-default-agent crush"},
"setup.default.agent.gemini": {"icon":"󰫢","label":"Gemini","checked":"[[ \"$(omarchy-default-agent)\" == \"gemini\" ]]","action":"omarchy-default-agent gemini"},
"setup.default.agent.grok": {"icon":"󰰱","label":"Grok","checked":"[[ \"$(omarchy-default-agent)\" == \"grok\" ]]","action":"omarchy-default-agent grok"},
"setup.default.agent.omp": {"icon":"󰣪","label":"omp","checked":"[[ \"$(omarchy-default-agent)\" == \"omp\" ]]","action":"omarchy-default-agent omp"},
"setup.default.agent.opencode": {"icon":"󰕪","label":"OpenCode","checked":"[[ \"$(omarchy-default-agent)\" == \"opencode\" ]]","action":"omarchy-default-agent opencode"},
"setup.default.agent.pi": {"icon":"󰏿","label":"Pi","checked":"[[ \"$(omarchy-default-agent)\" == \"pi\" ]]","action":"omarchy-default-agent pi"},
"setup.default.agent.grok": {"icon":"","iconFont":"omarchy","label":"Grok","checked":"[[ \"$(omarchy-default-agent)\" == \"grok\" ]]","action":"omarchy-default-agent grok"},
"setup.default.agent.omp": {"icon":"","iconFont":"omarchy","label":"omp","checked":"[[ \"$(omarchy-default-agent)\" == \"omp\" ]]","action":"omarchy-default-agent omp"},
"setup.default.agent.opencode": {"icon":"","iconFont":"omarchy","label":"OpenCode","checked":"[[ \"$(omarchy-default-agent)\" == \"opencode\" ]]","action":"omarchy-default-agent opencode"},
"setup.default.agent.pi": {"icon":"","iconFont":"omarchy","label":"Pi","checked":"[[ \"$(omarchy-default-agent)\" == \"pi\" ]]","action":"omarchy-default-agent pi"},
"setup.default.browser": {"icon":"","label":"Browser"},
"setup.default.browser.chromium": {"icon":"","label":"Chromium","when":"omarchy-cmd-present chromium","checked":"[[ \"$(omarchy-default-browser)\" == \"chromium\" ]]","action":"omarchy-default-browser chromium"},
"setup.default.browser.chrome": {"icon":"󰊯","label":"Chrome","when":"omarchy-cmd-present google-chrome-stable","checked":"[[ \"$(omarchy-default-browser)\" == \"chrome\" ]]","action":"omarchy-default-browser chrome"},
+10 -5
View File
@@ -168,12 +168,12 @@ assertEqual(
'menu lists Direct Boot immediately below Input'
)
const expectedAgents = {
pi: { icon: '󰏿', label: 'Pi' },
omp: { icon: '󰣪', label: 'omp' },
opencode: { icon: '󰕪', label: 'OpenCode' },
pi: { icon: '\ue901', iconFont: 'omarchy', label: 'Pi' },
omp: { icon: '\ue903', iconFont: 'omarchy', label: 'omp' },
opencode: { icon: '\ue902', iconFont: 'omarchy', label: 'OpenCode' },
claude: { icon: '󰛄', label: 'Claude' },
codex: { icon: '󰞵', label: 'Codex' },
grok: { icon: '󰰱', label: 'Grok' },
codex: { icon: '\ue905', iconFont: 'omarchy', label: 'Codex' },
grok: { icon: '\ue904', iconFont: 'omarchy', label: 'Grok' },
gemini: { icon: '󰫢', label: 'Gemini' },
copilot: { icon: '', label: 'Copilot' },
crush: { icon: '󰋑', label: 'Crush' },
@@ -183,6 +183,7 @@ assert(
const entry = defaultById[`setup.default.agent.${agent}`]
return entry
&& entry.icon === expected.icon
&& entry.iconFont === (expected.iconFont || '')
&& entry.label === expected.label
&& entry.action === `omarchy-default-agent ${agent}`
&& !entry.when
@@ -483,3 +484,7 @@ assert(
'mouse activation carries pointer intent into subordinate menus'
)
JS
font_charset=$(fc-query --format='%{charset}' "$ROOT/default/fonts/omarchy/omarchy.ttf")
[[ $font_charset == *"e900-e905"* ]] || fail "Omarchy icon font includes every custom menu glyph"
pass "Omarchy icon font includes the official agent marks"