guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/03: services: xorg: Make 'xorg-configuration-file' public.


From: Ludovic Courtès
Subject: 02/03: services: xorg: Make 'xorg-configuration-file' public.
Date: Thu, 21 May 2015 19:33:39 +0000

civodul pushed a commit to branch master
in repository guix.

commit d1cdd7ba7a7bf6d0ea2ea5466d4bc978586f1f2f
Author: Ludovic Courtès <address@hidden>
Date:   Thu May 21 18:02:01 2015 +0200

    services: xorg: Make 'xorg-configuration-file' public.
    
    * gnu/services/xorg.scm (xorg-configuration-file): New procedure, with code
      formerly in 'xorg-start-command'.
      (xorg-start-command): Remove #:drivers and #:resolutions; add
      #:configuration-file; use it as well as 'xorg-configuration-file'.
---
 doc/guix.texi         |   16 +++++++++++++---
 gnu/services/xorg.scm |   36 ++++++++++++++++++++++--------------
 2 files changed, 35 insertions(+), 17 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 2e245bf..36e68bb 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -5250,13 +5250,23 @@ The G-Expression denoting the default SLiM theme and 
its name.
 @end defvr
 
 @deffn {Monadic Procedure} xorg-start-command [#:guile] @
-  [#:drivers '()] [#:resolutions '()] [#:xorg-server @var{xorg-server}]
+  [#:configuration-file #f] [#:xorg-server @var{xorg-server}]
 Return a derivation that builds a @var{guile} script to start the X server
-from @var{xorg-server}.  Usually the X server is started by a login manager.
+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 deffn
+
address@hidden {Monadic Procedure} xorg-configuration-file @
+  [#:drivers '()] [#:resolutions '()]
+Return a configuration file for the Xorg server containing search paths for
+all the common drivers.
 
 @var{drivers} must be either the empty list, in which case Xorg chooses a
 graphics driver automatically, or a list of driver names that will be tried in
-this order---e.g., @code{("modesetting" "vesa")}.
+this order---e.g., @code{(\"modesetting\" \"vesa\")}.
 
 Likewise, when @var{resolutions} is the empty list, Xorg chooses an
 appropriate screen resolution; otherwise, it must be a list of
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 4821614..a9afa2f 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -37,7 +37,8 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match)
-  #:export (xorg-start-command
+  #:export (xorg-configuration-file
+            xorg-start-command
             %default-slim-theme
             %default-slim-theme-name
             slim-service))
@@ -48,12 +49,9 @@
 ;;;
 ;;; Code:
 
-(define* (xorg-start-command #:key
-                             (guile (canonical-package guile-2.0))
-                             (xorg-server xorg-server)
-                             (drivers '()) (resolutions '()))
-  "Return a derivation that builds a @var{guile} script to start the X server
-from @var{xorg-server}.  Usually the X server is started by a login manager.
+(define* (xorg-configuration-file #:key (drivers '()) (resolutions '()))
+  "Return a configuration file for the Xorg server containing search paths for
+all the common drivers.
 
 @var{drivers} must be either the empty list, in which case Xorg chooses a
 graphics driver automatically, or a list of driver names that will be tried in
@@ -62,7 +60,6 @@ this order---e.g., @code{(\"modesetting\" \"vesa\")}.
 Likewise, when @var{resolutions} is the empty list, Xorg chooses an
 appropriate screen resolution; otherwise, it must be a list of
 resolutions---e.g., @code{((1024 768) (640 480))}."
-
   (define (device-section driver)
     (string-append "
 Section \"Device\"
@@ -78,15 +75,14 @@ Section \"Screen\"
   SubSection \"Display\"
     Modes "
   (string-join (map (match-lambda
-                     ((x y)
-                      (string-append "\"" (number->string x)
-                                     "x" (number->string y) "\"")))
+                      ((x y)
+                       (string-append "\"" (number->string x)
+                                      "x" (number->string y) "\"")))
                     resolutions)) "
   EndSubSection
 EndSection"))
 
-  (define (xserver.conf)
-    (text-file* "xserver.conf" "
+  (text-file* "xserver.conf" "
 Section \"Files\"
   FontPath \"" font-adobe75dpi "/share/fonts/X11/75dpi\"
   ModulePath \"" xf86-video-vesa "/lib/xorg/modules/drivers\"
@@ -116,7 +112,19 @@ EndSection
                     drivers)
                "\n")))
 
-  (mlet %store-monad ((config (xserver.conf)))
+(define* (xorg-start-command #:key
+                             (guile (canonical-package guile-2.0))
+                             configuration-file
+                             (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."
+  (mlet %store-monad ((config (if configuration-file
+                                  (return configuration-file)
+                                  (xorg-configuration-file))))
     (define script
       ;; Write a small wrapper around the X server.
       #~(begin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]