Subject: [PATCH] services: xvnc: Do not specify display number when using inetd

From: "Thompson, David" <[email-masked]>
Date: Wed, 15 Nov 2023 17:53:46 -0500

Hey everyone,

I've been struggling to get VNC working with multiple users. Upon
digging into it I realized that it's because the X display number is
fixed in the xvnc service, even when in inetd mode, so only the first
user who connects gets a desktop and everyone else gets an error. By
omitting the display number when using inetd, xvnc just picks an
unused display and I'm now able to log in with multiple user accounts.

The patch is a one-liner and hopefully not very controversial. :)

- Dave
From a7aa18cbb8050ae228aeca2b4a1f724a797983ac Mon Sep 17 00:00:00 2001
Message-ID: <a7[email-masked]>
From: David Thompson <[email-masked]>
Date: Wed, 15 Nov 2023 17:46:34 -0500
Subject: [PATCH] services: xvnc: Do not specify display number when using
 inetd.

* gnu/services/vnc.scm (xvnc-configuration->command-line-arguments): Omit X
display number when inetd? is #t.

Change-Id: I0fc8e3068f3ae22421e60e96bd40e3b6e477ca99
---
 gnu/services/vnc.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/services/vnc.scm b/gnu/services/vnc.scm
index f90bd7258f..8b9ad0b179 100644
--- a/gnu/services/vnc.scm
+++ b/gnu/services/vnc.scm
@@ -149,7 +149,7 @@ (define (xvnc-configuration->command-line-arguments config)
     (xvnc display-number geometry depth port ipv4? ipv6? password-file xdmcp?
           inetd? frame-rate security-types localhost? log-level extra-options)
     #~(list #$(file-append xvnc "/bin/Xvnc")
-            #$(format #f ":~a" display-number)
+            #$@(if inetd? '() (list (format #f ":~a" display-number)))
             "-geometry" #$geometry
             "-depth" #$(number->string depth)
             #$@(if inetd?

base-commit: d987b75618a62c95c030e7ca53e0972e700c4f06
-- 
2.41.0