From unknown Sat Aug 16 00:33:15 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#29447 <29447@debbugs.gnu.org> To: bug#29447 <29447@debbugs.gnu.org> Subject: Status: [PATCH 0/2] Make Xorg modules configurable, remove WindowMaker dependency Reply-To: bug#29447 <29447@debbugs.gnu.org> Date: Sat, 16 Aug 2025 07:33:15 +0000 retitle 29447 [PATCH 0/2] Make Xorg modules configurable, remove WindowMake= r dependency reassign 29447 guix-patches submitter 29447 Ludovic Court=C3=A8s severity 29447 normal tag 29447 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 25 17:28:01 2017 Received: (at submit) by debbugs.gnu.org; 25 Nov 2017 22:28:01 +0000 Received: from localhost ([127.0.0.1]:58297 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eIivZ-0005HB-1H for submit@debbugs.gnu.org; Sat, 25 Nov 2017 17:28:01 -0500 Received: from eggs.gnu.org ([208.118.235.92]:37387) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eIivW-0005Gx-8v for submit@debbugs.gnu.org; Sat, 25 Nov 2017 17:27:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eIivQ-0000H9-6O for submit@debbugs.gnu.org; Sat, 25 Nov 2017 17:27:53 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:51565) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eIivQ-0000H5-30 for submit@debbugs.gnu.org; Sat, 25 Nov 2017 17:27:52 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56590) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eIivO-0006Wy-OI for guix-patches@gnu.org; Sat, 25 Nov 2017 17:27:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eIivN-0000G7-Ua for guix-patches@gnu.org; Sat, 25 Nov 2017 17:27:50 -0500 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:34150) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eIivL-0000EQ-S7; Sat, 25 Nov 2017 17:27:47 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=41000 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eIivL-0000QI-AR; Sat, 25 Nov 2017 17:27:47 -0500 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= To: guix-patches@gnu.org Subject: [PATCH 0/2] Make Xorg modules configurable, remove WindowMaker dependency Date: Sat, 25 Nov 2017 23:27:37 +0100 Message-Id: <20171125222737.3255-1-ludo@gnu.org> X-Mailer: git-send-email 2.15.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit Cc: =?UTF-8?q?Ludovic=20Court=C3=A8s?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) Hi, The first patch here cleans up ‘xorg-configuration-file’ et al. such that users can pass a list of modules to use (until now the list of modules was hard-coded in ‘xorg-configuration-file’.) The second one removes WindowMaker as the default fallback session. Instead, the default is to look for a .desktop file at run time in the user and system profiles. The downside is that if no package provides a .dekstop file, then login fails. I think that’s acceptable though, because people expect to specify a list of window managers in the ‘packages’ field anyway, as show in the lightweight-desktop example. Thoughts? Ludo’. Ludovic Courtès (2): services: xorg: Allow users to specify a list of modules. services: xorg: Remove WindowMaker as a default fallback. doc/guix.texi | 26 ++++-- gnu/services/xorg.scm | 244 +++++++++++++++++++++++++++++++++++--------------- 2 files changed, 189 insertions(+), 81 deletions(-) -- 2.15.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 25 17:28:57 2017 Received: (at 29447) by debbugs.gnu.org; 25 Nov 2017 22:28:57 +0000 Received: from localhost ([127.0.0.1]:58303 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eIiwT-0005J4-As for submit@debbugs.gnu.org; Sat, 25 Nov 2017 17:28:57 -0500 Received: from eggs.gnu.org ([208.118.235.92]:37759) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eIiwR-0005Iq-SI for 29447@debbugs.gnu.org; Sat, 25 Nov 2017 17:28:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eIiwL-0000w4-Sx for 29447@debbugs.gnu.org; Sat, 25 Nov 2017 17:28:50 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_40,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:34168) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eIiwJ-0000uo-Nm; Sat, 25 Nov 2017 17:28:47 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=41092 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eIiwJ-0001gm-2y; Sat, 25 Nov 2017 17:28:47 -0500 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= To: 29447@debbugs.gnu.org Subject: [PATCH 2/2] services: xorg: Remove WindowMaker as a default fallback. Date: Sat, 25 Nov 2017 23:28:39 +0100 Message-Id: <20171125222839.3349-2-ludo@gnu.org> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171125222839.3349-1-ludo@gnu.org> References: <20171125222839.3349-1-ludo@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 29447 Cc: =?UTF-8?q?Ludovic=20Court=C3=A8s?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) * gnu/services/xorg.scm (xinitrc)[builder](system-profile) (user-profile): New variables. (xsession-command, find-session): New procedures. When FALLBACK-SESSION is #f, find a valid session at run time. --- gnu/services/xorg.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 8 deletions(-) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index c71279387..c13d6bf21 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -296,10 +296,15 @@ used in place of @code{startx}." fallback-session) "Return a system-wide xinitrc script that starts the specified X session, which should be passed to this script as the first argument. If not, the -@var{fallback-session} will be used." +@var{fallback-session} will be used or, if @var{fallback-session} is false, a +desktop session from the system or user profile will be used." (define builder #~(begin - (use-modules (ice-9 match)) + (use-modules (ice-9 match) + (ice-9 regex) + (ice-9 ftw) + (srfi srfi-1) + (srfi srfi-26)) (define (close-all-fdes) ;; Close all the open file descriptors except 0 to 2. @@ -323,16 +328,59 @@ which should be passed to this script as the first argument. If not, the (execl shell shell "--login" "-c" (string-join (cons command args))))) + (define system-profile + "/run/current-system/profile") + + (define user-profile + (and=> (getpw (getuid)) + (lambda (pw) + (string-append (passwd:dir pw) "/.guix-profile")))) + + (define (xsession-command desktop-file) + ;; Read from DESKTOP-FILE its X session command and return it as a + ;; list. + (define exec-regexp + (make-regexp "^[[:blank:]]*Exec=(.*)$")) + + (call-with-input-file desktop-file + (lambda (port) + (let loop () + (match (read-line port) + ((? eof-object?) #f) + ((= (cut regexp-exec exec-regexp <>) result) + (if result + (string-tokenize (match:substring result 1)) + (loop)))))))) + + (define (find-session profile) + ;; Return an X session command from PROFILE or #f if none was found. + (let ((directory (string-append profile "/share/xsessions"))) + (match (scandir directory + (cut string-suffix? ".desktop" <>)) + ((or () #f) + #f) + ((sessions ...) + (any xsession-command + (map (cut string-append directory "/" <>) + sessions)))))) + (let* ((home (getenv "HOME")) (xsession-file (string-append home "/.xsession")) (session (match (command-line) - ((_) (list #$fallback-session)) - ((_ x ..1) x)))) + ((_) + #$(if fallback-session + #~(list #$fallback-session) + #f)) + ((_ x ..1) + x)))) (if (file-exists? xsession-file) ;; Run ~/.xsession when it exists. (apply exec-from-login-shell xsession-file session) - ;; Otherwise, start the specified session. - (apply exec-from-login-shell session))))) + ;; Otherwise, start the specified session or a fallback. + (apply exec-from-login-shell + (or session + (find-session user-profile) + (find-session system-profile))))))) (program-file "xinitrc" builder)) @@ -450,8 +498,7 @@ reboot_cmd " shepherd "/sbin/reboot\n" (theme %default-slim-theme) (theme-name %default-slim-theme-name) (xauth xauth) (shepherd shepherd) (bash bash) - (auto-login-session (file-append windowmaker - "/bin/wmaker")) + (auto-login-session #f) (startx (xorg-start-command))) "Return a service that spawns the SLiM graphical login manager, which in turn starts the X display server with @var{startx}, a command as returned by -- 2.15.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 25 17:28:59 2017 Received: (at 29447) by debbugs.gnu.org; 25 Nov 2017 22:28:59 +0000 Received: from localhost ([127.0.0.1]:58305 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eIiwU-0005JI-Mv for submit@debbugs.gnu.org; Sat, 25 Nov 2017 17:28:59 -0500 Received: from eggs.gnu.org ([208.118.235.92]:37768) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eIiwT-0005Is-0k for 29447@debbugs.gnu.org; Sat, 25 Nov 2017 17:28:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eIiwM-0000wG-1k for 29447@debbugs.gnu.org; Sat, 25 Nov 2017 17:28:51 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:34165) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eIiwI-0000tY-Kn; Sat, 25 Nov 2017 17:28:46 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=41092 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eIiwH-0001gm-Sd; Sat, 25 Nov 2017 17:28:46 -0500 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= To: 29447@debbugs.gnu.org Subject: [PATCH 1/2] services: xorg: Allow users to specify a list of modules. Date: Sat, 25 Nov 2017 23:28:38 +0100 Message-Id: <20171125222839.3349-1-ludo@gnu.org> X-Mailer: git-send-email 2.15.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 29447 Cc: =?UTF-8?q?Ludovic=20Court=C3=A8s?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) * gnu/services/xorg.scm (%default-xorg-fonts): New variable. (xorg-configuration-file): Add #:modules and #:fonts. Rewrite to return a 'computed-file' that honors MODULES and FONTS. (xorg-wrapper): Pass #:modules to 'xorg-configuration-file'. (xorg-start-command): Add #:fonts. Pass #:fonts and #:modules to 'xorg-configuration-file'. * doc/guix.texi (X Window): Adjust documentation of 'xorg-start-command' and 'xorg-configuration-file'. --- doc/guix.texi | 26 +++++--- gnu/services/xorg.scm | 181 ++++++++++++++++++++++++++++++++------------------ 2 files changed, 134 insertions(+), 73 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index f8188fbb1..f54a07c8d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11142,31 +11142,41 @@ The G-Expression denoting the default SLiM theme and its name. @end defvr @deffn {Scheme Procedure} xorg-start-command [#:guile] @ - [#: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}. @var{configuration-file} is the server configuration -file or a derivation that builds it; when omitted, the result of -@code{xorg-configuration-file} is used. + [#:modules %default-xorg-modules] @ + [#:fonts %default-xorg-fonts] @ + [#:configuration-file (xorg-configuration-file @dots{})] @ + [#:xorg-server @var{xorg-server}] +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 +used in place of @code{startx}. Usually the X server is started by a login manager. @end deffn @deffn {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. +@var{modules} 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. +@var{fonts} must be a list of font directories to add to the server's +@dfn{font path}. + @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 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. +configuration file. It is used to pass extra text to be +added verbatim to the configuration file. @end deffn @deffn {Scheme Procedure} screen-locker-service @var{package} [@var{name}] diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index c5a1a0d42..c71279387 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Andy Wingo -;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015 Sou Bunnbu ;;; ;;; This file is part of GNU Guix. @@ -45,6 +45,7 @@ #:use-module (ice-9 match) #:export (xorg-configuration-file %default-xorg-modules + %default-xorg-fonts xorg-wrapper xorg-start-command xinitrc @@ -70,11 +71,50 @@ ;;; ;;; Code: -(define* (xorg-configuration-file #:key (drivers '()) (resolutions '()) +(define %default-xorg-modules + ;; Default list of modules loaded by the server. Note that the order + ;; matters since it determines which driver is going to be used when there's + ;; a choice. + (list xf86-video-vesa + xf86-video-fbdev + xf86-video-ati + xf86-video-cirrus + xf86-video-intel + xf86-video-mach64 + xf86-video-nouveau + xf86-video-nv + xf86-video-sis + + ;; Libinput is the new thing and is recommended over evdev/synaptics: + ;; . + xf86-input-libinput + + xf86-input-evdev + xf86-input-keyboard + xf86-input-mouse + xf86-input-synaptics)) + +(define %default-xorg-fonts + ;; Default list of fonts available to the X server. + (list (file-append font-alias "/share/fonts/X11/75dpi") + (file-append font-alias "/share/fonts/X11/100dpi") + (file-append font-alias "/share/fonts/X11/misc") + (file-append font-alias "/share/fonts/X11/cyrillic") + (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. +@var{modules} 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. +@var{fonts} must be a list of font directories to add to the server's +@dfn{font path}. + @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\")}. @@ -84,17 +124,32 @@ 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{mixed-text-file} argument list. It is used to pass extra text to be +configuration file. It is used to pass extra text to be added verbatim to the configuration file." - (define (device-section driver) - (string-append " + (define all-modules + ;; 'xorg-server' provides 'fbdevhw.so' etc. + (append modules (list xorg-server))) + + (define build + #~(begin + (use-modules (ice-9 match) + (srfi srfi-1) + (srfi srfi-26)) + + (call-with-output-file #$output + (lambda (port) + (define drivers + '#$drivers) + + (define (device-section driver) + (string-append " Section \"Device\" Identifier \"device-" driver "\" Driver \"" driver "\" EndSection")) - (define (screen-section driver resolutions) - (string-append " + (define (screen-section driver resolutions) + (string-append " Section \"Screen\" Identifier \"screen-" driver "\" Device \"device-" driver "\" @@ -108,65 +163,56 @@ Section \"Screen\" EndSubSection EndSection")) - (apply mixed-text-file "xserver.conf" " -Section \"Files\" - FontPath \"" font-alias "/share/fonts/X11/75dpi\" - FontPath \"" font-alias "/share/fonts/X11/100dpi\" - FontPath \"" font-alias "/share/fonts/X11/misc\" - FontPath \"" font-alias "/share/fonts/X11/cyrillic\" - FontPath \"" font-adobe75dpi "/share/fonts/X11/75dpi\" - ModulePath \"" xf86-video-vesa "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-fbdev "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-ati "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-cirrus "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-intel "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-mach64 "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-nouveau "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-nv "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-sis "/lib/xorg/modules/drivers\" + (define (expand modules) + ;; Append to MODULES the relevant /lib/xorg/modules + ;; sub-directories. + (append-map (lambda (module) + (filter-map (lambda (directory) + (let ((full (string-append module + directory))) + (and (file-exists? full) + full))) + '("/lib/xorg/modules/drivers" + "/lib/xorg/modules/input" + "/lib/xorg/modules/multimedia" + "/lib/xorg/modules/extensions"))) + modules)) - # Libinput is the new thing and is recommended over evdev/synaptics - # by those who know: - # . - ModulePath \"" xf86-input-libinput "/lib/xorg/modules/input\" - - ModulePath \"" xf86-input-evdev "/lib/xorg/modules/input\" - ModulePath \"" xf86-input-keyboard "/lib/xorg/modules/input\" - ModulePath \"" xf86-input-mouse "/lib/xorg/modules/input\" - ModulePath \"" xf86-input-synaptics "/lib/xorg/modules/input\" - ModulePath \"" xorg-server "/lib/xorg/modules\" - ModulePath \"" xorg-server "/lib/xorg/modules/drivers\" - ModulePath \"" xorg-server "/lib/xorg/modules/extensions\" - ModulePath \"" xorg-server "/lib/xorg/modules/multimedia\" -EndSection + (display "Section \"Files\"\n" port) + (for-each (lambda (font) + (format port " FontPath \"~a\"~%" font)) + '#$fonts) + (for-each (lambda (module) + (format port + " ModulePath \"~a\"~%" + module)) + (append (expand '#$all-modules) + ;; For fbdevhw.so and so on. + (list #$(file-append xorg-server + "/lib/xorg/modules")))) + (display "EndSection\n" port) + (display " Section \"ServerFlags\" Option \"AllowMouseOpenFail\" \"on\" -EndSection -" - (string-join (map device-section drivers) "\n") "\n" - (string-join (map (cut screen-section <> resolutions) - drivers) - "\n") +EndSection\n" port) - "\n" - extra-config)) + (display (string-join (map device-section drivers) "\n") + port) + (newline port) + (display (string-join + (map (cut screen-section <> '#$resolutions) + drivers) + "\n") + port) + (newline port) + + (for-each (lambda (config) + (display config port)) + '#$extra-config))))) + + (computed-file "xserver.conf" build)) -(define %default-xorg-modules - (list xf86-video-vesa - xf86-video-fbdev - xf86-video-ati - xf86-video-cirrus - xf86-video-intel - xf86-video-mach64 - xf86-video-nouveau - xf86-video-nv - xf86-video-sis - xf86-input-libinput - xf86-input-evdev - xf86-input-keyboard - xf86-input-mouse - xf86-input-synaptics)) (define (xorg-configuration-directory modules) "Return a directory that contains the @code{.conf} files for X.org that @@ -196,8 +242,9 @@ in @var{modules}." (define* (xorg-wrapper #:key (guile (canonical-package guile-2.0)) - (configuration-file (xorg-configuration-file)) (modules %default-xorg-modules) + (configuration-file (xorg-configuration-file + #:modules 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 @@ -221,12 +268,16 @@ in place of @code{/usr/bin/X}." (define* (xorg-start-command #:key (guile (canonical-package guile-2.0)) - (configuration-file (xorg-configuration-file)) (modules %default-xorg-modules) + (fonts %default-xorg-fonts) + (configuration-file + (xorg-configuration-file #:modules modules + #:fonts fonts)) (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}." + "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 +used in place of @code{startx}." (define X (xorg-wrapper #:guile guile #:configuration-file configuration-file -- 2.15.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 25 17:40:17 2017 Received: (at 29447) by debbugs.gnu.org; 25 Nov 2017 22:40:17 +0000 Received: from localhost ([127.0.0.1]:58312 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eIj7R-0005aX-3x for submit@debbugs.gnu.org; Sat, 25 Nov 2017 17:40:17 -0500 Received: from aibo.runbox.com ([91.220.196.211]:45702) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eIj7P-0005aP-92 for 29447@debbugs.gnu.org; Sat, 25 Nov 2017 17:40:15 -0500 Received: from [10.9.9.210] (helo=mailfront10.runbox.com) by mailtransmit02.runbox with esmtp (Exim 4.86_2) (envelope-from ) id 1eIj7N-00072s-Nx; Sat, 25 Nov 2017 23:40:13 +0100 Received: from tor-exit-4.all.de ([212.21.66.6] helo=localhost) by mailfront10.runbox.com with esmtpsa (uid:892961 ) (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) id 1eIj6p-0006Um-Gr; Sat, 25 Nov 2017 23:39:40 +0100 Date: Sat, 25 Nov 2017 22:39:25 +0000 From: ng0 To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: [bug#29447] [PATCH 0/2] Make Xorg modules configurable, remove WindowMaker dependency Message-ID: <20171125223925.qhtdnpkjl25fvls2@abyayala> References: <20171125222737.3255-1-ludo@gnu.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="2czpaoftthatpyv3" Content-Disposition: inline In-Reply-To: <20171125222737.3255-1-ludo@gnu.org> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 29447 Cc: 29447@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --2czpaoftthatpyv3 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s transcribed 1.0K bytes: > Hi, >=20 > The first patch here cleans up =E2=80=98xorg-configuration-file=E2=80=99 = et al. such > that users can pass a list of modules to use (until now the list of > modules was hard-coded in =E2=80=98xorg-configuration-file=E2=80=99.) >=20 > The second one removes WindowMaker as the default fallback session. > Instead, the default is to look for a .desktop file at run time in the > user and system profiles. >=20 > The downside is that if no package provides a .dekstop file, then login > fails. I think that=E2=80=99s acceptable though, because people expect to > specify a list of window managers in the =E2=80=98packages=E2=80=99 field= anyway, as > show in the lightweight-desktop example. >=20 > Thoughts? Overall, good. What I think is lacking is that we add in the Documentation that adding a WM/DM is necessary to get started. It might sound like a little too much of a Cpt. Obvious, but we can't assume everyone understand the implications of not defining a WM/DM in the config. > Ludo=E2=80=99. >=20 > Ludovic Court=C3=A8s (2): > services: xorg: Allow users to specify a list of modules. > services: xorg: Remove WindowMaker as a default fallback. >=20 > doc/guix.texi | 26 ++++-- > gnu/services/xorg.scm | 244 +++++++++++++++++++++++++++++++++++---------= ------ > 2 files changed, 189 insertions(+), 81 deletions(-) >=20 > --=20 > 2.15.0 >=20 >=20 >=20 >=20 >=20 --=20 GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588 GnuPG: https://d.n0.is/dist/keys/ WWW: https://n0.is --2czpaoftthatpyv3 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEqIyK3RKYKNfqwC5S4i+bv+40hYgFAloZ8R0ACgkQ4i+bv+40 hYiyNQ//UKB8VvUokUwrBhHYfhyM2tMlBbaIsQyRR07IqRR45D6YVTCcXptCIfXu Uw9dYkialepY4u2LmPkOmM09c3tCUawFbLGjMYf8o3V6E1oacJXIKbT4KGfIXgto Z0eAJDeeMPJwtDsb0ppa9PH2q2XBHM//xGMDDtrC5AvlWkVokAnfekbAbaPVcZIC GvKe85VYuvUnObDciRIi6QYp5C0cWRRCAswJZKxIO4mZQidikGWTG9yI5OsRrzeN AZSKAF/TiYtadETC8uMOHbLex3dBiEUnzyND9XRvKSJeso1HLMlCnFIkS42Rwco6 +Dg5q03cN1lu7ueWUplwExbtHdglRyef6wp/i4fs3P7x2B0zVwpuO3jEuku3SbgZ EFKG/L3P6LiOFNfsa+3Gi9iKOyydP1sX9qnpVB8//3G9LvYRJTAZvimPW7ubnlhM rg2oHRWLOaEmUKgsGczG3pNfy6vWFgzgdrHzC7jylgqQAUqDf9talBlliXsnBMzd agBqajLsloxbvL+FuC1GBN5gjnIq5iAo8kIu7fSexf4NjkxAX9e2fMHJXM+t4UN2 Tgf5FIcC+mpnTvJqyO2ytTLTICg+rRcZEMk6vUM3Upv7p4r6Um8d8xsKEvlCbHNv CW/DWmmbWIgwDvm4UIzZ2YsK1ViYRysGUrpezkpJC+PBvhDiqHQ= =ntf/ -----END PGP SIGNATURE----- --2czpaoftthatpyv3-- From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 27 08:58:27 2017 Received: (at submit) by debbugs.gnu.org; 27 Nov 2017 13:58:28 +0000 Received: from localhost ([127.0.0.1]:60217 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eJJvV-0002NW-VD for submit@debbugs.gnu.org; Mon, 27 Nov 2017 08:58:26 -0500 Received: from eggs.gnu.org ([208.118.235.92]:46428) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eJJvS-0002NH-GT for submit@debbugs.gnu.org; Mon, 27 Nov 2017 08:58:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eJJvM-00021v-1N for submit@debbugs.gnu.org; Mon, 27 Nov 2017 08:58:17 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:59195) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eJJvL-00021r-Uc for submit@debbugs.gnu.org; Mon, 27 Nov 2017 08:58:15 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37369) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJJvK-0004zG-LP for guix-patches@gnu.org; Mon, 27 Nov 2017 08:58:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eJJvH-00020N-I9 for guix-patches@gnu.org; Mon, 27 Nov 2017 08:58:14 -0500 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:47236) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eJJvH-0001yr-BS for guix-patches@gnu.org; Mon, 27 Nov 2017 08:58:11 -0500 X-Originating-IP: 181.221.146.76 Received: from adfeno-pc1 (unknown [181.221.146.76]) (Authenticated sender: adfeno@hyperbola.info) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id CC37A1720B3 for ; Mon, 27 Nov 2017 14:58:06 +0100 (CET) From: Adonay Felipe Nogueira To: guix-patches@gnu.org Subject: Re: [bug#29447] [PATCH 0/2] Make Xorg modules configurable, remove WindowMaker dependency References: <20171125222737.3255-1-ludo@gnu.org> <20171125223925.qhtdnpkjl25fvls2@abyayala> Date: Mon, 27 Nov 2017 11:58:04 -0200 In-Reply-To: <20171125223925.qhtdnpkjl25fvls2@abyayala> (ng0@n0.is's message of "Sat, 25 Nov 2017 22:39:25 +0000") Message-ID: <87374zg6xf.fsf@hyperbola.info> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) +1 2017-11-25T22:39:25+0000 ng0 wrote: > > Overall, good. > What I think is lacking is that we add in the Documentation that > adding a WM/DM is necessary to get started. > It might sound like a little too much of a Cpt. Obvious, but > we can't assume everyone understand the implications of not > defining a WM/DM in the config. > --=20 - https://libreplanet.org/wiki/User:Adfeno - Palestrante e consultor sobre /software/ livre (n=C3=A3o confundir com gratis). - "WhatsApp"? Ele n=C3=A3o =C3=A9 livre. Por favor, veja formas de se comun= icar instantaneamente comigo no endere=C3=A7o abaixo. - Contato: https://libreplanet.org/wiki/User:Adfeno#vCard - Arquivos comuns aceitos (apenas sem DRM): Corel Draw, Microsoft Office, MP3, MP4, WMA, WMV. - Arquivos comuns aceitos e enviados: CSV, GNU Dia, GNU Emacs Org, GNU GIMP, Inkscape SVG, JPG, LibreOffice (padr=C3=A3o ODF), OGG, OPUS, PDF (apenas sem DRM), PNG, TXT, WEBM. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 28 05:27:15 2017 Received: (at 29447-done) by debbugs.gnu.org; 28 Nov 2017 10:27:15 +0000 Received: from localhost ([127.0.0.1]:33520 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eJd6g-0006wk-QL for submit@debbugs.gnu.org; Tue, 28 Nov 2017 05:27:14 -0500 Received: from [141.255.128.1] (port=53161 helo=hera.aquilenet.fr) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eJd6e-0006wb-P5 for 29447-done@debbugs.gnu.org; Tue, 28 Nov 2017 05:27:13 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 1F2C1FC51; Tue, 28 Nov 2017 11:27:14 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rQGTcDM5RJRX; Tue, 28 Nov 2017 11:27:12 +0100 (CET) Received: from ribbon (unknown [193.50.110.215]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 861B8FC3B; Tue, 28 Nov 2017 11:26:56 +0100 (CET) From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) To: Adonay Felipe Nogueira Subject: Re: [bug#29447] [PATCH 0/2] Make Xorg modules configurable, remove WindowMaker dependency References: <20171125222737.3255-1-ludo@gnu.org> <20171125223925.qhtdnpkjl25fvls2@abyayala> <87374zg6xf.fsf@hyperbola.info> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 8 Frimaire an 226 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Tue, 28 Nov 2017 11:26:50 +0100 In-Reply-To: <87374zg6xf.fsf@hyperbola.info> (Adonay Felipe Nogueira's message of "Mon, 27 Nov 2017 11:58:04 -0200") Message-ID: <87bmjm3dhx.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 2.2 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hi, Adonay Felipe Nogueira skribis: > +1 > > 2017-11-25T22:39:25+0000 ng0 wrote: >> >> Overall, good. >> What I think is lacking is that we add in the Documentation that >> adding a WM/DM is necessary to get started. >> It might sound like a little too much of a Cpt. Obvious, but >> we can't assume everyone understand the implications of not >> defining a WM/DM in the config. >> [...] Content analysis details: (2.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.0 SPF_HELO_FAIL SPF: HELO does not match SPF record (fail) [SPF failed: Please see http://www.openspf.org/Why?s=helo; id=hera.aquilenet.fr; ip=141.255.128.1; r=debbugs.gnu.org] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS X-Debbugs-Envelope-To: 29447-done Cc: 29447-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.2 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hi, Adonay Felipe Nogueira skribis: > +1 > > 2017-11-25T22:39:25+0000 ng0 wrote: >> >> Overall, good. >> What I think is lacking is that we add in the Documentation that >> adding a WM/DM is necessary to get started. >> It might sound like a little too much of a Cpt. Obvious, but >> we can't assume everyone understand the implications of not >> defining a WM/DM in the config. >> [...] Content analysis details: (2.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.0 SPF_HELO_FAIL SPF: HELO does not match SPF record (fail) [SPF failed: Please see http://www.openspf.org/Why?s=helo;id=hera.aquilenet.fr;ip=141.255.128.1;r=debbugs.gnu.org] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS Hi, Adonay Felipe Nogueira skribis: > +1 > > 2017-11-25T22:39:25+0000 ng0 wrote: >> >> Overall, good. >> What I think is lacking is that we add in the Documentation that >> adding a WM/DM is necessary to get started. >> It might sound like a little too much of a Cpt. Obvious, but >> we can't assume everyone understand the implications of not >> defining a WM/DM in the config. >> That makes sense. I=E2=80=99ve cleaned up the SLiM documentation a bit and= then adjusted it as you suggest: https://git.savannah.gnu.org/cgit/guix.git/commit/?id=3D65c0f43649b455db9= 4f1e8b0a244a889cb961b25 Thanks for your feedback! Ludo=E2=80=99. From unknown Sat Aug 16 00:33:15 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 26 Dec 2017 12:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator