From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Subject: [PATCH 1/2] services: slim: Use /run/current-system/profile/share/xsessions as sessiondir. Date: Sun, 8 Mar 2015 22:14:39 +0800 Message-ID: <1425824080-350-1-git-send-email-iyzsong@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:37868) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YUbyf-00017i-00 for guix-devel@gnu.org; Sun, 08 Mar 2015 10:14:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YUbya-0005jT-Rt for guix-devel@gnu.org; Sun, 08 Mar 2015 10:14:44 -0400 Received: from mail-pa0-x22e.google.com ([2607:f8b0:400e:c03::22e]:38114) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YUbya-0005jH-Gk for guix-devel@gnu.org; Sun, 08 Mar 2015 10:14:40 -0400 Received: by pabrd3 with SMTP id rd3so41778412pab.5 for ; Sun, 08 Mar 2015 07:14:39 -0700 (PDT) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org * gnu/services/xorg.scm (, %windowmaker-session-type) (%ratposion-session-type, %sawfish-session-type, %default-xsessions) (xsessions-directory): Remove. (slim-service): Remove #:sessions parameter. [slim.cfg]: Use /run/current-system/profile/share/xsessions as sessiondir. * doc/guix.texi : Adjust accordingly. --- doc/guix.texi | 23 +-------------- gnu/services/xorg.scm | 78 +++------------------------------------------------ 2 files changed, 5 insertions(+), 96 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index bd8091a..98cce98 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4618,8 +4618,7 @@ started by the @dfn{login manager}, currently SLiM. @deffn {Monadic Procedure} slim-service [#:allow-empty-passwords? #f] @ [#:auto-login? #f] [#:default-user ""] [#:startx] @ [#:theme @var{%default-slim-theme}] @ - [#:theme-name @var{%default-slim-theme-name}] @ - [#:sessions @var{%default-sessions}] + [#:theme-name @var{%default-slim-theme-name}] 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 @code{xorg-start-command}. @@ -4632,28 +4631,8 @@ If @var{theme} is @code{#f}, the use the default log-in theme; otherwise @var{theme} must be a gexp denoting the name of a directory containing the theme to use. In that case, @var{theme-name} specifies the name of the theme. - -Last, @var{session} is a list of @code{} objects denoting the -available session types that can be chosen from the log-in screen. The first -one is chosen by default. @end deffn -@defvr {Scheme Variable} %default-sessions -The list of default session types used by SLiM. -@end defvr - -@defvr {Scheme Variable} %ratpoison-session-type -Session type using the Ratpoison window manager. -@end defvr - -@defvr {Scheme Variable} %windowmaker-session-type -Session type using the WindowMaker window manager. -@end defvr - -@defvr {Scheme Variable} %sawfish-session-type -Session type using the Sawfish window manager. -@end defvr - @defvr {Scheme Variable} %default-theme @defvrx {Scheme Variable} %default-theme-name The G-Expression denoting the default SLiM theme and its name. diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 562f57f..912cbd3 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2015 Sou Bunnbu ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,9 +26,7 @@ #:use-module (gnu packages xorg) #:use-module (gnu packages gl) #:use-module (gnu packages slim) - #:use-module (gnu packages ratpoison) #:use-module (gnu packages gnustep) - #:use-module (gnu packages sawfish) #:use-module (gnu packages admin) #:use-module (gnu packages bash) #:use-module (guix gexp) @@ -39,14 +38,6 @@ #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:export (xorg-start-command - %default-xsessions - %ratpoison-session-type - %windowmaker-session-type - %sawfish-session-type - - session-type? - session-type-name - %default-slim-theme %default-slim-theme-name slim-service)) @@ -194,61 +185,6 @@ which should be passed to this script as the first argument. If not, the ;;; SLiM log-in manager. ;;; -(define-record-type* session-type make-session-type - session-type? - (name session-type-name) ;string - (executable session-type-executable)) ;string-valued gexp - -(define %windowmaker-session-type - (session-type - (name "WindowMaker") - (executable #~(string-append #$windowmaker "/bin/wmaker")))) - -(define %ratpoison-session-type - (session-type - (name "Ratpoison") - (executable #~(string-append #$ratpoison "/bin/ratpoison")))) - -(define %sawfish-session-type - (session-type - (name "Sawfish") - (executable #~(string-append #$sawfish "/bin/sawfish")))) - -(define %default-xsessions - ;; Default session types available to the log-in manager. - (list %windowmaker-session-type %ratpoison-session-type)) - -(define (xsessions-directory sessions) - "Return a directory containing SESSIONS, a list of objects. -The alphabetical order of the files in that directory match the order of the -elements in SESSIONS." - (define builder - #~(begin - (use-modules (srfi srfi-1) - (ice-9 format)) - - (mkdir #$output) - (chdir #$output) - (fold (lambda (name executable number) - ;; Create file names such that the order of the items in - ;; SESSION is respected. SLiM gets them in lexicographic - ;; order and uses the first one as the default session. - (let ((file (format #f "~2,'0d-~a.desktop" - number (string-downcase name)))) - (call-with-output-file file - (lambda (port) - (format port "[Desktop Entry] -Name=~a -Exec=~a -Type=Application~%" - name executable))) - (+ 1 number))) - 1 - '#$(map session-type-name sessions) - (list #$@(map session-type-executable sessions))))) - - (gexp->derivation "xsessions-dir" builder)) - (define %default-slim-theme ;; Theme based on work by Felipe López. #~(string-append #$%artwork-repository "/slim")) @@ -264,7 +200,6 @@ Type=Application~%" (theme %default-slim-theme) (theme-name %default-slim-theme-name) (xauth xauth) (dmd dmd) (bash bash) - (sessions %default-xsessions) (auto-login-session #~(string-append #$windowmaker "/bin/wmaker")) startx) @@ -279,17 +214,12 @@ password. When @var{auto-login?} is true, log in automatically as If @var{theme} is @code{#f}, the use the default log-in theme; otherwise @var{theme} must be a gexp denoting the name of a directory containing the theme to use. In that case, @var{theme-name} specifies the name of the -theme. - -Last, @var{session} is a list of @code{} objects denoting the -available session types that can be chosen from the log-in screen. The first -one is chosen by default." +theme." (define (slim.cfg) (mlet %store-monad ((startx (or startx (xorg-start-command))) (xinitrc (xinitrc #:fallback-session - auto-login-session)) - (sessiondir (xsessions-directory sessions))) + auto-login-session))) (text-file* "slim.cfg" " default_path /run/current-system/profile/bin default_xserver " startx " @@ -300,7 +230,7 @@ authfile /var/run/slim.auth # The login command. '%session' is replaced by the chosen session name, one # of the names specified in the 'sessions' setting: 'wmaker', 'xfce', etc. login_cmd exec " xinitrc " %session -sessiondir " sessiondir " +sessiondir /run/current-system/profile/share/xsessions session_msg session (F1 to change): halt_cmd " dmd "/sbin/halt -- 2.2.1