diff options
Diffstat (limited to 'src/main-lib/defaultconfiguration.cpp')
-rw-r--r-- | src/main-lib/defaultconfiguration.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/main-lib/defaultconfiguration.cpp b/src/main-lib/defaultconfiguration.cpp index c79da1d7..6ee6b2e0 100644 --- a/src/main-lib/defaultconfiguration.cpp +++ b/src/main-lib/defaultconfiguration.cpp @@ -42,6 +42,7 @@ #include <QFileInfo> #include <QCoreApplication> +#include <QFile> #include <QDebug> #include <QtAppManCommon/logging.h> @@ -447,7 +448,21 @@ int DefaultConfiguration::quickLaunchRuntimesPerContainer() const QString DefaultConfiguration::waylandSocketName() const { - return value<QString>("wayland-socket-name"); + const QString socket = m_clp.value(qSL("wayland-socket-name")); // get the default value + if (!socket.isEmpty()) + return socket; + + const char *envName = "WAYLAND_DISPLAY"; + if (qEnvironmentVariableIsSet(envName)) + return qEnvironmentVariable(envName); + + const QString lockPattern = qEnvironmentVariable("XDG_RUNTIME_DIR") + qSL("/qtam-wayland-%1.lock"); + for (int i = 0; i < 32; ++i) { + QFile lock(lockPattern.arg(i)); + if (lock.open(QIODevice::ReadWrite | QIODevice::NewOnly)) + return qSL("qtam-wayland-%1").arg(i); + } + return QString(); } QString DefaultConfiguration::telnetAddress() const |