Offer a way to override default config via /usr/share/sddm/config.d #217

Closed
shadeslayer opened this Issue Jul 1, 2014 · 18 comments

Comments

Projects
None yet
6 participants

From a downstream perspective, when shipping multiple themes, it would be awesome to have themes install a config file to /usr/share/sddm/config.d to override the default theme from /etc/sddm.conf

Alternatively, maybe implementing a fall back mechanism would make sense as well. For eg. Try to load theme from /etc/sddm.conf , if theme doesn't exist check /usr/share/sddm/conf.d

Contributor

jriddell commented Apr 2, 2015

This is needed to make nvidia-prime support elegant
#393

@jleclanche jleclanche added the feature label Jul 16, 2015

@plfiorini plfiorini added the settings label Aug 20, 2015

Owner

plfiorini commented Aug 20, 2015

👍 except for minor details regarding the location

I would follow the systemd convention here so SDDM should:

  • Load /etc/sddm.conf (for compatibility - to be dropped after a few releases after this stuff gets implemented)
  • Load /etc/sddm/sddm.conf (new main config file name)
  • Load /usr/lib/sddm/sddm.conf.d/*.conf sorting in alphabetical order
  • Load /etc/sddm/sddm.conf.d/*.conf sorting in alphabetical order

/etc/sddm/sddm.conf.d/*.conf is where the system administrator puts his stuff
/usr/lib/sddm/sddm.conf.d/*.conf is where the distro puts its stuff

@plfiorini plfiorini added this to the post-0.12 milestone Aug 21, 2015

Contributor

majewsky commented Aug 22, 2015

I think the last one in your list should be /etc/sddm/sddm.conf.d/*.conf. The convention is to append .d/*.conf to the filename of the singular config file, in this case /etc/sddm/sddm.conf.

Compare, for example, /etc/systemd/journald.conf and /etc/systemd/journald.conf.d/*.conf.

Owner

plfiorini commented Aug 22, 2015

Fixed thanks, it was a typo

@plfiorini plfiorini modified the milestones: 0.13, post-0.12 Sep 5, 2015

@plfiorini plfiorini self-assigned this Sep 5, 2015

@plfiorini plfiorini modified the milestones: 0.14, 0.13 Oct 19, 2015

Member

jleclanche commented Nov 5, 2015

@plfiorini We could do it like supervisor does it:

[include]
files = /etc/supervisor.d/*.ini
Member

jleclanche commented Nov 5, 2015

@plfiorini btw this would take backwards compatibility out of our hands and into the distros', then :)

Owner

plfiorini commented Nov 5, 2015

@jleclanche i'd like to have more predictable file locations and copy the systemd pattern because it is likely to be more familiar to our user base

Member

jleclanche commented Nov 6, 2015

@plfiorini with an include directive, we could do whatever we want.

Contributor

majewsky commented Nov 6, 2015

Indeed, but what's the added value compared to the cost of inconsistency between distributions?

Member

jleclanche commented Nov 6, 2015

Frankly sddm's not here to solve how inconsistent distros are between each other.

Contributor

majewsky commented Nov 6, 2015

Yes, but there's no need to add insult to injury when there is no actual usecase for a generic include syntax.

Member

jleclanche commented Nov 6, 2015

Huh? There's a use case right there, we don't get to worry about backwards compatibility and we're as flexible as distros want.

Contributor

majewsky commented Nov 6, 2015

Which use-case? When will distros ever need anything beyond /usr/share/sddm.conf.d/*.conf?

Member

jleclanche commented Nov 6, 2015

Implementing these paths is not cheap, it's a maintenance burden and a promise of forward compatibility. An include directive means we don't worry about this.

Contributor

majewsky commented Nov 9, 2015

How do you see any maintenance burden involved in writing three or four paths into the code and calling it a day? It's not like the FHS changes every other day.

If/When SDDM gains support for those config drop-ins, it would be easier to address item 4 of issue #78 (provide per-seat settings in sddm.conf), specially if second approach proposed there becomes the prefered one.

@plfiorini plfiorini modified the milestones: 0.15, 0.14 May 2, 2016

@plfiorini plfiorini modified the milestones: 0.16, 0.15 Aug 23, 2016

Hi
Is there any ETA on this? IMO the maintainer should just pick one approach and call it a day.

Owner

plfiorini commented Dec 17, 2016

@shadeslayer Right, it should be this way:

  • Load /etc/sddm.conf (for compatibility - to be dropped after a few releases after this stuff gets implemented)
  • Load /etc/sddm/sddm.conf (new main config file name)
  • Load /usr/lib/sddm/sddm.conf.d/*.conf sorting in alphabetical order
  • Load /etc/sddm/sddm.conf.d/*.conf sorting in alphabetical order

/etc/sddm/sddm.conf.d/*.conf is where the system administrator puts his stuff
/usr/lib/sddm/sddm.conf.d/*.conf is where the distro puts its stuff

It's an established convention, plus a factory reset would still provide good defaults from the vendor

@plfiorini plfiorini closed this Nov 20, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment