diff options
| author | TLD136 <48219004+TLD136@users.noreply.github.com> | 2024-07-05 18:01:43 +0200 |
|---|---|---|
| committer | TLD136 <48219004+TLD136@users.noreply.github.com> | 2024-07-05 18:01:43 +0200 |
| commit | b6ed88facf5480c2e81ee843bbb8e37958b9d17c (patch) | |
| tree | 50f18ca75474cf1c90094633e7732ebfaf447507 | |
| parent | e3232d595e8fff3e2d64b847e1405099ed476ea9 (diff) | |
| download | decky-installer-b6ed88facf5480c2e81ee843bbb8e37958b9d17c.tar.gz decky-installer-b6ed88facf5480c2e81ee843bbb8e37958b9d17c.zip | |
Make Zenity work as root on Wayland
| -rwxr-xr-x[-rw-r--r--] | gui/user_install_script.sh | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gui/user_install_script.sh b/gui/user_install_script.sh index ff7be0e..504f5ed 100644..100755 --- a/gui/user_install_script.sh +++ b/gui/user_install_script.sh @@ -7,7 +7,14 @@ temp_pass_cleanup() { # removes unhelpful GTK warnings zen_nospam() { - zenity 2> >(grep -v 'Gtk' >&2) "$@" +# If we are on a wayland compositor the Wayland socket will be on /run/user/$UID(probaby 1000)/wayland-[socket-number]. +# When running Zenity under root(sudo) Zenity will assume /run/user/0/wayland-[socket-number]. +# That is not correct because the Wayland compositor is not running as root +if [ $EUID = 0 ] && [ "$XDG_SESSION_TYPE" = "wayland" ]; then + WAYLAND_DISPLAY="$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" XDG_RUNTIME_DIR="/run/user/0" zenity "$@" 2> >(grep -v 'Gtk' >&2) +else + zenity 2> >(grep -v 'Gtk' >&2) "$@" +fi } # check if JQ is installed @@ -58,7 +65,7 @@ if (( $EUID != 0 )); then zen_nospam --title="Decky Installer" --width=300 --height=100 --warning --text "You appear to not be on a deck.\nDecky should still mostly work, but you may not get full functionality." fi - echo "$PASS" | sudo -S -k bash "$0" "$@" # rerun script as root + echo "$PASS" | sudo -E -S -k bash "$0" "$@" # rerun script as root exit 1 fi |
