Ask for Wayland directly in the Hermes launcher

Chromium falls back to XWayland often enough to matter, and the result is a
blurry window on every scaled display -- the same reason the ChatGPT and Grok
Bot launchers set this. Skipped when the caller has already named a platform.
This commit is contained in:
Omabot committed 2026-08-19 02:51:49 -07:00
1 parent a57f63914f
commit d2247aa363
2 files changed
+19 -5

No files matched your search

+1 -1
View File
@@ -64,7 +64,7 @@ source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz
'hermes-desktop.desktop'
'hermes-desktop.png')
sha256sums=('1e3d39d3638ec15fa9d31af262568a953e9272090deb1c50c44cd401175f5b80'
'716978c836ad46aa4ad173366d3a5d322c174fadf2f8095e6ce81301e1cad048'
'f6d06594c2a60a01c369992e44b20afcaf92d8f454a822dc6fccad67d4b6c58b'
'a71e5b3599515b97ea694d51771edede69107a221f301f91c088a5d81de7a8c0'
'd60d164e24fdcf6532133b8ea43c77a201e4b9e9dbc396187b58d51d8590ef52')
+18 -4
View File
@@ -1,12 +1,12 @@
#!/bin/bash
set -euo pipefail
# The desktop app is only a shell: it runs `hermes serve` against a Hermes CLI
# it does not ship. Finding none, it clones its own copy with the upstream
# install script -- an unpinned checkout in ~/.hermes that no package manages.
#
# So make sure the CLI is there first. Omarchy installs it with its own script;
# elsewhere, say so rather than letting the app quietly bootstrap a second
# Hermes behind the user's back.
# command -v rather than omarchy-cmd-present: no other launcher in this repo
# makes a package depend on omarchy, and this has to behave on a plain Arch box.
if ! command -v hermes >/dev/null 2>&1; then
if command -v omarchy-install-hermes-cli >/dev/null 2>&1; then
omarchy-install-hermes-cli --now
@@ -16,4 +16,18 @@ if ! command -v hermes >/dev/null 2>&1; then
fi
fi
exec /opt/hermes-desktop/Hermes "$@"
# Chromium's own Ozone detection falls back to XWayland often enough to matter,
# and the result is a blurry window on every scaled display. Ask for Wayland
# directly, unless the user has already picked a platform themselves.
platform_flags=()
if [[ -n "${WAYLAND_DISPLAY:-}" || ${XDG_SESSION_TYPE:-} == wayland ]]; then
platform_flags=(--ozone-platform=wayland)
for flag in "$@"; do
case "$flag" in
--ozone-platform=* | --ozone-platform-hint=*) platform_flags=() ;;
esac
done
fi
exec /opt/hermes-desktop/Hermes "${platform_flags[@]}" "$@"