[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