#!/bin/sh # GNOME on Wayland does not support the layer-shell protocol that rofi's # native Wayland backend requires, so fall back to Xwayland there. self_path=$(readlink -f "$0" 2>/dev/null || printf '%s\n' "$0") rofi_bin="" for candidate in /usr/bin/rofi /bin/rofi; do candidate_path=$(readlink -f "$candidate" 2>/dev/null || printf '%s\n' "$candidate") if [ -x "$candidate" ] && [ "$candidate_path" != "$self_path" ]; then rofi_bin="$candidate" break fi done if [ -z "$rofi_bin" ]; then printf '%s\n' "rofi: unable to find the system rofi binary" >&2 exit 127 fi if [ "${XDG_SESSION_TYPE:-}" = "wayland" ] && [ -n "${WAYLAND_DISPLAY:-}" ]; then case "${XDG_CURRENT_DESKTOP:-}:${DESKTOP_SESSION:-}" in *GNOME*:*|*:gnome|GNOME:*|gnome:*) set -- -x11 "$@" ;; esac fi exec "$rofi_bin" "$@"