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/
