mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
services: Add Enlightenment desktop service.
* gnu/services/desktop.scm (<enlightenment-desktop-configuration>, enlightenment-desktop-service-type): New variables. * doc/guix.texi (Desktop Services): Document the service. * NEWS: Mention it.
This commit is contained in:
parent
122f91bd41
commit
e9d271ed9a
3 changed files with 90 additions and 6 deletions
7
NEWS
7
NEWS
|
@ -11,6 +11,13 @@ Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||||
Please send Guix bug reports to bug-guix@gnu.org.
|
Please send Guix bug reports to bug-guix@gnu.org.
|
||||||
|
|
||||||
* Changes in 0.15.0 (since 0.14.0)
|
* Changes in 0.15.0 (since 0.14.0)
|
||||||
|
|
||||||
|
** Distribution
|
||||||
|
|
||||||
|
*** New services
|
||||||
|
|
||||||
|
enlightenment
|
||||||
|
|
||||||
** Programming interfaces
|
** Programming interfaces
|
||||||
|
|
||||||
*** package-full-name (guix packages) now uses "@" as its delimiter.
|
*** package-full-name (guix packages) now uses "@" as its delimiter.
|
||||||
|
|
|
@ -12678,11 +12678,11 @@ field of an @code{operating-system} declaration (@pxref{operating-system
|
||||||
Reference, @code{services}}).
|
Reference, @code{services}}).
|
||||||
|
|
||||||
Additionally, the @code{gnome-desktop-service},
|
Additionally, the @code{gnome-desktop-service},
|
||||||
@code{xfce-desktop-service} and @code{mate-desktop-service}
|
@code{xfce-desktop-service}, @code{mate-desktop-service} and
|
||||||
procedures can add GNOME, XFCE and/or MATE to a system.
|
@code{enlightenment-desktop-service-type} procedures can add GNOME, XFCE, MATE
|
||||||
To ``add GNOME'' means that system-level services like the
|
and/or Enlightenment to a system. To ``add GNOME'' means that system-level
|
||||||
backlight adjustment helpers and the power management utilities are
|
services like the backlight adjustment helpers and the power management
|
||||||
added to the system, extending @code{polkit} and @code{dbus}
|
utilities are added to the system, extending @code{polkit} and @code{dbus}
|
||||||
appropriately, allowing GNOME to operate with elevated privileges on a
|
appropriately, allowing GNOME to operate with elevated privileges on a
|
||||||
limited number of special-purpose system interfaces. Additionally,
|
limited number of special-purpose system interfaces. Additionally,
|
||||||
adding a service made by @code{gnome-desktop-service} adds the GNOME
|
adding a service made by @code{gnome-desktop-service} adds the GNOME
|
||||||
|
@ -12695,7 +12695,10 @@ To ``add MATE'' means that @code{polkit} and @code{dbus} are extended
|
||||||
appropriately, allowing MATE to operate with elevated privileges on a
|
appropriately, allowing MATE to operate with elevated privileges on a
|
||||||
limited number of special-purpose system interfaces. Additionally,
|
limited number of special-purpose system interfaces. Additionally,
|
||||||
adding a service made by @code{mate-desktop-service} adds the MATE
|
adding a service made by @code{mate-desktop-service} adds the MATE
|
||||||
metapackage to the system profile.
|
metapackage to the system profile. ``Adding ENLIGHTENMENT'' means that
|
||||||
|
@code{dbus} is extended appropriately, and several of Enlightenment's binaries
|
||||||
|
are set as setuid, allowing Enlightenment's screen locker and other
|
||||||
|
functionality to work as expetected.
|
||||||
|
|
||||||
The desktop environments in Guix use the Xorg display server by
|
The desktop environments in Guix use the Xorg display server by
|
||||||
default. If you'd like to use the newer display server protocol
|
default. If you'd like to use the newer display server protocol
|
||||||
|
@ -12725,6 +12728,18 @@ profile, and extends polkit with the actions from
|
||||||
@code{mate-settings-daemon}.
|
@code{mate-settings-daemon}.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
|
@deffn {Scheme Procedure} enlightenment-desktop-service-type
|
||||||
|
Return a service that adds the @code{enlightenment} package to the system
|
||||||
|
profile, and extends dbus with actions from @code{efl}.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
@deftp {Data Type} enlightenment-desktop-service-configuration
|
||||||
|
@table @asis
|
||||||
|
@item @code{enlightenment} (default @code{enlightenment})
|
||||||
|
The enlightenment package to use.
|
||||||
|
@end table
|
||||||
|
@end deftp
|
||||||
|
|
||||||
Because the GNOME, XFCE and MATE desktop services pull in so many packages,
|
Because the GNOME, XFCE and MATE desktop services pull in so many packages,
|
||||||
the default @code{%desktop-services} variable doesn't include any of
|
the default @code{%desktop-services} variable doesn't include any of
|
||||||
them by default. To add GNOME, XFCE or MATE, just @code{cons} them onto
|
them by default. To add GNOME, XFCE or MATE, just @code{cons} them onto
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
|
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
|
||||||
;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
|
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
|
||||||
|
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -32,6 +33,7 @@ (define-module (gnu services desktop)
|
||||||
#:use-module (gnu services sound)
|
#:use-module (gnu services sound)
|
||||||
#:use-module ((gnu system file-systems)
|
#:use-module ((gnu system file-systems)
|
||||||
#:select (%elogind-file-systems))
|
#:select (%elogind-file-systems))
|
||||||
|
#:use-module (gnu system)
|
||||||
#:use-module (gnu system shadow)
|
#:use-module (gnu system shadow)
|
||||||
#:use-module (gnu system pam)
|
#:use-module (gnu system pam)
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
|
@ -45,9 +47,11 @@ (define-module (gnu services desktop)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages libusb)
|
#:use-module (gnu packages libusb)
|
||||||
#:use-module (gnu packages mate)
|
#:use-module (gnu packages mate)
|
||||||
|
#:use-module (gnu packages enlightenment)
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix store)
|
#:use-module (guix store)
|
||||||
|
#:use-module (guix utils)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
|
@ -97,6 +101,10 @@ (define-module (gnu services desktop)
|
||||||
|
|
||||||
x11-socket-directory-service
|
x11-socket-directory-service
|
||||||
|
|
||||||
|
enlightenment-desktop-configuration
|
||||||
|
enlightenment-desktop-configuration?
|
||||||
|
enlightenment-desktop-service-type
|
||||||
|
|
||||||
%desktop-services))
|
%desktop-services))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
|
@ -900,6 +908,60 @@ (define x11-socket-directory-service
|
||||||
(let ((directory "/tmp/.X11-unix"))
|
(let ((directory "/tmp/.X11-unix"))
|
||||||
(mkdir-p directory)
|
(mkdir-p directory)
|
||||||
(chmod directory #o777))))))
|
(chmod directory #o777))))))
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Enlightenment desktop service.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define-record-type* <enlightenment-desktop-configuration>
|
||||||
|
enlightenment-desktop-configuration make-enlightenment-desktop-configuration
|
||||||
|
enlightenment-desktop-configuration?
|
||||||
|
;; <package>
|
||||||
|
(enlightenment enlightenment-package
|
||||||
|
(default enlightenment)))
|
||||||
|
|
||||||
|
(define (enlightenment-setuid-programs enlightenment-desktop-configuration)
|
||||||
|
(match-record enlightenment-desktop-configuration
|
||||||
|
<enlightenment-desktop-configuration>
|
||||||
|
(enlightenment)
|
||||||
|
(list (file-append enlightenment
|
||||||
|
"/lib/enlightenment/utils/enlightenment_sys")
|
||||||
|
(file-append enlightenment
|
||||||
|
"/lib/enlightenment/utils/enlightenment_backlight")
|
||||||
|
;; TODO: Move this binary to a screen-locker service.
|
||||||
|
(file-append enlightenment
|
||||||
|
"/lib/enlightenment/utils/enlightenment_ckpasswd")
|
||||||
|
(file-append enlightenment
|
||||||
|
(string-append
|
||||||
|
"/lib/enlightenment/modules/cpufreq/"
|
||||||
|
(match (string-tokenize (%current-system)
|
||||||
|
(char-set-complement (char-set #\-)))
|
||||||
|
((arch "linux") (string-append "linux-gnu-" arch))
|
||||||
|
((arch "gnu") (string-append "gnu-" arch)))
|
||||||
|
"-"
|
||||||
|
(version-major+minor (package-version enlightenment))
|
||||||
|
"/freqset")))))
|
||||||
|
|
||||||
|
(define enlightenment-desktop-service-type
|
||||||
|
(service-type
|
||||||
|
(name 'enlightenment-desktop)
|
||||||
|
(extensions
|
||||||
|
(list (service-extension dbus-root-service-type
|
||||||
|
(compose list
|
||||||
|
(package-direct-input-selector
|
||||||
|
"efl")
|
||||||
|
enlightenment-package))
|
||||||
|
(service-extension setuid-program-service-type
|
||||||
|
enlightenment-setuid-programs)
|
||||||
|
(service-extension profile-service-type
|
||||||
|
(compose list
|
||||||
|
enlightenment-package))))
|
||||||
|
(default-value (enlightenment-desktop-configuration))
|
||||||
|
(description
|
||||||
|
"Return a service that adds the @code{enlightenment} package to the system
|
||||||
|
profile, and extends dbus with the ability for @code{efl} to generate
|
||||||
|
thumbnails and makes setuid the programs which enlightenment needs to function
|
||||||
|
as expected.")))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
|
Loading…
Reference in a new issue