Index: src/helper/xorguserhelper.cpp
--- src/helper/xorguserhelper.cpp.orig
+++ src/helper/xorguserhelper.cpp
@@ -125,14 +125,16 @@ bool XOrgUserHelper::startServer(const QString &cmd)
 
     // Create pipe for communicating with X server
     // 0 == read from X, 1 == write to X
+/*
     int pipeFds[2];
     if (::pipe(pipeFds) != 0) {
         qCritical("Could not create pipe to start X server");
         return false;
     }
+*/
 
     // Do not leak the read endpoint to the X server process
-    fcntl(pipeFds[0], F_SETFD, FD_CLOEXEC);
+    //fcntl(pipeFds[0], F_SETFD, FD_CLOEXEC);
 
     // Server environment
     // Not setting XORG_RUN_AS_USER_OK=1 will make Xorg require root privileges
@@ -144,11 +146,10 @@ bool XOrgUserHelper::startServer(const QString &cmd)
 
     // Append xauth and display fd to the command
     auto args = QStringList()
-            << QStringLiteral("-auth") << m_xauth.authPath()
-            << QStringLiteral("-displayfd") << QString::number(pipeFds[1]);
+            << QStringLiteral("-auth") << m_xauth.authPath();
 
     // Append VT from environment
-    args << QStringLiteral("vt%1").arg(serverEnv.value(QStringLiteral("XDG_VTNR")));
+    args << QStringLiteral("vt05");
 
     // Command string
     serverCmd += QLatin1Char(' ') + args.join(QLatin1Char(' '));
@@ -156,15 +157,16 @@ bool XOrgUserHelper::startServer(const QString &cmd)
     // Start the server process
     qInfo("Running server: %s", qPrintable(serverCmd));
     if (!startProcess(serverCmd, serverEnv, &m_serverProcess)) {
-        ::close(pipeFds[0]);
+        //::close(pipeFds[0]);
         return false;
     }
 
     // Close the other side of pipe in our process, otherwise reading
     // from it may stuck even X server exit
-    ::close(pipeFds[1]);
+    //::close(pipeFds[1]);
 
     // Read the display number from the pipe
+/*
     QFile readPipe;
     if (!readPipe.open(pipeFds[0], QIODevice::ReadOnly)) {
         qCritical("Failed to open pipe to start X Server");
@@ -178,9 +180,10 @@ bool XOrgUserHelper::startServer(const QString &cmd)
         ::close(pipeFds[0]);
         return false;
     }
-    displayNumber.prepend(QByteArray(":"));
-    displayNumber.remove(displayNumber.size() -1, 1); // trim trailing whitespace
-    m_display = QString::fromLocal8Bit(displayNumber);
+*/
+    //displayNumber.prepend(QByteArray(":"));
+    //displayNumber.remove(displayNumber.size() -1, 1); // trim trailing whitespace
+    m_display = QString::fromLocal8Bit(":0");
     qDebug("X11 display: %s", qPrintable(m_display));
     Q_EMIT displayChanged(m_display);
 
@@ -193,7 +196,7 @@ bool XOrgUserHelper::startServer(const QString &cmd)
     }
 
     // Close our pipe
-    ::close(pipeFds[0]);
+    //::close(pipeFds[0]);
 
     return true;
 }
