@@ -117,6 +117,9 @@ APPIMAGE_GTK_THEME="${APPIMAGE_GTK_THEME:-"Adwaita:$GTK_THEME_VARIANT"}" # Allow
117
117
CACHEDIR="$( mktemp --tmpdir --directory .AppRun.XXXXXXXX) "
118
118
119
119
export APPDIR="${APPDIR:- " $( dirname " $( realpath " $0 " ) " ) " } " # Workaround to run extracted AppImage
120
+ export OLDPATH="$PATH "
121
+ export PATH="$APPDIR /usr/bin:$PATH "
122
+
120
123
export GTK_DATA_PREFIX="$APPDIR "
121
124
export GTK_THEME="$APPIMAGE_GTK_THEME " # Custom themes are broken
122
125
export GDK_BACKEND=x11 # Crash with Wayland backend on Wayland
@@ -212,3 +215,52 @@ for directory in "${PATCH_ARRAY[@]}"; do
212
215
patchelf --set-rpath ' $ORIGIN/../../../..' " $APPDIR /$file "
213
216
done < <( find " $directory " -name ' *.so' -print0)
214
217
done
218
+
219
+ echo " Add a wrapper for some binaries"
220
+ # Note: some files on system must not be started with overrides above
221
+ # See https://github.com/linuxdeploy/linuxdeploy-plugin-gtk/issues/11#issuecomment-761788064
222
+ BINDIR=" $APPDIR /usr/bin"
223
+ EOAFILE=" $BINDIR /exec-outside-appimage"
224
+ mkdir -p " $BINDIR "
225
+ cat > " $EOAFILE " << \EOF
226
+ #! /bin/bash
227
+
228
+ export PATH="$OLDPATH "
229
+
230
+ unset OLDPATH
231
+ unset GTK_DATA_PREFIX
232
+ unset GTK_THEME
233
+ unset GDK_BACKEND
234
+ unset XDG_DATA_DIRS
235
+ unset GSETTINGS_SCHEMA_DIR
236
+ unset GTK_EXE_PREFIX
237
+ unset GTK_PATH
238
+ unset GTK_IM_MODULE_DIR
239
+ unset GTK_IM_MODULE_FILE
240
+ unset GDK_PIXBUF_MODULEDIR
241
+ unset GDK_PIXBUF_MODULE_FILE
242
+
243
+ # Enter 'if' when '$0 ' is 'exec-outside-appimage' script itself
244
+ # Symbolic links to 'exec-outside-appimage' should not enter in 'if'
245
+ app="$( basename " $0 " ) "
246
+ if ! command -v "$app " &> /dev/null; then
247
+ app="$1 "
248
+ shift
249
+ if [ -z "$app " ]; then
250
+ echo "$0 : this script requires a command as argument"
251
+ exit 1
252
+ elif ! command -v "$app " &> /dev/null; then
253
+ echo "'$app ' not found in PATH ($PATH )"
254
+ exit 1
255
+ fi
256
+ fi
257
+ "$app " "$@ "
258
+ EOF
259
+ chmod $verbose 755 " $EOAFILE "
260
+ EOA_ARRAY=(
261
+ " xdg-open"
262
+ " eog"
263
+ )
264
+ for file in " ${EOA_ARRAY[@]} " ; do
265
+ ln $verbose -s " $( basename " $EOAFILE " ) " " $BINDIR /$file "
266
+ done
0 commit comments