summaryrefslogtreecommitdiffstats
path: root/src/main-lib/defaultconfiguration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main-lib/defaultconfiguration.cpp')
-rw-r--r--src/main-lib/defaultconfiguration.cpp17
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