Commit graph

135 commits

Author SHA1 Message Date
Bobby Rong 3c20ab171f
nixos/xfce: Use upstream name for X11 session
This allows keeping the name consistent with the wayland
session we are introducing later.
2024-12-15 20:08:15 +08:00
Jan Tojnar 2a2796c2bc nixos/xserver: Remove with statements
They masked the evaluation error caused by removal of
`defaultSessionFromLegacyOptions` variable
in 6be2bfcc32
2024-05-02 23:20:02 +02:00
Jan Tojnar 8bf5752a3c nixos/xserver: Remove {desktop,window}Manager.default options
These have been deprecated since NixOS 20.03.

Also fixes evaluation error caused by moving
the `defaultSessionFromLegacyOptions` variable
in 6be2bfcc32
2024-05-02 23:20:02 +02:00
Gabriel Volpe d864c36d57
tree-wide: use mapCartesianProduct 2024-04-15 19:17:53 +02:00
stuebinm 6afb255d97 nixos: remove all uses of lib.mdDoc
these changes were generated with nixq 0.0.2, by running

  nixq ">> lib.mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> Inherit >> mdDoc[remove]" --batchmode nixos/**.nix

two mentions of the mdDoc function remain in nixos/, both of which
are inside of comments.

Since lib.mdDoc is already defined as just id, this commit is a no-op as
far as Nix (and the built manual) is concerned.
2024-04-13 10:07:35 -07:00
Sandro Jäckel 476b8c276e
treewide: rename renamed sddm/displayManager settings 2024-04-08 21:56:38 +02:00
Sandro Jäckel 6be2bfcc32
nixos/display-managers: extract generic display-manager bits
Some settings which where before inside the xserver module, are generic
and also required for SDDM under wayland. To make them easily re-usable
lets extract them.
2024-04-08 21:56:36 +02:00
Bobby Rong 0b41a85c95
nixos/display-managers: Don't force graphical-session.target activation for Pantheon
See Nixpkgs pull request 233981.
2024-03-17 13:42:33 +08:00
Sandro Jäckel 2db74e8339
nixos/display-managers: only link desktop derivation if sessionPackages is not empty
On a headless system there are no entries and we do not need to add it
to XDG_DATA_DIRS.
2024-01-03 23:48:54 +01:00
Anthony Roussel e30f48be94
treewide: fix redirected and broken URLs
Using the script in maintainers/scripts/update-redirected-urls.sh
2023-11-11 10:49:01 +01:00
K900 d26393d60c nixos/x11/display-managers: don't touch graphical-session.target in xsession-wrapper if the desktop knows how to handle it
This is not correct and will in fact break things because they try to run before the target is reached.
Ideally we'd get rid of it entirely, but WM users rely on this behavior, so allowlist some desktops
to get the sane behavior, and fake the session for the rest until upstreams/NixOS modules catch up.
2023-07-08 15:09:39 +03:00
pennae 9547123258 nixos/*: convert internal option descriptions to MD
we'll have to do it eventually, may as well be now.
2022-08-31 16:32:54 +02:00
pennae ef176dcf7e nixos/*: automatically convert option descriptions
conversions were done using https://github.com/pennae/nix-doc-munge
using (probably) rev f34e145 running

    nix-doc-munge nixos/**/*.nix
    nix-doc-munge --import nixos/**/*.nix

the tool ensures that only changes that could affect the generated
manual *but don't* are committed, other changes require manual review
and are discarded.
2022-08-31 16:32:53 +02:00
Thiago Kenji Okada 2d92f70c32
Merge pull request #188539 from linj-fork/pr/fix-fontconfig-hint
nixos/fontconfig: add missing config for Xft.hintstyle
2022-08-27 22:46:14 +01:00
Lin Jian c5b6df912b
nixos/fontconfig: add missing config for Xft.hintstyle
This config is removed when removing[1] fonts.fontconfig.hinting.style
option.

However, when adding[2] that option back, this config is missing.

[1]: 65592837b6
[2]: 659096dd89
2022-08-28 05:24:41 +08:00
pennae 51a11254a7 nixos/*: literalDocBook -> literalMD
no change to rendered output
2022-08-27 19:18:29 +02:00
LoveIsGrief 881512e23f
x11: Source .profile and .xprofile
Other popular distros (OpenSuse, Ubuntu, Gentoo, Arch) read $HOME/.profile when starting X11 display managers.
When moving to nixOS, that is then broken leading to unpredictable behavior (probably programs not working).

This adds similar behavior to https://github.com/sddm/sddm/blob/develop/data/scripts/Xsession

Related to #185979
2022-08-17 20:37:33 +02:00
pennae 2e751c0772 treewide: automatically md-convert option descriptions
the conversion procedure is simple:

 - find all things that look like options, ie calls to either `mkOption`
   or `lib.mkOption` that take an attrset. remember the attrset as the
   option
 - for all options, find a `description` attribute who's value is not a
   call to `mdDoc` or `lib.mdDoc`
 - textually convert the entire value of the attribute to MD with a few
   simple regexes (the set from mdize-module.sh)
 - if the change produced a change in the manual output, discard
 - if the change kept the manual unchanged, add some text to the
   description to make sure we've actually found an option. if the
   manual changes this time, keep the converted description

this procedure converts 80% of nixos options to markdown. around 2000
options remain to be inspected, but most of those fail the "does not
change the manual output check": currently the MD conversion process
does not faithfully convert docbook tags like <code> and <package>, so
any option using such tags will not be converted at all.
2022-07-30 15:16:34 +02:00
Vladimír Čunát fd609f9233
nixos services.xserver.displayManager.session: drop type
For now at least.  I expect someone will find a working type later.
It's incorrect and was causing bad issues.  Example test case:
nix-instantiate nixos/release.nix -A tests.xfce.x86_64-linux --dry-run

This is a partial revert of commit b2d803c from PR #162271.
2022-03-19 21:11:41 +01:00
Silvan Mosberger b2d803ca57 nixos/treewide: Add last missing option types
Co-Authored-By: Janne Heß <janne@hess.ooo>
2022-02-28 22:50:06 +01:00
pennae 9407761763 treewide: add defaultText for options using other shortcut bindings 2021-12-09 01:42:24 +01:00
pennae 2d564521c0 treewide: add literalDocBook text to options with complex defaults
some options have default that are best described in prose, such as
defaults that depend on the system stateVersion, defaults that are
derivations specific to the surrounding context, or those where the
expression is much longer and harder to understand than a simple text
snippet.
2021-12-09 01:38:24 +01:00
pennae ed673a69db treewide: add defaultText for options with simple cfg.* expression defaults
adds defaultText for options with defaults that use only literals, full config.*
paths, and the cfg shortcut binding.
2021-12-09 01:14:16 +01:00
oxalica 91812b84b8
sddm: respect services.xserver.displayManager.defaultSession 2021-11-01 18:57:59 +08:00
Julien Moutinho 808ad2afe1 nixos/display-managers: fix cross-compiling 2021-10-20 02:29:05 +02:00
Naïm Favier 2ddc335e6f
nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
Nikolay Amiantov bd18e491a9 fontconfig service: drop dpi option
Recommend to use services.xserver.dpi option instead. Mention in the
documentation that it's a sledgehammer approach and monitor settings should be
used instead.

Also don't set DPI in fontconfig settings; fontconfig should use Xft settings
by default so let's not override one value in multiple places. For example,
user now can set DPI via ~/.Xresources properly.
2021-08-20 16:55:07 +00:00
Stefan Frijters 580cf02c19
nixos/x11: Be more defensive when removing XCOMPOSECACHE 2021-02-27 17:55:58 +01:00
Stefan Frijters ee713d36bc
nixos/x11: Respect XCOMPOSECACHE/XDG_DATA_HOME if set 2021-02-27 17:55:48 +01:00
Stefan Frijters 37460768e2
nixos/x11: Source .xprofile earlier in xsession-wrapper
This allows users to set e.g. XCOMPOSECACHE before it's used.
2021-02-27 17:55:47 +01:00
Jacek Galowicz 001ba3934e Use lib.cartesianProducOfSets where lib.crossLists was used 2021-01-28 23:49:05 +01:00
WORLDofPEACE 755ba171c7 nixos/display-managers: add sessionData.desktops to XDG_DATA_DIRS
Fixes #100108

Alternative to https://github.com/NixOS/nixpkgs/pull/100112 which doesn't break stuff.
2020-10-21 14:39:39 -04:00
Jan Tojnar 2a4607f442
Revert "nixos/display-managers: install sessionData.desktops"
This reverts commit 3cd2b59b8c.

It created infinite recursion when using LXQt, since lxqt module
uses `config.system.path` in `services.xserver.desktopManager.session`.
`config.system.path` is a `buildEnv` that depends on `environment.systemPackages`.
2020-10-15 07:32:08 +02:00
Vladimír Čunát 338b25697c
Merge branch 'master' into staging-next
Quite many rebuilds from master:
> Estimating rebuild amount by counting changed Hydra jobs.
>    3926 x86_64-darwin
>    4645 x86_64-linux
2020-10-10 11:32:10 +02:00
WORLDofPEACE 3cd2b59b8c nixos/display-managers: install sessionData.desktops
Fixes https://github.com/NixOS/nixpkgs/issues/100108
2020-10-09 18:38:16 -04:00
Robert Helgesson f292a27f44
nixos/dbus: always use socket activates user session
This removes the `services.dbus.socketActivated` and
`services.xserver.startDbusSession` options. Instead the user D-Bus
session is always socket activated.
2020-09-13 11:17:16 +02:00
WORLDofPEACE e044909aba
Merge pull request #93764 from evenbrenden/xdg-session-id-user-units
nixos/displayManager: add XDG_SESSION_ID to systemd user environment
2020-09-08 21:29:24 -04:00
Even Brenden 660882d883 nixos/displayManager: add XDG_SESSION_ID to systemd user environment
xss-lock needs XDG_SESSION_ID to respond to loginctl lock-session(s)
(and possibly other session operations such as idle hint management).
This change adds XDG_SESSION_ID to the list of imported environment
variables when starting systemctl.

Inspired by home-manager, add importVariables configuration.

Set session to XDG_SESSION_ID when running xss-lock as a service.

Co-authored-by: misuzu <bakalolka@gmail.com>
2020-09-05 20:36:18 +02:00
Jörg Thalheim ba930d8679
nixos/modules: remove trailing whitespace
This leads to ci failure otherwise if the file gets changed.
git-blame can ignore whitespace changes.
2020-08-07 14:45:39 +01:00
worldofpeace 490cd7889e nixos/displayManager: make autoLogin options independent of DM type
Co-authored-by: volth <volth@volth.com>
2020-07-09 21:15:35 -04:00
Florian Klink 3fcfcb8bcb nixos/display-managers: always run systemctl of the currently running systemd 2020-05-21 10:32:59 +02:00
adisbladis 0f1eb8cd79
nixos/display-managers: Also set DBUS_SESSION_BUS_ADDRESS in the wrapper script context 2020-05-20 23:09:46 +01:00
adisbladis effceb8bfe
nixos/display-managers: Use dbus socket unit shipped by upstream
This ensures a correct DBUS_SESSION_BUS_ADDRESS environment variable
is set and imported into the systemd user environment.

Previously this would refer to a non-existing path preventing commands
interacting with the systemd manager from working.

Closes #87502
2020-05-19 00:40:55 +01:00
worldofpeace 3ad74e3997 nixos/display-managers: don't start pulseaudio
Hey, we have sockets.
2020-03-29 13:59:41 -04:00
José Romildo Malaquias fb47c6fbac nixos.display-managers: use new attribute for desktop names 2020-03-28 11:13:13 -03: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
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
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 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