Commit graph

124 commits

Author SHA1 Message Date
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
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
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
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
Hugo Geoffroy a23798e478 nixos/x11: provide selected session to custom session
The custom session script is always executed (when it exists). This change
passes the selected session script and select session name to the custom session
script, so that it can defer to the selected session script based on the value
of the selected session name.
2019-08-28 16:58:12 +02:00
Сухарик a285cead44 nixos/display-managers: allow pure wayland sessions 2019-01-03 09:38:36 +03:00
worldofpeace 94af8ebde2 nixos/displayManager: only install wayland sessions if they exist in extraSessionFilePackages
Not everyone is using wayland just yet.
2018-12-22 01:15:09 -05:00
Tor Hedin Brønner 3c0e70402f nixos/displayManager: Note that sessionCommands aren't run on Wayland 2018-12-10 10:36:25 +01:00
Tor Hedin Brønner 9895ce24b4 nixos/displayManager: Install wayland sessions from extraSessionFilePackages 2018-12-09 11:04:42 +01:00
Matthew Bauer 1ffe83caa7
Merge pull request #42846 from ambrop72/optimus-prime-config-master
nixos/xserver: Implement configuration of NVIDIA Optimus via PRIME
2018-10-03 22:56:53 -05:00