Merge pull request #304902 from SuperSandro2000/libinput-xserver
nixos/libinput: move out of xserver
This commit is contained in:
commit
85808e4b33
|
@ -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.
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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";
|
|
@ -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.
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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.
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -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.";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user