guix-patches
[Top][All Lists]
Advanced

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

[bug#35305] LightDM service


From: Brice Waegeneire
Subject: [bug#35305] LightDM service
Date: Sun, 12 Apr 2020 09:53:41 +0000
User-agent: Roundcube Webmail/1.3.8

Hello L p R n d n,

Using `set-xorg-configuration` with `lightdm-service-type` seems to be
working.

There is an error on vt1 at startup about some dbus stuff related to
“accountservice”. The cursor theme isn't set as well as the icon theme, it
seems; it may come from some missing environment variable as NixOS set a
few of them in their service[0].

After digging in the new service file I keep wondering if it's the right
way to go about implementing it. I tried to set a simple setting
for `lightdm-gtk-greeter` and I ended up with the following which doesn't
look intuitive:

--8<---------------cut here---------------start------------->8---
(service lightdm-service-type
         (lightdm-configuration
          (greeter-configuration-file
           (lightdm-gtk-greeter-configuration-file
            (lightdm-gtk-greeter-configuration
             (extra-config "hide-user-image=true"))))))
--8<---------------cut here---------------end--------------->8---

Furthermore `lightdm-service-type` only set a single seat while lightdm can have many of them. So maybe there should be a lightdm-seat` record used as
a list of seats in `lightdm-service-type`. Each greater will be able to
expand `lightdm-service-type` by appending a seat to it. Then the
configuration could look like this:

--8<---------------cut here---------------start------------->8---
(service lightdm-service-type)
(service lightdm-gtk-greeter-service-type
         (lightdm-gtk-greeter-configuration
          (assets (list guix-artwork))
          (theme-name "Guix")
          (extra-config "hide-user-image=true")))
--8<---------------cut here---------------end--------------->8---

Using this approch would also avoid populating “/etc”, at least for
`lightdm-grk-greeter`, since each greeter would be defined as a service and
could expand “/etc” if it really needs it. For `lightdm-gtk-greeter`
specifically avoiding putting config in “/etc/” can be done by compiling it with `-DCONFIG_FILE` pointing to `/run/current-system` And `lightdm` can be
started with `--config`.

Here is an example in how to make a conjuration file procedure more
readable while keeping under the line length limit by using `match-record`:

--8<---------------cut here---------------start------------->8---
(define (lightdm-gtk-greeter-configuration-file config)
  (match-record config <lightdm-gtk-greeter-configuration>
    (theme-name icon-theme-name cursor-theme-name cursor-size background
                extra-config)
   (mixed-text-file "lightdm-gtk-greeter.conf" "
[greeter]
theme-name = "           theme-name                   "
icon-theme-name = "      icon-theme-name              "
cursor-theme-name = "    cursor-theme-name            "
cursor-theme-size = "    (number->string cursor-size) "
background = "           background                   "
" extra-config                                        "
")))
--8<---------------cut here---------------end--------------->8---

BTW the default background could use one from Guix artwork repo like
“(file-append %artwork-repository "/grub/GuixSD-fully-black-16-9.svg")”.

WDYT? I may be completely off on the `lightdm-seat` part.

[0]: https://github.com/NixOS/nixpkgs/blob/release-19.09/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix#L18

Cheers,
- Brice





reply via email to

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