diff --git a/CHANGELOG.md b/CHANGELOG.md index 7359727..4368d0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ Changelog If by accident I have forgotten to credit someone in the CHANGELOG, email me and I will fix it. +__3.3.1__ +--------- + +* Added support for _AppImage_ dynamic executable paths. - _Michael Klein_ + __3.3.0__ --------- diff --git a/singleapplication_p.cpp b/singleapplication_p.cpp index 1339728..1a061f2 100644 --- a/singleapplication_p.cpp +++ b/singleapplication_p.cpp @@ -144,8 +144,17 @@ void SingleApplicationPrivate::genBlockServerName() } if( ! (options & SingleApplication::Mode::ExcludeAppPath) ){ -#ifdef Q_OS_WIN +#if defined(Q_OS_WIN) appData.addData( SingleApplication::app_t::applicationFilePath().toLower().toUtf8() ); +#elif defined(Q_OS_LINUX) + // If the application is running as an AppImage then the APPIMAGE env var should be used + // instead of applicationPath() as each instance is launched with its own executable path + const QByteArray appImagePath = qgetenv( "APPIMAGE" ); + if( appImagePath.isEmpty() ){ // Not running as AppImage: use path to executable file + appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() ); + } else { // Running as AppImage: Use absolute path to AppImage file + appData.addData( appImagePath ); + }; #else appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() ); #endif