guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 1/2] services: slim: Use /run/current-system/profile/share/xsessi


From: 宋文武
Subject: [PATCH 1/2] services: slim: Use /run/current-system/profile/share/xsessions as sessiondir.
Date: Sun, 8 Mar 2015 22:14:39 +0800

* gnu/services/xorg.scm (<session-type>, %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 <X Window>: 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{<session-type>} objects denoting the
-available session types that can be chosen from the log-in screen.  The first
-one is chosen by default.
 @end deffn
 
address@hidden {Scheme Variable} %default-sessions
-The list of default session types used by SLiM.
address@hidden defvr
-
address@hidden {Scheme Variable} %ratpoison-session-type
-Session type using the Ratpoison window manager.
address@hidden defvr
-
address@hidden {Scheme Variable} %windowmaker-session-type
-Session type using the WindowMaker window manager.
address@hidden defvr
-
address@hidden {Scheme Variable} %sawfish-session-type
-Session type using the Sawfish window manager.
address@hidden 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 <address@hidden>
+;;; Copyright © 2015 Sou Bunnbu <address@hidden>
 ;;;
 ;;; 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> 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 <session-type> 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{<session-type>} 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]