services: slim: Use /run/current-system/profile/share/xsessions as sessiondir.
* 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.
This commit is contained in:
parent
4e2f5b8f8f
commit
4bd43bbe73
|
@ -4619,8 +4619,7 @@ started by the @dfn{login manager}, currently SLiM.
|
||||||
@deffn {Monadic Procedure} slim-service [#:allow-empty-passwords? #f] @
|
@deffn {Monadic Procedure} slim-service [#:allow-empty-passwords? #f] @
|
||||||
[#:auto-login? #f] [#:default-user ""] [#:startx] @
|
[#:auto-login? #f] [#:default-user ""] [#:startx] @
|
||||||
[#:theme @var{%default-slim-theme}] @
|
[#:theme @var{%default-slim-theme}] @
|
||||||
[#:theme-name @var{%default-slim-theme-name}] @
|
[#:theme-name @var{%default-slim-theme-name}]
|
||||||
[#:sessions @var{%default-sessions}]
|
|
||||||
Return a service that spawns the SLiM graphical login manager, which in
|
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
|
turn starts the X display server with @var{startx}, a command as returned by
|
||||||
@code{xorg-start-command}.
|
@code{xorg-start-command}.
|
||||||
|
@ -4633,28 +4632,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
|
@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 to use. In that case, @var{theme-name} specifies the name of the
|
||||||
theme.
|
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
|
@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
|
@defvr {Scheme Variable} %default-theme
|
||||||
@defvrx {Scheme Variable} %default-theme-name
|
@defvrx {Scheme Variable} %default-theme-name
|
||||||
The G-Expression denoting the default SLiM theme and its name.
|
The G-Expression denoting the default SLiM theme and its name.
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -25,9 +26,7 @@
|
||||||
#:use-module (gnu packages xorg)
|
#:use-module (gnu packages xorg)
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
#:use-module (gnu packages slim)
|
#:use-module (gnu packages slim)
|
||||||
#:use-module (gnu packages ratpoison)
|
|
||||||
#:use-module (gnu packages gnustep)
|
#:use-module (gnu packages gnustep)
|
||||||
#:use-module (gnu packages sawfish)
|
|
||||||
#:use-module (gnu packages admin)
|
#:use-module (gnu packages admin)
|
||||||
#:use-module (gnu packages bash)
|
#:use-module (gnu packages bash)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
|
@ -39,14 +38,6 @@
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:export (xorg-start-command
|
#: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
|
||||||
%default-slim-theme-name
|
%default-slim-theme-name
|
||||||
slim-service))
|
slim-service))
|
||||||
|
@ -194,61 +185,6 @@ which should be passed to this script as the first argument. If not, the
|
||||||
;;; SLiM log-in manager.
|
;;; 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
|
(define %default-slim-theme
|
||||||
;; Theme based on work by Felipe López.
|
;; Theme based on work by Felipe López.
|
||||||
#~(string-append #$%artwork-repository "/slim"))
|
#~(string-append #$%artwork-repository "/slim"))
|
||||||
|
@ -264,7 +200,6 @@ Type=Application~%"
|
||||||
(theme %default-slim-theme)
|
(theme %default-slim-theme)
|
||||||
(theme-name %default-slim-theme-name)
|
(theme-name %default-slim-theme-name)
|
||||||
(xauth xauth) (dmd dmd) (bash bash)
|
(xauth xauth) (dmd dmd) (bash bash)
|
||||||
(sessions %default-xsessions)
|
|
||||||
(auto-login-session #~(string-append #$windowmaker
|
(auto-login-session #~(string-append #$windowmaker
|
||||||
"/bin/wmaker"))
|
"/bin/wmaker"))
|
||||||
startx)
|
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
|
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
|
@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 to use. In that case, @var{theme-name} specifies the name of the
|
||||||
theme.
|
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."
|
|
||||||
|
|
||||||
(define (slim.cfg)
|
(define (slim.cfg)
|
||||||
(mlet %store-monad ((startx (or startx (xorg-start-command)))
|
(mlet %store-monad ((startx (or startx (xorg-start-command)))
|
||||||
(xinitrc (xinitrc #:fallback-session
|
(xinitrc (xinitrc #:fallback-session
|
||||||
auto-login-session))
|
auto-login-session)))
|
||||||
(sessiondir (xsessions-directory sessions)))
|
|
||||||
(text-file* "slim.cfg" "
|
(text-file* "slim.cfg" "
|
||||||
default_path /run/current-system/profile/bin
|
default_path /run/current-system/profile/bin
|
||||||
default_xserver " startx "
|
default_xserver " startx "
|
||||||
|
@ -300,7 +230,7 @@ authfile /var/run/slim.auth
|
||||||
# The login command. '%session' is replaced by the chosen session name, one
|
# The login command. '%session' is replaced by the chosen session name, one
|
||||||
# of the names specified in the 'sessions' setting: 'wmaker', 'xfce', etc.
|
# of the names specified in the 'sessions' setting: 'wmaker', 'xfce', etc.
|
||||||
login_cmd exec " xinitrc " %session
|
login_cmd exec " xinitrc " %session
|
||||||
sessiondir " sessiondir "
|
sessiondir /run/current-system/profile/share/xsessions
|
||||||
session_msg session (F1 to change):
|
session_msg session (F1 to change):
|
||||||
|
|
||||||
halt_cmd " dmd "/sbin/halt
|
halt_cmd " dmd "/sbin/halt
|
||||||
|
|
Loading…
Reference in New Issue