From d2247aa363120bac9d22c6a6f8ecfd95541a053a Mon Sep 17 00:00:00 2001 From: Omabot Date: Wed, 19 Aug 2026 02:51:49 -0700 Subject: [PATCH] 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. --- pkgbuilds/hermes-desktop/PKGBUILD | 2 +- pkgbuilds/hermes-desktop/hermes-desktop.sh | 22 ++++++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/pkgbuilds/hermes-desktop/PKGBUILD b/pkgbuilds/hermes-desktop/PKGBUILD index dd80df32..42c786f9 100644 --- a/pkgbuilds/hermes-desktop/PKGBUILD +++ b/pkgbuilds/hermes-desktop/PKGBUILD @@ -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') diff --git a/pkgbuilds/hermes-desktop/hermes-desktop.sh b/pkgbuilds/hermes-desktop/hermes-desktop.sh index 958b5377..dac54445 100644 --- a/pkgbuilds/hermes-desktop/hermes-desktop.sh +++ b/pkgbuilds/hermes-desktop/hermes-desktop.sh @@ -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[@]}" "$@"