[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#34929] [PATCH 06/12] services: xorg: Define and <xorg-configuration
From: |
Julien Lepiller |
Subject: |
[bug#34929] [PATCH 06/12] services: xorg: Define and <xorg-configuration> record type. |
Date: |
Sun, 24 Mar 2019 10:46:02 +0100 |
Le Thu, 21 Mar 2019 00:04:29 +0100,
Ludovic Courtès <address@hidden> a écrit :
I think there's a typo in the subject.
My email client did something weird with your patch :/
> * gnu/services/xorg.scm (<xorg-configuration>): New record type.
> (xorg-configuration-file): Remove.
> (xorg-wrapper): Remove #:modules, #:configuration-file, and
> #:xorg-server; add optional 'config' parameter instead. Adjust
> accordingly.
> (xorg-start-command): Likewise.
> * doc/guix.texi (X Window): Document 'xorg-configuration'. Update
> 'xorg-start-command' documentation. Remove 'xorg-configuration-file'
> documentation.
> ---
> doc/guix.texi | 134
> ++++++++++++++---------------------------- gnu/services/xorg.scm |
> 115 ++++++++++++++++++------------------ 2 files changed, 101
> insertions(+), 148 deletions(-)
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 622740b11c..2363874cf9 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -13310,99 +13310,53 @@ type @code{<sddm-configuration>}.
> @end example
> @end deffn
>
> address@hidden {Scheme Procedure} xorg-start-command @
> - [#:modules %default-xorg-modules] @
> - [#: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 address@hidden for more details on the
> arguments. The result should be -used in place of @code{startx}.
> -
> -Usually the X server is started by a login manager.
> address@hidden deffn
> -
> address@hidden @code{-listen tcp}, for X11.
> -This procedure is useful to override command line options for the X
> server, -such as having it listen to over TCP:
> -
> address@hidden
> -(operating-system
> - ...
> - (services
> - (modify-services %desktop-services
> - (slim-service-type config =>
> - (slim-configuration
> - (inherit config)
> - (startx (xorg-start-command
> - #:xserver-arguments '("-listen" "tcp"))))))))
> address@hidden example
> -
> address@hidden {Scheme Procedure} xorg-configuration-file @
> - [#:modules %default-xorg-modules] @
> - [#:fonts %default-xorg-fonts] @
> - [#:drivers '()] [#:resolutions '()] [#:extra-config '()]
> -Return a configuration file for the Xorg server containing search
> paths for -all the common drivers.
> -
> address@hidden must be a list of @dfn{module packages} loaded by the
> Xorg address@hidden Xorg, configuration
> address@hidden {Data Type} xorg-configuration
> +This data type represents the configuration of the Xorg graphical
> display +server. Note that there is not Xorg service; instead, the X
^ typo
> server is started +by a ``display manager'' such as GDM, SDDM, and
> SLiM. Thus, the configuration +of these display managers aggregates
> an @code{xorg-configuration} record. +
> address@hidden @asis
> address@hidden @code{modules} (default: @code{%default-xorg-modules})
> +This is a list of @dfn{module packages} loaded by the Xorg
> server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard},
> and so on. address@hidden must be a list of font directories to add to
> the server's address@hidden path}.
> -
> address@hidden 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")}. -
> -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 -configuration file. It is used to pass extra text to be
> -added verbatim to the configuration file.
> -
> address@hidden keymap
> address@hidden keyboard layout
> -This procedure is especially useful to configure a different
> keyboard layout -than the default US keymap. For instance, to use
> the ``bépo'' keymap by -default on the display manager:
> -
> address@hidden
> -(define bepo-evdev
> - "Section \"InputClass\"
> - Identifier \"evdev keyboard catchall\"
> - Driver \"evdev\"
> - MatchIsKeyboard \"on\"
> - Option \"xkb_layout\" \"fr\"
> - Option \"xkb_variant\" \"bepo\"
> -EndSection")
> -
> -(operating-system
> - ...
> - (services
> - (modify-services %desktop-services
> - (slim-service-type config =>
> - (slim-configuration
> - (inherit config)
> - (startx (xorg-start-command
> - #:configuration-file
> - (xorg-configuration-file
> - #:extra-config
> - (list bepo-evdev)))))))))
> address@hidden example
> -
> -The @code{MatchIsKeyboard} line specifies that we only apply the
> configuration -to keyboards. Without this line, other devices such
> as touchpad may not work -correctly because they will be attached to
> the wrong driver. In this example, -the user typically used
> @code{setxkbmap fr bepo} to set their favorite keymap -once logged
> in. The first argument corresponds to the layout, while the second
> -argument corresponds to the variant. The @code{xkb_variant} line
> can be omitted -to select the default variant. +
> address@hidden @code{fonts} (default: @code{%default-xorg-fonts})
> +This is a list of font directories to add to the server's @dfn{font
> path}. +
> address@hidden @code{drivers} (default: @code{'()})
> +This 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")}.
> +
> address@hidden @code{resolutions} (default: @code{'()})
> +When @code{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))}.
> +
> address@hidden @code{extra-config} (default: @code{'()})
> +This is a list of strings or objects appended to the configuration
> file. It +is used to pass extra text to be added verbatim to the
> configuration file. +
> address@hidden @code{server} (default: @code{xorg-server})
> +This is the package providing the Xorg server.
> +
> address@hidden @code{server-arguments} (default:
> @code{%default-xorg-server-arguments}) +This is the list of
> command-line arguments to pass to the X server. The +default is
> @code{-nolisten tcp}. address@hidden table
> address@hidden deftp
> +
> address@hidden {Scheme Procedure} xorg-start-command address@hidden
> +Return a @code{startx} script in which the modules, fonts, etc.
> specified +in @var{config}, are available. The result should be used
> in place of address@hidden
> +
> +Usually the X server is started by a login manager.
> @end deffn
>
> +
> @deffn {Scheme Procedure} screen-locker-service @var{package}
> address@hidden Add @var{package}, a package for a screen locker or
> screen saver whose command is @var{program}, to the set of setuid
> programs and add a PAM entry diff --git a/gnu/services/xorg.scm
> b/gnu/services/xorg.scm index 8381a7ed04..3c547c1303 100644
> --- a/gnu/services/xorg.scm
> +++ b/gnu/services/xorg.scm
> @@ -48,7 +48,16 @@
> #:use-module (srfi srfi-9)
> #:use-module (srfi srfi-26)
> #:use-module (ice-9 match)
> - #:export (xorg-configuration-file
> + #:export (xorg-configuration
> + xorg-configuration?
> + xorg-configuration-modules
> + xorg-configuration-fonts
> + xorg-configuration-drivers
> + xorg-configuration-resolutions
> + xorg-configuration-extra-config
> + xorg-configuration-server
> + xorg-configuration-server-arguments
> +
> %default-xorg-modules
> %default-xorg-fonts
> xorg-wrapper
> @@ -122,33 +131,36 @@
> "/share/fonts/X11/misc")
> (file-append font-adobe75dpi "/share/fonts/X11/75dpi")))
>
> -(define* (xorg-configuration-file #:key
> - (modules %default-xorg-modules)
> - (fonts %default-xorg-fonts)
> - (drivers '()) (resolutions '())
> - (extra-config '()))
> - "Return a configuration file for the Xorg server containing search
> paths for -all the common drivers.
> +(define %default-xorg-server-arguments
> + ;; Default command-line arguments for X.
> + '("-nolisten" "tcp"))
>
> address@hidden must be a list of @dfn{module packages} loaded by the
> Xorg -server---e.g., @code{xf86-video-vesa},
> @code{xf86-input-keyboard}, and so on. address@hidden must be a list of
> font directories to add to the server's address@hidden path}.
> +;; Configuration of an Xorg server.
> +(define-record-type* <xorg-configuration>
> + xorg-configuration make-xorg-configuration
> + xorg-configuration?
> + (modules xorg-configuration-modules ;list of packages
> + (default %default-xorg-modules))
> + (fonts xorg-configuration-fonts ;list of packges
^ typo
> + (default %default-xorg-fonts))
> + (drivers xorg-configuration-drivers ;list of strings
> + (default '()))
> + (resolutions xorg-configuration-resolutions ;list of tuples
> + (default '()))
> + (extra-config xorg-configuration-extra-config ;list of strings
> + (default '()))
> + (server xorg-configuration-server ;package
> + (default xorg-server))
> + (server-arguments xorg-configuration-server-arguments ;list of
> strings
> + (default %default-xorg-server-arguments)))
The rest lgtm :)
- [bug#34929] [PATCH 01/12] bootloader: Remove unused 'additional-configuration' field., (continued)
- [bug#34929] [PATCH 01/12] bootloader: Remove unused 'additional-configuration' field., Ludovic Courtès, 2019/03/20
- [bug#34929] [PATCH 05/12] services: xorg: Remove unused #:guile parameter., Ludovic Courtès, 2019/03/20
- [bug#34929] [PATCH 07/12] services: sddm, slim, gdm: Take an <xorg-configuration> record., Ludovic Courtès, 2019/03/20
- [bug#34929] [PATCH 09/12] vm: 'virtualized-operating-system' inherits from the user's bootloader config., Ludovic Courtès, 2019/03/20
- [bug#34929] [PATCH 06/12] services: xorg: Define and <xorg-configuration> record type., Ludovic Courtès, 2019/03/20
- [bug#34929] [PATCH 08/12] services: xorg: Add a 'keyboard-layout' field in <xorg-configuration>., Ludovic Courtès, 2019/03/20
- [bug#34929] [PATCH 10/12] gnu: Add loadkeys-static., Ludovic Courtès, 2019/03/20
- [bug#34929] [PATCH 12/12] doc: Document keyboard layout., Ludovic Courtès, 2019/03/20
- [bug#34929] [PATCH 11/12] system: Initialize console keyboard layout in the initrd., Ludovic Courtès, 2019/03/20
[bug#34929] [PATCH 00/12] Provide uniform keyboard layout configuration, Julien Lepiller, 2019/03/24