Commit graph

320 commits

Author SHA1 Message Date
tobim 44a4a3839c
nixos/gdm: Fix pulseaudio tmpfiles structure (#80274)
* nixos/gdm: Fix pulseaudio tmpfiles structure

Fix the following startup failure of the sound service in the gdm
session that was introduced by #75893:
```
Feb 16 11:44:15 qp pulseaudio[1432]: W: [pulseaudio] core-util.c: Failed to open configuration file '/run/gdm/.config/pulse//daemon.conf': Not a directory
Feb 16 11:44:15 qp pulseaudio[1432]: W: [pulseaudio] daemon-conf.c: Failed to open configuration file: Not a directory
Feb 16 11:44:15 qp systemd[1380]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Feb 16 11:44:15 qp systemd[1380]: pulseaudio.service: Failed with result 'exit-code'.
Feb 16 11:44:15 qp systemd[1380]: Failed to start Sound Service.
```

Co-authored-by: worldofpeace <worldofpeace@protonmail.ch>
2020-02-23 07:50:19 -05:00
Ilya Fedin f7768c939a nixos/display-managers: Add DesktopNames parameter to generated desktop session files
Some display managers (e.g. SDDM) set the XDG_CURRENT_DESKTOP variable accroding to this parameter.
If this variable is not defined, there will be some problems (e.g. MATE doesn't have icons on the desktop).

Fixes https://github.com/NixOS/nixpkgs/issues/71427
2020-02-12 07:00:39 +04:00
Jan Tojnar bd9c5b933c
nixos/services.xserver: Fix legacy options for default wm without dm
We switched to unified default session option services.xserver.displayManager.defaultSession
and included fallback path for the legacy options. Unfortunately when only
services.xserver.windowManager.default is set and not services.xserver.desktopManager.default,
it got incorrectly converted to the new option.

This should fix that.

Closes: https://github.com/NixOS/nixpkgs/issues/76684
2020-02-06 02:34:56 +01:00
worldofpeace c95612a5a2 nixos/display-managers/auto: remove
This module allows root autoLogin, so we would break that for users, but
they shouldn't be using it anyways. This gives the impression like auto
is some special display manager, when it's just lightdm and special pam
rules to allow root autoLogin. It was created for NixOS's testing
so I believe this is where it belongs.
2020-01-29 19:05:46 -05:00
Elyhaka d18ac2bca1 gdm: refactor to properly handle wayland sessions 2020-01-18 10:56:11 +01:00
Anders Kaseorg 07ccbc099a nixos/gdm: Fix tmpfiles configuration syntax
Fixes this error from `nixos-rebuild switch` introduced by #75893:

setting up tmpfiles
[/etc/tmpfiles.d/nixos.conf:7] Invalid age 'yes'.
warning: error(s) occurred while switching to the new configuration

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2020-01-08 19:51:32 -08:00
worldofpeace 00c813a636
Merge pull request #75893 from worldofpeace/gdm-tmpfiles
nixos/gdm: use systemd tmpfiles instead of preStart
2020-01-06 09:51:59 -05:00
Tor Hedin Brønner 3d70d4ba0b
nixos/displayManager: fix typo in legacy sessions (#76626)
xsession gets passed `dm` `wm`, so the desktop manager would be launched
before the window manager resulting in a regular desktop manager
session.

Fixes https://github.com/NixOS/nixpkgs/issues/76625
2019-12-29 02:02:24 +01:00
worldofpeace 15a9c80c05 nixos/gdm: use systemd tmpfiles instead of preStart
Thet was a mess before. This should be more reliable.
2019-12-18 15:40:12 -05:00
Jan Tojnar 8dc5ff7dcf
nixos/displayManager: deprecate separate options for default wm/dm
The upstream session files display managers use have no concept of sessions being composed from
desktop manager and window manager. To be able to set upstream session files as default
session, we need a single option. Having two different ways to set default session would be confusing,
though, so we decided to deprecate the old method.

We also created separate script for each session, just like we already had a separate desktop
file for each one, and started using displayManager.sessionPackages mechanism to make the
session handling more uniform.
2019-12-15 04:16:20 +01:00
Tor Hedin Brønner 53ef29c138
nixos/lightdm: enable wayland sessions
Note: can't launch gnome on wayland due to duplicate entry names:
  https://github.com/CanonicalLtd/lightdm/issues/16
2019-12-15 04:16:20 +01:00
Tor Hedin Brønner d25365c3c1
nixos/displayManager: introduce defaultSession
There's two ways of providing graphical sessions now:
- `displayManager.session` via. `desktopManager.session` and
  `windowManager.session`
- `displayManager.sessionPackages`

`sessionPackages` doesn't make a distinction between desktop and window
managers. This makes selecting a session provided by a package using
`desktopManager.default` nonsensical.

We therefor introduce `displayManager.defaultSession` which can select a session
from either `displayManager.session` or `displayManager.sessionPackages`.

It will default to `desktopManager.default + windowManager.default` as before.
If the dm default is "none" it will select the first provided session from
`sessionPackages`.
2019-12-15 04:16:20 +01:00
Tor Hedin Brønner 58e5290fce
nixos/displayManager: check for provided sessions in mkDesktops 2019-12-15 04:16:20 +01:00
Tor Hedin Brønner dd7144b860
nixos/sessionPackages: provide session names in passthru
We want access to the valid session names at evaluation time.
2019-12-15 04:16:18 +01:00
Tor Hedin Brønner d362df6682
nixos/display-manager: extraSessionFilePackages -> sessionPackages 2019-12-15 04:14:56 +01:00
worldofpeace a24004fa38 nixos/lightdm-greeters/pantheon: show manual login card
I find this important to be default on for users in https://github.com/elementary/greeter/issues/394
2019-12-12 07:22:37 -05:00
Tor Hedin Brønner d04157fb98 nixos/gdm: do not force the session
Having a default session resulted in GDM not remembering the last used
session.

So do not force the session until setSessionScript is made aware of the
last session used.
2019-12-11 13:50:18 +01:00
Silvan Mosberger 4ee3e8b21d
nixos/treewide: Move rename.nix imports to their respective modules
A centralized list for these renames is not good because:
- It breaks disabledModules for modules that have a rename defined
- Adding/removing renames for a module means having to find them in the
central file
- Merge conflicts due to multiple people editing the central file
2019-12-10 02:51:19 +01:00
Jan Tojnar 8cbc862b83
dconf: move to top-level 2019-12-01 01:01:40 +01:00
worldofpeace 1b5df99e7a
Merge pull request #70295 from worldofpeace/mutter-eglstreams
Mutter eglstreams
2019-11-27 05:29:58 +00:00
worldofpeace 519448d2e3 nixos/gdm: don't raise an Exception in set-session script
https://github.com/NixOS/nixpkgs/pull/73378#discussion_r349825541
2019-11-22 18:05:31 -05:00
worldofpeace bec88e1110
Merge pull request #73378 from worldofpeace/gdm-default-session
nixos/gdm: make desktopManager.default work
2019-11-22 22:49:15 +00:00
worldofpeace d8b50bfe47 nixos/gdm: make desktopManager.default work
Unfortunately, you can't configure the default user-session
with GDM like lightdm. I've opened a feature request [0]
but I'd like to be able to do this now.

We use a GObject Python script using bindings to AccountsService
to achieve this. I'm hoping the reliable heuristic for session names
is the file's basename. We also have some special logic for which
method to use to set the default session. It seems set_x_session is
deprecated, and thusly the XSession key, but if that method isn't used
when it's an xsession it won't be the default in GDM.

[0]: https://gitlab.gnome.org/GNOME/gdm/issues/535
2019-11-22 17:47:03 -05:00
worldofpeace d41a2e3398 nixos/gdm: disable wayland when modesetting is disabled
Probably a good idea to have.
2019-11-19 15:34:39 -05:00
worldofpeace 84e6784aae nixos/gdm: add nvidiaWayland option 2019-11-19 15:34:39 -05:00
worldofpeace ce26b3eaf0 nixos/slim: remove
The SLIM project is abandoned and their last release was in 2013.
Because of this it poses a security risk to systems, no one is working
on it or picked up maintenance. It also lacks compatibility with systemd
and logind sessions. For users, there liikely isn't anything like slim
that's as lightweight in terms of dependencies.
2019-11-11 17:10:41 -05:00
ft 5834d78a20 ssdm: fix identifier for xserver-wrapper 2019-10-19 16:36:29 -07:00
worldofpeace 6d5fe6b8ed
Merge pull request #71065 from worldofpeace/gdm-no-plymouth-conflict
nixos/gdm: don't conflict with plymouth-quit
2019-10-13 17:34:00 +00:00
worldofpeace ed20a541c5 nixos/gdm: don't conflict with plymouth-quit
Co-Authored-By: Tor Hedin Brønner <torhedinbronner@gmail.com>
2019-10-13 13:30:43 -04:00
Tor Hedin Brønner d15e5b02fe
nixos/lightdm: do not conflict with plymouth (#71061)
Having `display-manager` conflict with `plymouth-quit` causes this lock up:

 - `plymouth-quit-wait` starts up, waiting for plymouth-quit to run
 - `lightdm` starts up
 - `plymouth-quit` can't start, it conflicts with lightdm
 - `plymouth-quit-wait` keeps waiting on plymouth-quit to kill plymouthd

The idea is having LightDM control when plymouth quits, but communication with
plymouth was broken: https://github.com/NixOS/nixpkgs/pull/71064

Unfortunately having the conflict breaks switching to configurations with
plymouth enabled. So we still need to remove the conflict.

fixes #71034
2019-10-13 10:03:54 +02:00
Tor Hedin Brønner 5b7c900192
nixos/gdm: do not restart on reload switch (#70357)
Not entirely sure how this works, but this does seem to fix reload switch
killing the current graphical session.
2019-10-11 20:07:16 +02:00
worldofpeace 67ac11e072 nixos/lightdm: improve systemd service
These improvements come from shopping around
at what other downstreams have done with their
systemd units and recent changes like [0] to gdm.

Note there's no requries or after on dbus.socket because
settings BusName will set this up automaticallly and
give it a type of dbus.

[0]: 2d57f45962
2019-10-06 10:23:21 -04:00
Tor Hedin Brønner 9be5321097 nixos/gdm: follow upstream's service config 2019-10-05 05:15:29 +02:00
Tor Hedin Brønner 1efac91ca4 nixos/gdm: make config dir for gnome-initial-setup
Observed failure to lauch gdm in a VM due to missing /run/gdm.config.
2019-10-05 05:15:29 +02:00
worldofpeace f462b376bb
nixos/gdm: prevent g-i-s from running 2019-10-03 00:09:12 +02:00
Tor Hedin Brønner fc43be57f0 nixos/gdm: start after getty@tty1
GDM is now killed if tty1 is started after gdm is launched. This follows
upstream's gdm service config.

This might cause problems with nixos-rebuild switch though. See the reasoning
and work that led to not following upstream on this:
  https://github.com/NixOS/nixpkgs/issues/21439
  4a180da
  c46d4da
2019-09-30 19:39:49 +02:00
worldofpeace e4cce87fba nixos/gdm: update description
GDM isn't dangerous anymore in NixOS.
2019-09-27 17:42:39 -04:00
worldofpeace 760b677c19
Merge pull request #68729 from worldofpeace/elementary-greeter/master
nixos/pantheon: use Pantheon's greeter
2019-09-18 11:16:21 -04:00
worldofpeace 5669b06235 lightdm-mini-greeter: put xgreeters in passthru 2019-09-18 11:13:43 -04:00
worldofpeace b558eb8329 nixos/lightdm-gtk-greeter: don't wrap in module 2019-09-18 11:13:43 -04:00
worldofpeace 7814a2f566 nixos/enso-os: don't wrap in module 2019-09-18 11:13:42 -04:00
worldofpeace feab607ae5 nixos/sddm: don't set XDG_DATA_DIRS
environment.profileRelativeSessionVariables should make this unneeded.
2019-09-18 11:13:42 -04:00
worldofpeace 453036c8a7 nixos/gdm: don't set XCURSOR_PATH 2019-09-18 11:13:42 -04:00
Robert Helgesson 866cc3e792 nixos/system-environment: introduce environment.profileRelativeSessionVariables
There is a need for having sessionVariables set relative to the Nix Profiles.
Such as in #68383.
2019-09-18 11:09:43 -04:00
worldofpeace a99ef0345d nixos/lightdm/pantheon: provide xgreeters in package 2019-09-13 21:31:12 -04:00
worldofpeace 4b2e250f9e nixos/lightdm/pantheon: drop warning
This issue has been fixed in the latest release.
2019-09-13 21:31:03 -04:00
worldofpeace 4e89375846
Merge pull request #67917 from worldofpeace/lightdm-pam-gnome-keyring
nixos/lightdm: fix pam rules
2019-09-06 18:50:07 -04:00
worldofpeace 0c602541a3 nixos/lightdm: fix pam rules
Rules are a translation of what's done in the
GDM module and adjustments based of looking at
Arch Linux's configuration and upstream's.

A side effect of this change is that gnome-keyring
and kwallet modules should work as expected when in-
cluded.

Fixes #64259 #62045
2019-09-06 18:22:22 -04:00
Vladimír Čunát f21211ebfe
Merge branch 'master' into staging 2019-09-02 23:25:24 +02:00
Silvan Mosberger 478e7184f8
nixos/modules: Remove all usages of types.string
And replace them with a more appropriate type

Also fix up some minor module problems along the way
2019-08-31 18:19:00 +02:00