Updating AppImage logic to support desktopintegration again #3793
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixing a regression which did not use the official AppRun executable... and thus our openshot-qt.wrapper was never called, which is what enables desktopintegration. I know this must still have some issues, since I'm having to do some of my own bootstrapping (which I should need to do, in order for libopenshot to be found at runtime). But this seems to work on all the distros I've tested on so far.
The basic flow:
1 - AppImage is mounted and executes
AppRun
in the root of our image. This is the official version of AppRun executable, and is a binary file.2 - AppRun searches our
*.desktop file
, and locates theopenshot-qt-launch.wrapper
line, and then searches for that file, and executes it. This file is thedesktopintegration
file packaged along with AppImage code (renamed as openshot-qt-launch). It prompts the user to create a launcher, and then finally, removes the.wrapper
and callsopenshot-qt-launch
.3 -
openshot-qt-launch
is a renamed version ofinstaller/launch-linux.sh
. This exportsLD_LIBRARY_PATH
andQT_PLUGIN_PATH
to the current directory (i.e. theusr/bin
folder in our AppImage), and then finally, executesusr/bin/openshot-qt
, which is a binary created by cx_freeze (and is the official entry point to our source code). Without this script, libopenshot and Qt fail to be found inside the AppImage... which is strange and incorrect. But it's a simple work-around for now.Finally, I also enabled auto-transform, which enables transform for any selected clip. To make it disappear, simple unselect all clips. I think it really improves visibility on transforming elements during video editing. It can be disabled in the Preferences.