mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 22:08:16 -05:00
services: Add Plasma desktop service.
* gnu/services/desktop.scm (kde-desktop-service-type): New variable. (<kde-desktop-configuration>): New record type. (kde-desktop-configuration): New procedure. * doc/guix.texi (Desktop Services): Document it. Co-authored-by: Zheng Junjie <873216071@qq.com> Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
This commit is contained in:
parent
7e056197d7
commit
8055649428
2 changed files with 71 additions and 0 deletions
|
@ -116,6 +116,7 @@ Copyright @copyright{} 2022 Antero Mejr@*
|
||||||
Copyright @copyright{} 2023 Karl Hallsby@*
|
Copyright @copyright{} 2023 Karl Hallsby@*
|
||||||
Copyright @copyright{} 2023 Nathaniel Nicandro@*
|
Copyright @copyright{} 2023 Nathaniel Nicandro@*
|
||||||
Copyright @copyright{} 2023 Tanguy Le Carrour@*
|
Copyright @copyright{} 2023 Tanguy Le Carrour@*
|
||||||
|
Copyright @copyright{} 2023 Zheng Junjie@*
|
||||||
|
|
||||||
Permission is granted to copy, distribute and/or modify this document
|
Permission is granted to copy, distribute and/or modify this document
|
||||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||||
|
@ -23721,6 +23722,23 @@ The GNOME package to use.
|
||||||
@end table
|
@end table
|
||||||
@end deftp
|
@end deftp
|
||||||
|
|
||||||
|
@defvar plasma-desktop-service-type
|
||||||
|
This is the type of the service that adds the @uref{https://kde.org/plasma-desktop/,
|
||||||
|
Plasma} desktop environment. Its value is a @code{plasma-desktop-configuration}
|
||||||
|
object (see below).
|
||||||
|
|
||||||
|
This service adds the @code{plasma} package to the system profile.
|
||||||
|
@end defvar
|
||||||
|
|
||||||
|
@deftp {Data Type} plasma-desktop-configuration
|
||||||
|
Configuration record for the Plasma desktop environment.
|
||||||
|
|
||||||
|
@table @asis
|
||||||
|
@item @code{plasma} (default: @code{plasma})
|
||||||
|
The Plasma package to use.
|
||||||
|
@end table
|
||||||
|
@end deftp
|
||||||
|
|
||||||
@defvar xfce-desktop-service-type
|
@defvar xfce-desktop-service-type
|
||||||
This is the type of a service to run the @uref{Xfce, https://xfce.org/}
|
This is the type of a service to run the @uref{Xfce, https://xfce.org/}
|
||||||
desktop environment. Its value is an @code{xfce-desktop-configuration} object
|
desktop environment. Its value is an @code{xfce-desktop-configuration} object
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
|
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
|
||||||
;;; Copyright © 2017, 2020, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
;;; Copyright © 2017, 2020, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
||||||
|
;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||||
;;; Copyright © 2018, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2018, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2018, 2023 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2018, 2023 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2017, 2019 Christopher Baines <mail@cbaines.net>
|
;;; Copyright © 2017, 2019 Christopher Baines <mail@cbaines.net>
|
||||||
|
@ -15,6 +16,7 @@
|
||||||
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
|
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
|
||||||
;;; Copyright © 2021, 2022 muradm <mail@muradm.net>
|
;;; Copyright © 2021, 2022 muradm <mail@muradm.net>
|
||||||
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
|
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
|
||||||
|
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -55,6 +57,9 @@ (define-module (gnu services desktop)
|
||||||
#:use-module (gnu packages cups)
|
#:use-module (gnu packages cups)
|
||||||
#:use-module (gnu packages freedesktop)
|
#:use-module (gnu packages freedesktop)
|
||||||
#:use-module (gnu packages gnome)
|
#:use-module (gnu packages gnome)
|
||||||
|
#:use-module (gnu packages kde)
|
||||||
|
#:use-module (gnu packages kde-frameworks)
|
||||||
|
#:use-module (gnu packages kde-plasma)
|
||||||
#:use-module (gnu packages xfce)
|
#:use-module (gnu packages xfce)
|
||||||
#:use-module (gnu packages avahi)
|
#:use-module (gnu packages avahi)
|
||||||
#:use-module (gnu packages xdisorg)
|
#:use-module (gnu packages xdisorg)
|
||||||
|
@ -150,6 +155,10 @@ (define-module (gnu services desktop)
|
||||||
sugar-desktop-configuration?
|
sugar-desktop-configuration?
|
||||||
sugar-desktop-service-type
|
sugar-desktop-service-type
|
||||||
|
|
||||||
|
plasma-desktop-configuration
|
||||||
|
plasma-desktop-configuration?
|
||||||
|
plasma-desktop-service-type
|
||||||
|
|
||||||
xfce-desktop-configuration
|
xfce-desktop-configuration
|
||||||
xfce-desktop-configuration?
|
xfce-desktop-configuration?
|
||||||
xfce-desktop-service
|
xfce-desktop-service
|
||||||
|
@ -1625,6 +1634,50 @@ (define enlightenment-desktop-service-type
|
||||||
thumbnails and makes setuid the programs which enlightenment needs to function
|
thumbnails and makes setuid the programs which enlightenment needs to function
|
||||||
as expected.")))
|
as expected.")))
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; KDE Plasma desktop service.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define-record-type* <plasma-desktop-configuration> plasma-desktop-configuration
|
||||||
|
make-plasma-desktop-configuration
|
||||||
|
plasma-desktop-configuration?
|
||||||
|
(plasma-package plasma-package (default plasma)))
|
||||||
|
|
||||||
|
(define (plasma-polkit-settings config)
|
||||||
|
"Return the list of KDE Plasma dependencies that provide polkit actions and
|
||||||
|
rules."
|
||||||
|
(let ((plasma-plasma (plasma-package config)))
|
||||||
|
(map (lambda (name)
|
||||||
|
((package-direct-input-selector name) plasma-plasma))
|
||||||
|
'("plasma-desktop"
|
||||||
|
"plasma-workspace"
|
||||||
|
"plasma-disks"
|
||||||
|
"kinfocenter"
|
||||||
|
"libksysguard"
|
||||||
|
"ktexteditor"
|
||||||
|
"powerdevil"
|
||||||
|
"plasma-firewall"))))
|
||||||
|
|
||||||
|
;; see https://bugs.kde.org/show_bug.cgi?id=456210
|
||||||
|
;; if `kde' no exits, fallback to `other', and then unlock lockscreen not work,
|
||||||
|
;; so add it.
|
||||||
|
(define (plasma-pam-services config)
|
||||||
|
(list (unix-pam-service "kde")))
|
||||||
|
|
||||||
|
(define plasma-desktop-service-type
|
||||||
|
(service-type
|
||||||
|
(name 'plasma-desktop)
|
||||||
|
(description "Run the KDE Plasma desktop environment.")
|
||||||
|
(default-value (plasma-desktop-configuration))
|
||||||
|
(extensions
|
||||||
|
(list (service-extension polkit-service-type
|
||||||
|
plasma-polkit-settings)
|
||||||
|
(service-extension pam-root-service-type
|
||||||
|
plasma-pam-services)
|
||||||
|
(service-extension profile-service-type
|
||||||
|
(compose list
|
||||||
|
plasma-package))))))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; inputattach-service-type
|
;;; inputattach-service-type
|
||||||
|
|
Loading…
Reference in a new issue