Hi Andreas,

We've now fixed up the greetd guix integration enough so it:
1. works (it didn't before :P)
2. can be adapted also for personal computers.

See https://codeberg.org/guix/guix/pulls/804 for 2.

I'm using it like the following:

     (service greetd-service-type
      (greetd-configuration
       ;; The graphical greeter requires additional groups membership.
       ;; WTF was "seat" ? (wouldn't work--but is documented in guix manual)
       (greeter-supplementary-groups (list "video" "input"))
       (terminals
        (list
         (greetd-terminal-configuration
                     ; (extra-shepherd-requirement '(seatd)) ; What is that 
supposed to be ? (wouldn't work but is documented in guix manual)
                     ;(terminal-vt "1") ; VT is slated for removal by the Linux 
kernel so to have that feature in the configuration to begin with seems 
ill-advised in the long run
                     (terminal-switch #t) ; same
                     (initial-session-user "dannym")
                     (initial-session-command
                       (string-append "/run/current-system/profile/bin/bash"
                                      " -l -c 'XDG_SESSION_TYPE=wayland exec 
sway'"))
                     (default-session-command
                      (greetd-agreety-session
                       (command
                        (greetd-user-session
                         (command (file-append (specification->package "bash")
                                               "/bin/bash"))
                         ;; not using a package reference separates guix system 
update cycle from my guix home update cycle.
                         ;; Is there a way not to hardcode that it's sway ?  I 
want the user to be able to (rarely) configure what it is.
                         ;; Maybe bash --init-file .gsession
                         (command-args '("-l" "-c" "exec sway"))
                         ;; FIXME: the session type is whatever the user wants 
to start on their own.  I don't like hardcoding assumptions like this (doesn't 
need to be wayland for sway either :P).
                         (xdg-session-type "wayland"))))))))))

     ;; This exists just so we have a PAM entry for the screen locker in the 
first place.
     ;; The real screen locker is just a regular program installed into my guix 
home profile.
     (service screen-locker-service-type
              (screen-locker-configuration
               (name "swaylock")
               (program (file-append (specification->package "swaylock")
                                     "/bin/swaylock"))
               (using-pam? #t)
               (using-setuid? #f)))

It works fine without any GNOME things--and like it is configured above it even 
does auto-login.

I have misgivings about the manualness of the authentication configuration.
I think it would be nice to have some mechanism in Guix system configuration 
that chooses how to do the low level authentication configuration in order to 
reach some (user-configured) policy goal automatically.  I think the same about 
PAM, samba-ad-dc and 389-ds-base, but hey :)

Anyway, at least greetd works fine now.  I'm using it :)

(I also tried configuring the wlgreet graphical greeter and I eventually gave 
up--especially since I don't really need that anyway)

It's still a display manager--but not a gnome display manager.

Cheers,
   Danny

Reply via email to