[bug#34493] services: xorg: Enable override of xserver-arguments.

Message ID 878syg52cw.fsf@gnu.org
State Accepted
Headers show
Series [bug#34493] services: xorg: Enable override of xserver-arguments. | expand

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

Janneke Nieuwenhuizen Feb. 15, 2019, 6:32 p.m. UTC
Hi!

Here's a patch I have been using in order to use Emacs in lockstep mode;
it took me some time to figure out that listening to TCP is turned off
by default and where to enable it.

Not sure if it warrants a whole example in the documentation, though.
Also, I chose not to move "-logverbose" "-verbose" and"-terminate"
to the default arguments, these are still hardcoded.

Greetings,
janneke

Comments

Ludovic Courtès Feb. 16, 2019, 9:21 p.m. UTC | #1
Hello,

Jan Nieuwenhuizen <janneke@gnu.org> skribis:

> Here's a patch I have been using in order to use Emacs in lockstep mode;
> it took me some time to figure out that listening to TCP is turned off
> by default and where to enable it.

I see; I didn’t know about Lockstep, this looks fun.

> Not sure if it warrants a whole example in the documentation, though.
> Also, I chose not to move "-logverbose" "-verbose" and"-terminate"
> to the default arguments, these are still hardcoded.

OK.

>>From f1685ca38dc0c55056eed0002f194b6081b6339a Mon Sep 17 00:00:00 2001
> From: Jan Nieuwenhuizen <janneke@gnu.org>
> Date: Fri, 15 Feb 2019 19:13:55 +0100
> Subject: [PATCH] services: xorg: Enable override of xserver-arguments.
>
> * gnu/services/xorg.scm (xorg-start-command): Add parameter #:xserver-arguments.
> * doc/guix.texi (X Window): Document it.

[...]

> +@cindex -listen tcp
> +@cindex -nolisten tcp

Maybe: @cindex @code{-listen tcp}, for X11.

Otherwise LGTM, thank you!

Ludo’.
Janneke Nieuwenhuizen Feb. 17, 2019, 7:50 a.m. UTC | #2
Ludovic Courtès writes:

>> +@cindex -listen tcp
>> +@cindex -nolisten tcp
>
> Maybe: @cindex @code{-listen tcp}, for X11.

Nice, done.

> Otherwise LGTM, thank you!

Thanks, pushed to master as 24f11b06bbd2c7f4a236a5ef4b6d9c7bf5be47a8

janneke

Patch

From f1685ca38dc0c55056eed0002f194b6081b6339a Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Fri, 15 Feb 2019 19:13:55 +0100
Subject: [PATCH] services: xorg: Enable override of xserver-arguments.

* gnu/services/xorg.scm (xorg-start-command): Add parameter #:xserver-arguments.
* doc/guix.texi (X Window): Document it.
---
 doc/guix.texi         | 18 ++++++++++++++++++
 gnu/services/xorg.scm |  7 ++++---
 2 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 1ac077d98a..31c99fab03 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -13123,6 +13123,7 @@  type @code{<sddm-configuration>}.
   [#:fonts %default-xorg-fonts] @
   [#:configuration-file (xorg-configuration-file @dots{})] @
   [#:xorg-server @var{xorg-server}]
+  [#:xserver-arguments '("-nolisten" "tcp")]
 Return a @code{startx} script in which @var{modules}, a list of X module
 packages, and @var{fonts}, a list of X font directories, are available.  See
 @code{xorg-wrapper} for more details on the arguments.  The result should be
@@ -13131,6 +13132,23 @@  used in place of @code{startx}.
 Usually the X server is started by a login manager.
 @end deffn
 
+@cindex -listen tcp
+@cindex -nolisten tcp
+This procedure is useful to override command line options for the X server,
+such as having it listen to over TCP:
+
+@example
+(operating-system
+  ...
+  (services
+    (modify-services %desktop-services
+      (slim-service-type config =>
+        (slim-configuration
+          (inherit config)
+          (startx (xorg-start-command
+                   #:xserver-arguments '("-listen" "tcp"))))))))
+@end example
+
 @deffn {Scheme Procedure} xorg-configuration-file @
   [#:modules %default-xorg-modules] @
   [#:fonts %default-xorg-fonts] @
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 1efb275794..50ed0d3b9a 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -290,7 +290,8 @@  in place of @code{/usr/bin/X}."
                              (configuration-file
                               (xorg-configuration-file #:modules modules
                                                        #:fonts fonts))
-                             (xorg-server xorg-server))
+                             (xorg-server xorg-server)
+                             (xserver-arguments '("-nolisten" "tcp")))
   "Return a @code{startx} script in which @var{modules}, a list of X module
 packages, and @var{fonts}, a list of X font directories, are available.  See
 @code{xorg-wrapper} for more details on the arguments.  The result should be
@@ -303,8 +304,8 @@  used in place of @code{startx}."
   (define exp
     ;; Write a small wrapper around the X server.
     #~(apply execl #$X #$X ;; Second #$X is for argv[0].
-             "-logverbose" "-verbose" "-nolisten" "tcp" "-terminate"
-             (cdr (command-line))))
+             "-logverbose" "-verbose" "-terminate" #$@xserver-arguments
+              (cdr (command-line))))
 
   (program-file "startx" exp))
 
-- 
2.20.1