Merge pull request #304902 from SuperSandro2000/libinput-xserver

nixos/libinput: move out of xserver

Sandro 85808e4b 3ed7049c

Changed files
+36 -30
nixos
doc
manual
modules
tests
+1 -1
nixos/doc/manual/configuration/profiles/graphical.section.md
···
It sets [](#opt-services.xserver.enable),
[](#opt-services.displayManager.sddm.enable),
[](#opt-services.xserver.desktopManager.plasma5.enable),
-
and [](#opt-services.xserver.libinput.enable) to true. It also
includes glxinfo and firefox in the system packages list.
···
It sets [](#opt-services.xserver.enable),
[](#opt-services.displayManager.sddm.enable),
[](#opt-services.xserver.desktopManager.plasma5.enable),
+
and [](#opt-services.libinput.enable) to true. It also
includes glxinfo and firefox in the system packages list.
+2 -2
nixos/doc/manual/configuration/x-windows.chapter.md
···
```nix
{
-
services.xserver.libinput.enable = true;
}
```
···
```nix
{
-
services.xserver.libinput.touchpad.tapping = false;
}
```
···
```nix
{
+
services.libinput.enable = true;
}
```
···
```nix
{
+
services.libinput.touchpad.tapping = false;
}
```
+1 -1
nixos/modules/installer/tools/tools.nix
···
# };
# Enable touchpad support (enabled default in most desktopManager).
-
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with ‘passwd’.
# users.users.alice = {
···
# };
# Enable touchpad support (enabled default in most desktopManager).
+
# services.libinput.enable = true;
# Define a user account. Don't forget to set a password with ‘passwd’.
# users.users.alice = {
+1 -1
nixos/modules/module-list.nix
···
./services/hardware/joycond.nix
./services/hardware/kanata.nix
./services/hardware/lcd.nix
./services/hardware/lirc.nix
./services/hardware/nvidia-container-toolkit
./services/hardware/monado.nix
···
./services/x11/gdk-pixbuf.nix
./services/x11/hardware/cmt.nix
./services/x11/hardware/digimend.nix
-
./services/x11/hardware/libinput.nix
./services/x11/hardware/synaptics.nix
./services/x11/hardware/wacom.nix
./services/x11/imwheel.nix
···
./services/hardware/joycond.nix
./services/hardware/kanata.nix
./services/hardware/lcd.nix
+
./services/hardware/libinput.nix
./services/hardware/lirc.nix
./services/hardware/nvidia-container-toolkit
./services/hardware/monado.nix
···
./services/x11/gdk-pixbuf.nix
./services/x11/hardware/cmt.nix
./services/x11/hardware/digimend.nix
./services/x11/hardware/synaptics.nix
./services/x11/hardware/wacom.nix
./services/x11/imwheel.nix
+4 -2
nixos/modules/profiles/graphical.nix
···
services.xserver = {
enable = true;
desktopManager.plasma5.enable = true;
-
libinput.enable = true; # for touchpad support on many laptops
};
-
services.displayManager.sddm.enable = true;
# Enable sound in virtualbox appliances.
hardware.pulseaudio.enable = true;
···
services.xserver = {
enable = true;
desktopManager.plasma5.enable = true;
};
+
services = {
+
displayManager.sddm.enable = true;
+
libinput.enable = true; # for touchpad support on many laptops
+
};
# Enable sound in virtualbox appliances.
hardware.pulseaudio.enable = true;
+1 -1
nixos/modules/services/desktop-managers/plasma6.nix
···
services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true);
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
-
services.xserver.libinput.enable = mkDefault true;
# Extra UDEV rules used by Solid
services.udev.packages = [
···
services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true);
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
+
services.libinput.enable = mkDefault true;
# Extra UDEV rules used by Solid
services.udev.packages = [
+2 -2
nixos/modules/services/display-managers/sddm.nix
···
let
westonIni = (pkgs.formats.ini { }).generate "weston.ini" {
libinput = {
-
enable-tap = xcfg.libinput.mouse.tapping;
-
left-handed = xcfg.libinput.mouse.leftHanded;
};
keyboard = {
keymap_model = xcfg.xkb.model;
···
let
westonIni = (pkgs.formats.ini { }).generate "weston.ini" {
libinput = {
+
enable-tap = config.services.libinput.mouse.tapping;
+
left-handed = config.services.libinput.mouse.leftHanded;
};
keyboard = {
keymap_model = xcfg.xkb.model;
+1 -1
nixos/modules/services/x11/desktop-managers/budgie.nix
···
services.geoclue2.enable = mkDefault true; # for BCC's Privacy > Location Services panel.
services.upower.enable = config.powerManagement.enable; # for Budgie's Status Indicator and BCC's Power panel.
-
services.xserver.libinput.enable = mkDefault true; # for BCC's Mouse panel.
services.colord.enable = mkDefault true; # for BCC's Color panel.
services.gnome.at-spi2-core.enable = mkDefault true; # for BCC's A11y panel.
services.accounts-daemon.enable = mkDefault true; # for BCC's Users panel.
···
services.geoclue2.enable = mkDefault true; # for BCC's Privacy > Location Services panel.
services.upower.enable = config.powerManagement.enable; # for Budgie's Status Indicator and BCC's Power panel.
+
services.libinput.enable = mkDefault true; # for BCC's Mouse panel.
services.colord.enable = mkDefault true; # for BCC's Color panel.
services.gnome.at-spi2-core.enable = mkDefault true; # for BCC's A11y panel.
services.accounts-daemon.enable = mkDefault true; # for BCC's Users panel.
+1 -1
nixos/modules/services/x11/desktop-managers/cinnamon.nix
···
services.touchegg.enable = mkDefault true;
services.udisks2.enable = true;
services.upower.enable = mkDefault config.powerManagement.enable;
-
services.xserver.libinput.enable = mkDefault true;
services.xserver.updateDbusEnvironment = true;
networking.networkmanager.enable = mkDefault true;
···
services.touchegg.enable = mkDefault true;
services.udisks2.enable = true;
services.upower.enable = mkDefault config.powerManagement.enable;
+
services.libinput.enable = mkDefault true;
services.xserver.updateDbusEnvironment = true;
networking.networkmanager.enable = mkDefault true;
+1 -1
nixos/modules/services/x11/desktop-managers/deepin.nix
···
services.gnome.gnome-keyring.enable = mkDefault true;
services.bamf.enable = mkDefault true;
-
services.xserver.libinput.enable = mkDefault true;
services.udisks2.enable = true;
services.upower.enable = mkDefault config.powerManagement.enable;
networking.networkmanager.enable = mkDefault true;
···
services.gnome.gnome-keyring.enable = mkDefault true;
services.bamf.enable = mkDefault true;
+
services.libinput.enable = mkDefault true;
services.udisks2.enable = true;
services.upower.enable = mkDefault config.powerManagement.enable;
networking.networkmanager.enable = mkDefault true;
+1 -1
nixos/modules/services/x11/desktop-managers/enlightenment.nix
···
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
-
services.xserver.libinput.enable = mkDefault true;
services.dbus.packages = [ e.efl ];
···
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
+
services.libinput.enable = mkDefault true;
services.dbus.packages = [ e.efl ];
+1 -1
nixos/modules/services/x11/desktop-managers/gnome.nix
···
# services.packagekit.enable = mkDefault true;
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
-
services.xserver.libinput.enable = mkDefault true; # for controlling touchpad settings via gnome control center
# Explicitly enabled since GNOME will be severely broken without these.
xdg.mime.enable = true;
···
# services.packagekit.enable = mkDefault true;
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
+
services.libinput.enable = mkDefault true; # for controlling touchpad settings via gnome control center
# Explicitly enabled since GNOME will be severely broken without these.
xdg.mime.enable = true;
+1 -1
nixos/modules/services/x11/desktop-managers/lxqt.nix
···
services.upower.enable = config.powerManagement.enable;
-
services.xserver.libinput.enable = mkDefault true;
xdg.portal.lxqt.enable = mkDefault true;
···
services.upower.enable = config.powerManagement.enable;
+
services.libinput.enable = mkDefault true;
xdg.portal.lxqt.enable = mkDefault true;
+1 -1
nixos/modules/services/x11/desktop-managers/mate.nix
···
services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
services.gvfs.enable = true;
services.upower.enable = config.powerManagement.enable;
-
services.xserver.libinput.enable = mkDefault true;
security.pam.services.mate-screensaver.unixAuth = true;
···
services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
services.gvfs.enable = true;
services.upower.enable = config.powerManagement.enable;
+
services.libinput.enable = mkDefault true;
security.pam.services.mate-screensaver.unixAuth = true;
+1 -1
nixos/modules/services/x11/desktop-managers/pantheon.nix
···
services.gsignond.plugins = with pkgs.gsignondPlugins; [ lastfm mail oauth ];
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
-
services.xserver.libinput.enable = mkDefault true;
services.xserver.updateDbusEnvironment = true;
services.zeitgeist.enable = mkDefault true;
services.geoclue2.enable = mkDefault true;
···
services.gsignond.plugins = with pkgs.gsignondPlugins; [ lastfm mail oauth ];
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
+
services.libinput.enable = mkDefault true;
services.xserver.updateDbusEnvironment = true;
services.zeitgeist.enable = mkDefault true;
services.geoclue2.enable = mkDefault true;
+1 -1
nixos/modules/services/x11/desktop-managers/plasma5.nix
···
services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true);
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
-
services.xserver.libinput.enable = mkDefault true;
# Extra UDEV rules used by Solid
services.udev.packages = [
···
services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true);
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
+
services.libinput.enable = mkDefault true;
# Extra UDEV rules used by Solid
services.udev.packages = [
+1 -1
nixos/modules/services/x11/desktop-managers/xfce.nix
···
services.gvfs.enable = true;
services.tumbler.enable = true;
services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
-
services.xserver.libinput.enable = mkDefault true; # used in xfce4-settings-manager
# Enable default programs
programs.dconf.enable = true;
···
services.gvfs.enable = true;
services.tumbler.enable = true;
services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
+
services.libinput.enable = mkDefault true; # used in xfce4-settings-manager
# Enable default programs
programs.dconf.enable = true;
+2 -2
nixos/modules/services/x11/hardware/cmt.nix
···
assertions = [
{
-
assertion = !config.services.xserver.libinput.enable;
message = ''
cmt and libinput are incompatible, meaning you cannot enable them both.
-
To use cmt you need to disable libinput with `services.xserver.libinput.enable = false`
If you haven't enabled it in configuration.nix, it's enabled by default on a
different xserver module.
'';
···
assertions = [
{
+
assertion = !config.services.libinput.enable;
message = ''
cmt and libinput are incompatible, meaning you cannot enable them both.
+
To use cmt you need to disable libinput with `services.libinput.enable = false`
If you haven't enabled it in configuration.nix, it's enabled by default on a
different xserver module.
'';
+8 -4
nixos/modules/services/x11/hardware/libinput.nix nixos/modules/services/hardware/libinput.nix
···
with lib;
-
let cfg = config.services.xserver.libinput;
xorgBool = v: if v then "on" else "off";
···
in {
imports =
-
(map (option: mkRenamedOptionModule ([ "services" "xserver" "libinput" option ]) [ "services" "xserver" "libinput" "touchpad" option ]) [
"accelProfile"
"accelSpeed"
"buttonMapping"
···
"transformationMatrix"
"disableWhileTyping"
"additionalOptions"
-
]);
options = {
-
services.xserver.libinput = {
enable = mkEnableOption "libinput" // {
default = config.services.xserver.enable;
defaultText = lib.literalExpression "config.services.xserver.enable";
···
with lib;
+
let cfg = config.services.libinput;
xorgBool = v: if v then "on" else "off";
···
in {
imports =
+
(map (option: mkRenamedOptionModule ([ "services" "xserver" "libinput" option ]) [ "services" "libinput" "touchpad" option ]) [
"accelProfile"
"accelSpeed"
"buttonMapping"
···
"transformationMatrix"
"disableWhileTyping"
"additionalOptions"
+
]) ++ [
+
(mkRenamedOptionModule [ "services" "xserver" "libinput" "enable" ] [ "services" "libinput" "enable" ])
+
(mkRenamedOptionModule [ "services" "xserver" "libinput" "mouse" ] [ "services" "libinput" "mouse" ])
+
(mkRenamedOptionModule [ "services" "xserver" "libinput" "touchpad" ] [ "services" "libinput" "touchpad" ])
+
];
options = {
+
services.libinput = {
enable = mkEnableOption "libinput" // {
default = config.services.xserver.enable;
defaultText = lib.literalExpression "config.services.xserver.enable";
+3 -3
nixos/modules/services/x11/hardware/synaptics.nix
···
enable = mkOption {
type = types.bool;
default = false;
-
description = "Whether to enable touchpad support. Deprecated: Consider services.xserver.libinput.enable.";
};
dev = mkOption {
···
assertions = [
{
-
assertion = !config.services.xserver.libinput.enable;
-
message = "Synaptics and libinput are incompatible, you cannot enable both (in services.xserver).";
}
];
···
enable = mkOption {
type = types.bool;
default = false;
+
description = "Whether to enable touchpad support. Deprecated: Consider services.libinput.enable.";
};
dev = mkOption {
···
assertions = [
{
+
assertion = !config.services.libinput.enable;
+
message = "Synaptics and libinput are incompatible, you cannot enable both.";
}
];
+1 -1
nixos/tests/libinput.nix
···
test-support.displayManager.auto.user = "alice";
-
services.xserver.libinput = {
enable = true;
mouse = {
naturalScrolling = true;
···
test-support.displayManager.auto.user = "alice";
+
services.libinput = {
enable = true;
mouse = {
naturalScrolling = true;