diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-05-21 18:12:28 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-05-21 21:33:19 +0200 |
commit | 12422c9d3872f66c4eac5eb65824238c3e09be1a (patch) | |
tree | 7e6fec89b37b58e9921354f52cfc93448e36bdad | |
parent | d1cdd7ba7a7bf6d0ea2ea5466d4bc978586f1f2f (diff) | |
download | guix-12422c9d3872f66c4eac5eb65824238c3e09be1a.tar.gz |
services: xorg: Allow extra config text to be added verbatim.
* gnu/services/xorg.scm (xorg-configuration-file): Add #:extra-config and honor it. * doc/guix.texi (X Window): Adjust accordingly.
-rw-r--r-- | doc/guix.texi | 6 | ||||
-rw-r--r-- | gnu/services/xorg.scm | 18 |
2 files changed, 18 insertions, 6 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 36e68bbe9a..fd0d29cb8f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5260,7 +5260,7 @@ Usually the X server is started by a login manager. @end deffn @deffn {Monadic Procedure} xorg-configuration-file @ - [#:drivers '()] [#:resolutions '()] + [#:drivers '()] [#:resolutions '()] [#:extra-config '()] Return a configuration file for the Xorg server containing search paths for all the common drivers. @@ -5271,6 +5271,10 @@ 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))}. + +Last, @var{extra-config} is a list of strings or objects appended to the +@code{text-file*} argument list. It is used to pass extra text to be added +verbatim to the configuration file. @end deffn @node Desktop Services diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index a9afa2fef5..e43bfcffe0 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -49,7 +49,8 @@ ;;; ;;; Code: -(define* (xorg-configuration-file #:key (drivers '()) (resolutions '())) +(define* (xorg-configuration-file #:key (drivers '()) (resolutions '()) + (extra-config '())) "Return a configuration file for the Xorg server containing search paths for all the common drivers. @@ -59,7 +60,11 @@ 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))}." +resolutions---e.g., @code{((1024 768) (640 480))}. + +Last, @var{extra-config} is a list of strings or objects appended to the +@code{text-file*} argument list. It is used to pass extra text to be added +verbatim to the configuration file." (define (device-section driver) (string-append " Section \"Device\" @@ -82,7 +87,7 @@ Section \"Screen\" EndSubSection EndSection")) - (text-file* "xserver.conf" " + (apply text-file* "xserver.conf" " Section \"Files\" FontPath \"" font-adobe75dpi "/share/fonts/X11/75dpi\" ModulePath \"" xf86-video-vesa "/lib/xorg/modules/drivers\" @@ -107,10 +112,13 @@ Section \"ServerFlags\" Option \"AllowMouseOpenFail\" \"on\" EndSection " - (string-join (map device-section drivers) "\n") + (string-join (map device-section drivers) "\n") "\n" (string-join (map (cut screen-section <> resolutions) drivers) - "\n"))) + "\n") + + "\n" + extra-config)) (define* (xorg-start-command #:key (guile (canonical-package guile-2.0)) |