help-guix
[Top][All Lists]
Advanced

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

Re: Problem on LXQt service definition


From: Meiyo Peng
Subject: Re: Problem on LXQt service definition
Date: Wed, 15 May 2019 11:28:20 +0800

Hi,

Reza Alizadeh Majd writes:

> I'll try to create a service for `lxqt-desktop` based on same definition on 
> [nixos](https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/x11/desktop-managers/lxqt.nix).
> but my service definition won't start and  here is my proposed definition for 
> this service:

Thank you for your work on LXQt.

> ;;;
> ;;; LXQt desktop service.
> ;;;
>
> (define-record-type* <lxqt-desktop-configuration> lxqt-desktop-configuration
>   make-lxqt-desktop-configuration
>   lxqt-desktop-configuration
>   (lxqt-package lxqt-package (default lxqt)))
>
> (define (lxqt-shepherd-service config)
>   "Return a shepherd service for @command{lxqt-session}"
>   (let ((lxqt-session ((package-direct-input-selector "lxqt-session")
>                        (lxqt-package config))))
>     (list (shepherd-service
>             (provision '(lxqt))
>             ; (requirement '())
>             (documentation "Run the lxqt session")
>             (start #~(make-forkexec-constructor
>                       (list(string-append #$lxqt-session "/bin/startlxqt"))
>                       #:environment-variables
>                       (list (string-append "XDG_CONFIG_DIRS="
>                                            
> "$XDG_CONFIG_DIRS;/run/current-system/profile/etc/xdg")
>                             (string-append "XDG_DATA_DIRS="
>                                            
> "$XDG_DATA_DIRS;/run/current-system/profile/share"))
>             (stop #~(make-kill-destructor))))))

I don't think we should start the LXQt session from a shepherd service.
A desktop session should be started by a display manager like GDM or
SDDM.  A display manager can find these desktop sessions and provides
choices on login screen if a desktop package provides correct session
files in prefix/share/xsessions (or prefix/share/wayland-sessions for
wayland sessions).  I am not a nix expert but I think the nix file you
referred to tries to define a desktop session file for LXQt rather than
automatically start it upon system startup.

> (define lxqt-desktop-service-type
>   (service-type
>     (name 'lxqt-desktop)
>     (extensions
>       (list
>             (service-extension shepherd-root-service-type
>                                lxqt-shepherd-service)
>             (service-extension profile-service-type
>                                (compose list
>                                         lxqt-package))))
>     (default-value (lxqt-desktop-configuration))
>     (description "Run the LXQt desktop environment.")))
>
> (define-deprecated (lxqt-desktop-service #:key
>                                          (config
>                                           (lxqt-desktop-configuration)))
>   lxqt-desktop-service-type
>   "Return a service that adds the @code{lxqt} package to the system profile, 
> and
> extends polkit with the actions from @code{lxqt-policykit}."
>   (service lxqt-desktop-service-type config))

Apparently we should not use (define-deprecated ...) to define new variables.

> could anyone help on this matter ?

What are you trying to achieve by adding the lxqt-desktop-service-type?


--
Meiyo Peng
https://www.pengmeiyu.com/



reply via email to

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