Merge pull request #304902 from SuperSandro2000/libinput-xserver

nixos/libinput: move out of xserver
This commit is contained in:
Sandro 2024-04-27 23:23:06 +02:00 committed by GitHub
commit 85808e4b33
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
21 changed files with 36 additions and 30 deletions

View File

@ -6,5 +6,5 @@ graphical installation CD.
It sets [](#opt-services.xserver.enable), It sets [](#opt-services.xserver.enable),
[](#opt-services.displayManager.sddm.enable), [](#opt-services.displayManager.sddm.enable),
[](#opt-services.xserver.desktopManager.plasma5.enable), [](#opt-services.xserver.desktopManager.plasma5.enable),
and [](#opt-services.xserver.libinput.enable) to true. It also and [](#opt-services.libinput.enable) to true. It also
includes glxinfo and firefox in the system packages list. includes glxinfo and firefox in the system packages list.

View File

@ -207,7 +207,7 @@ Latitude series) can be enabled as follows:
```nix ```nix
{ {
services.xserver.libinput.enable = true; services.libinput.enable = true;
} }
``` ```
@ -216,7 +216,7 @@ For instance, the following disables tap-to-click behavior:
```nix ```nix
{ {
services.xserver.libinput.touchpad.tapping = false; services.libinput.touchpad.tapping = false;
} }
``` ```

View File

@ -185,7 +185,7 @@ in
# }; # };
# Enable touchpad support (enabled default in most desktopManager). # Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true; # services.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
# users.users.alice = { # users.users.alice = {

View File

@ -559,6 +559,7 @@
./services/hardware/joycond.nix ./services/hardware/joycond.nix
./services/hardware/kanata.nix ./services/hardware/kanata.nix
./services/hardware/lcd.nix ./services/hardware/lcd.nix
./services/hardware/libinput.nix
./services/hardware/lirc.nix ./services/hardware/lirc.nix
./services/hardware/nvidia-container-toolkit ./services/hardware/nvidia-container-toolkit
./services/hardware/monado.nix ./services/hardware/monado.nix
@ -1473,7 +1474,6 @@
./services/x11/gdk-pixbuf.nix ./services/x11/gdk-pixbuf.nix
./services/x11/hardware/cmt.nix ./services/x11/hardware/cmt.nix
./services/x11/hardware/digimend.nix ./services/x11/hardware/digimend.nix
./services/x11/hardware/libinput.nix
./services/x11/hardware/synaptics.nix ./services/x11/hardware/synaptics.nix
./services/x11/hardware/wacom.nix ./services/x11/hardware/wacom.nix
./services/x11/imwheel.nix ./services/x11/imwheel.nix

View File

@ -7,10 +7,12 @@
services.xserver = { services.xserver = {
enable = true; enable = true;
desktopManager.plasma5.enable = true; desktopManager.plasma5.enable = true;
libinput.enable = true; # for touchpad support on many laptops
}; };
services.displayManager.sddm.enable = true; services = {
displayManager.sddm.enable = true;
libinput.enable = true; # for touchpad support on many laptops
};
# Enable sound in virtualbox appliances. # Enable sound in virtualbox appliances.
hardware.pulseaudio.enable = true; hardware.pulseaudio.enable = true;

View File

@ -238,7 +238,7 @@ in {
services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true); services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true);
services.udisks2.enable = true; services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable; services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true; services.libinput.enable = mkDefault true;
# Extra UDEV rules used by Solid # Extra UDEV rules used by Solid
services.udev.packages = [ services.udev.packages = [

View File

@ -111,8 +111,8 @@ let
let let
westonIni = (pkgs.formats.ini { }).generate "weston.ini" { westonIni = (pkgs.formats.ini { }).generate "weston.ini" {
libinput = { libinput = {
enable-tap = xcfg.libinput.mouse.tapping; enable-tap = config.services.libinput.mouse.tapping;
left-handed = xcfg.libinput.mouse.leftHanded; left-handed = config.services.libinput.mouse.leftHanded;
}; };
keyboard = { keyboard = {
keymap_model = xcfg.xkb.model; keymap_model = xcfg.xkb.model;

View File

@ -2,7 +2,7 @@
with lib; with lib;
let cfg = config.services.xserver.libinput; let cfg = config.services.libinput;
xorgBool = v: if v then "on" else "off"; xorgBool = v: if v then "on" else "off";
@ -223,7 +223,7 @@ let cfg = config.services.xserver.libinput;
in { in {
imports = imports =
(map (option: mkRenamedOptionModule ([ "services" "xserver" "libinput" option ]) [ "services" "xserver" "libinput" "touchpad" option ]) [ (map (option: mkRenamedOptionModule ([ "services" "xserver" "libinput" option ]) [ "services" "libinput" "touchpad" option ]) [
"accelProfile" "accelProfile"
"accelSpeed" "accelSpeed"
"buttonMapping" "buttonMapping"
@ -242,11 +242,15 @@ in {
"transformationMatrix" "transformationMatrix"
"disableWhileTyping" "disableWhileTyping"
"additionalOptions" "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 = { options = {
services.xserver.libinput = { services.libinput = {
enable = mkEnableOption "libinput" // { enable = mkEnableOption "libinput" // {
default = config.services.xserver.enable; default = config.services.xserver.enable;
defaultText = lib.literalExpression "config.services.xserver.enable"; defaultText = lib.literalExpression "config.services.xserver.enable";

View File

@ -214,7 +214,7 @@ in {
services.geoclue2.enable = mkDefault true; # for BCC's Privacy > Location Services 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.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.libinput.enable = mkDefault true; # for BCC's Mouse panel.
services.colord.enable = mkDefault true; # for BCC's Color 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.gnome.at-spi2-core.enable = mkDefault true; # for BCC's A11y panel.
services.accounts-daemon.enable = mkDefault true; # for BCC's Users panel. services.accounts-daemon.enable = mkDefault true; # for BCC's Users panel.

View File

@ -116,7 +116,7 @@ in
services.touchegg.enable = mkDefault true; services.touchegg.enable = mkDefault true;
services.udisks2.enable = true; services.udisks2.enable = true;
services.upower.enable = mkDefault config.powerManagement.enable; services.upower.enable = mkDefault config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true; services.libinput.enable = mkDefault true;
services.xserver.updateDbusEnvironment = true; services.xserver.updateDbusEnvironment = true;
networking.networkmanager.enable = mkDefault true; networking.networkmanager.enable = mkDefault true;

View File

@ -61,7 +61,7 @@ in
services.gnome.gnome-keyring.enable = mkDefault true; services.gnome.gnome-keyring.enable = mkDefault true;
services.bamf.enable = mkDefault true; services.bamf.enable = mkDefault true;
services.xserver.libinput.enable = mkDefault true; services.libinput.enable = mkDefault true;
services.udisks2.enable = true; services.udisks2.enable = true;
services.upower.enable = mkDefault config.powerManagement.enable; services.upower.enable = mkDefault config.powerManagement.enable;
networking.networkmanager.enable = mkDefault true; networking.networkmanager.enable = mkDefault true;

View File

@ -96,7 +96,7 @@ in
services.udisks2.enable = true; services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable; services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true; services.libinput.enable = mkDefault true;
services.dbus.packages = [ e.efl ]; services.dbus.packages = [ e.efl ];

View File

@ -339,7 +339,7 @@ in
# services.packagekit.enable = mkDefault true; # services.packagekit.enable = mkDefault true;
services.udisks2.enable = true; services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable; services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true; # for controlling touchpad settings via gnome control center services.libinput.enable = mkDefault true; # for controlling touchpad settings via gnome control center
# Explicitly enabled since GNOME will be severely broken without these. # Explicitly enabled since GNOME will be severely broken without these.
xdg.mime.enable = true; xdg.mime.enable = true;

View File

@ -69,7 +69,7 @@ in
services.upower.enable = config.powerManagement.enable; services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true; services.libinput.enable = mkDefault true;
xdg.portal.lxqt.enable = mkDefault true; xdg.portal.lxqt.enable = mkDefault true;

View File

@ -88,7 +88,7 @@ in
services.udev.packages = [ pkgs.mate.mate-settings-daemon ]; services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
services.gvfs.enable = true; services.gvfs.enable = true;
services.upower.enable = config.powerManagement.enable; services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true; services.libinput.enable = mkDefault true;
security.pam.services.mate-screensaver.unixAuth = true; security.pam.services.mate-screensaver.unixAuth = true;

View File

@ -159,7 +159,7 @@ in
services.gsignond.plugins = with pkgs.gsignondPlugins; [ lastfm mail oauth ]; services.gsignond.plugins = with pkgs.gsignondPlugins; [ lastfm mail oauth ];
services.udisks2.enable = true; services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable; services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true; services.libinput.enable = mkDefault true;
services.xserver.updateDbusEnvironment = true; services.xserver.updateDbusEnvironment = true;
services.zeitgeist.enable = mkDefault true; services.zeitgeist.enable = mkDefault true;
services.geoclue2.enable = mkDefault true; services.geoclue2.enable = mkDefault true;

View File

@ -348,7 +348,7 @@ in
services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true); services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true);
services.udisks2.enable = true; services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable; services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true; services.libinput.enable = mkDefault true;
# Extra UDEV rules used by Solid # Extra UDEV rules used by Solid
services.udev.packages = [ services.udev.packages = [

View File

@ -164,7 +164,7 @@ in
services.gvfs.enable = true; services.gvfs.enable = true;
services.tumbler.enable = true; services.tumbler.enable = true;
services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true)); services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
services.xserver.libinput.enable = mkDefault true; # used in xfce4-settings-manager services.libinput.enable = mkDefault true; # used in xfce4-settings-manager
# Enable default programs # Enable default programs
programs.dconf.enable = true; programs.dconf.enable = true;

View File

@ -46,10 +46,10 @@ in {
assertions = [ assertions = [
{ {
assertion = !config.services.xserver.libinput.enable; assertion = !config.services.libinput.enable;
message = '' message = ''
cmt and libinput are incompatible, meaning you cannot enable them both. 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` 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 If you haven't enabled it in configuration.nix, it's enabled by default on a
different xserver module. different xserver module.
''; '';

View File

@ -30,7 +30,7 @@ in {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = "Whether to enable touchpad support. Deprecated: Consider services.xserver.libinput.enable."; description = "Whether to enable touchpad support. Deprecated: Consider services.libinput.enable.";
}; };
dev = mkOption { dev = mkOption {
@ -207,8 +207,8 @@ in {
assertions = [ assertions = [
{ {
assertion = !config.services.xserver.libinput.enable; assertion = !config.services.libinput.enable;
message = "Synaptics and libinput are incompatible, you cannot enable both (in services.xserver)."; message = "Synaptics and libinput are incompatible, you cannot enable both.";
} }
]; ];

View File

@ -12,7 +12,7 @@ import ./make-test-python.nix ({ ... }:
test-support.displayManager.auto.user = "alice"; test-support.displayManager.auto.user = "alice";
services.xserver.libinput = { services.libinput = {
enable = true; enable = true;
mouse = { mouse = {
naturalScrolling = true; naturalScrolling = true;