宋文武 <[email protected]> skribis: > From 144bf00b86f6884615d986598ccc62a3c4747eef Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <[email protected]> > Date: Tue, 16 Dec 2014 00:21:46 +0800 > Subject: [PATCH] services: xorg: Make SLiM sessions configurable. > > * gnu/services/xorg.scm (%default-xsessions): New variable. > (xsessions-directory): New procedure. > (slim-service): Add #:sessions and #:auto-login-session parameters. > [slim.cfg]: Honor #:sessions. > (xinitrc): Adjust accordingly.
LGTM. However, please leave .xsession (instead of .xinitrc) in this patch. The change to .xinitrd should be done separately. > + ;; First, try to run ~/.xinitrc with the specified session. > + (exec-from-login-shell (string-append home "/.xinitrc") session) > + ;; Then starts the specified session directly. > + (exec-from-login-shell session)))) s/Then starts/Then try to start/ OK to push with these two changes. > In additation, I pass session to ~/.xinitrc (replace ~/.xsession, since > it's what to expect from slim according to [1][2]). [...] > [1] https://wiki.archlinux.org/index.php/Slim#Environments > [2] https://lists.gnu.org/archive/html/guix-devel/2014-12/msg00282.html I wasn’t sure about .xsession vs .xinitrc, so I did some research. <https://wiki.ubuntu.com/CustomXSession> reads: Your login script, .xinitrc, works with startx, but graphical login managers like GDM do not look for .xinitrc. Instead, they look for a file named .xsession in your home directory. Likewise, <https://wiki.debian.org/Xinitrc> reads: Note that ~/.xinitrc is only for configuring the initialization of xinit. If you want the script to be called when ever an X Session is started, then you should instead use ~/.xsession. Someone at <http://unix.stackexchange.com/questions/47359/what-is-xsession-for> writes: If you log in in graphical mode on an X display manager (xdm, gdm, kdm, wdm, lightdm, …), traditionally, what is executed after you log in is some scripts in /etc/X11 then ~/.xsession. Citing the ‘startx’ man page on Debian at <http://marc.info/?l=debian-user&m=108078928208265>: Keep in mind that .xinitrc is used only by xinit(1) and completely ignored by xdm(1). So it seems that the Right Thing is to use ~/.xsession in our case. WDYT? (I think we should provide a ‘startx’ command as well eventually, and it will have to read .xinitrc.) Thanks, Ludo’.
