[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03/08: gnu: services: Refactor to separate X and startx wrappers.
From: |
Andy Wingo |
Subject: |
03/08: gnu: services: Refactor to separate X and startx wrappers. |
Date: |
Fri, 25 Aug 2017 10:02:48 -0400 (EDT) |
wingo pushed a commit to branch master
in repository guix.
commit 92753a8badf7ffd6c58b2164abfdb5dc576b6197
Author: Andy Wingo <address@hidden>
Date: Tue Aug 22 17:43:48 2017 +0200
gnu: services: Refactor to separate X and startx wrappers.
* gnu/services/xorg.scm (xorg-wrapper): New public function.
(xorg-start-command): Use xorg-wrapper.
---
gnu/services/xorg.scm | 55 +++++++++++++++++++++++++++++++++------------------
1 file changed, 36 insertions(+), 19 deletions(-)
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 5bae8c1..cde6c4d 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -1,4 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Andy Wingo <address@hidden>
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <address@hidden>
;;; Copyright © 2015 Sou Bunnbu <address@hidden>
;;;
@@ -41,6 +42,7 @@
#:use-module (ice-9 match)
#:export (xorg-configuration-file
%default-xorg-modules
+ xorg-wrapper
xorg-start-command
xinitrc
@@ -184,36 +186,51 @@ in @var{modules}."
files)
#t))))
-(define* (xorg-start-command #:key
- (guile (canonical-package guile-2.0))
- (configuration-file (xorg-configuration-file))
- (modules %default-xorg-modules)
- (xorg-server xorg-server))
+(define* (xorg-wrapper #:key
+ (guile (canonical-package guile-2.0))
+ (configuration-file (xorg-configuration-file))
+ (modules %default-xorg-modules)
+ (xorg-server xorg-server))
"Return a derivation that builds a @var{guile} script to start the X server
from @var{xorg-server}. @var{configuration-file} is the server configuration
file or a derivation that builds it; when omitted, the result of
address@hidden is used.
-
-Usually the X server is started by a login manager."
address@hidden is used. The resulting script should be used
+in place of @code{/usr/bin/X}."
(define exp
;; Write a small wrapper around the X server.
#~(begin
(setenv "XORG_DRI_DRIVER_PATH" (string-append #$mesa "/lib/dri"))
(setenv "XKB_BINDIR" (string-append #$xkbcomp "/bin"))
- (apply execl (string-append #$xorg-server "/bin/X")
- (string-append #$xorg-server "/bin/X") ;argv[0]
- "-logverbose" "-verbose"
- "-xkbdir" (string-append #$xkeyboard-config "/share/X11/xkb")
- "-config" #$configuration-file
- "-configdir" #$(xorg-configuration-directory modules)
- "-nolisten" "tcp" "-terminate"
+ (let ((X (string-append #$xorg-server "/bin/X")))
+ (apply execl X X
+ "-xkbdir" (string-append #$xkeyboard-config "/share/X11/xkb")
+ "-config" #$configuration-file
+ "-configdir" #$(xorg-configuration-directory modules)
+ (cdr (command-line))))))
+
+ (program-file "X-wrapper" exp))
- ;; Note: SLiM and other display managers add the
- ;; '-auth' flag by themselves.
- (cdr (command-line)))))
+(define* (xorg-start-command #:key
+ (guile (canonical-package guile-2.0))
+ (configuration-file (xorg-configuration-file))
+ (modules %default-xorg-modules)
+ (xorg-server xorg-server))
+ "Return a derivation that builds a @code{startx} script in which a number of
+X modules are available. See @code{xorg-wrapper} for more details on the
+arguments. The result should be used in place of @code{startx}."
+ (define X
+ (xorg-wrapper #:guile guile
+ #:configuration-file configuration-file
+ #:modules modules
+ #:xorg-server xorg-server))
+ (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))))
- (program-file "start-xorg" exp))
+ (program-file "startx" exp))
(define* (xinitrc #:key
(guile (canonical-package guile-2.0))
- branch master updated (cb8b14f -> 6e99c01), Andy Wingo, 2017/08/25
- 02/08: gnu: Add AccountsService service to desktop services., Andy Wingo, 2017/08/25
- 05/08: gnu: gdm: Use proper elogind check, and wrap environment., Andy Wingo, 2017/08/25
- 07/08: gnu: services: Log debug messages to /var/log/debug., Andy Wingo, 2017/08/25
- 01/08: gnu: accountsservice: Properly reference shadow., Andy Wingo, 2017/08/25
- 03/08: gnu: services: Refactor to separate X and startx wrappers.,
Andy Wingo <=
- 04/08: gnu: gdm: Look for sessions in /run/current-system., Andy Wingo, 2017/08/25
- 08/08: gnu: Add draft of gdm service., Andy Wingo, 2017/08/25
- 06/08: gnu: gdm: Fix environment of worker processes and sessions., Andy Wingo, 2017/08/25