From 9fb73b0051502e725468f943cad2d0ca44356237 Mon Sep 17 00:00:00 2001 From: Spencer Bull Date: Mon, 7 Sep 2026 04:20:13 -0500 Subject: [PATCH] Hide the upstream Hermes launcher in Omarchy Keep the package launcher visible when Hermes builds register a second desktop entry. Use the existing launcher hide list so in-app updates cannot restore the duplicate menu row. --- default/omarchy/launcher.hides | 1 + test/shell.d/app-search-test.sh | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/default/omarchy/launcher.hides b/default/omarchy/launcher.hides index 113565c7..77a57d3b 100644 --- a/default/omarchy/launcher.hides +++ b/default/omarchy/launcher.hides @@ -12,6 +12,7 @@ fcitx5-configtool fcitx5-wayland-launcher foot-server footclient +hermes java-java-openjdk jconsole-java-openjdk jshell-java-openjdk diff --git a/test/shell.d/app-search-test.sh b/test/shell.d/app-search-test.sh index d0b6a3d1..5ebd1cfe 100644 --- a/test/shell.d/app-search-test.sh +++ b/test/shell.d/app-search-test.sh @@ -55,6 +55,14 @@ const entries = [ } ] +// Keep the packaged launcher when upstream rebuilds register their own entry. +const configuredHides = new Set(fs.readFileSync(path.join(root, 'default/omarchy/launcher.hides'), 'utf8').trim().split(/\n/)) +const hermesEntries = [{ name: 'Hermes', id: 'hermes' }, { name: 'Hermes', id: 'hermes-desktop' }] +for (const query of ['', 'hermes']) { + const visible = search.sortedEntries(hermesEntries, query, entry => configuredHides.has(entry.id)) + assertDeepEqual(visible.map(row => row.entry.id), ['hermes-desktop'], 'only the packaged Hermes launcher is visible') +} + const contactMatches = search.sortedEntries(entries, 'contact').map(row => search.entryName(row.entry)) assertDeepEqual(contactMatches, ['Google Contacts'], 'contact search only returns direct contact matches')