[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/