170 lines
9.2 KiB
Nix
170 lines
9.2 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
cfg = config.services.opentabletdriver;
|
|
in
|
|
|
|
{
|
|
options.services.opentabletdriver = {
|
|
enable = mkOption {
|
|
type = types.bool;
|
|
default = false;
|
|
description = "Enable opentablet driver";
|
|
};
|
|
|
|
package = mkOption {
|
|
type = types.package;
|
|
default = pkgs.opentabletdriver;
|
|
defaultText = "pkgs.opentabletdriver";
|
|
example = literalExampe "pkgs.opentabletdriver";
|
|
description = ''
|
|
Choose OpenTabletDriver package
|
|
'';
|
|
};
|
|
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
systemd.user = {
|
|
services.opentabletdriver ={
|
|
restartIfChanged = true;
|
|
serviceConfig = {
|
|
Type = "simple";
|
|
ExecStart = ''
|
|
${cfg.package}/bin/OpenTabletDriver.Daemon -c ${cfg.package}/lib/OpenTabletDriver/Configurations/
|
|
'';
|
|
Restart = "on-failure";
|
|
RestartSec = 10;
|
|
};
|
|
};
|
|
};
|
|
environment.systemPackages = [ cfg.package ];
|
|
boot.kernelModules = [ "uinput" ];
|
|
services.udev.extraRules = ''
|
|
KERNEL=="uinput", GROUP="users",MODE="0660"
|
|
# Wacom CTL-4100 Bluetooth
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0377", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0377", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom PTH-660
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0357", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0357", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTH-470
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00de", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00de", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTL-6100
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0378", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0378", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTH-490
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="033c", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="033c", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTL-672
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="037b", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="037b", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTL-470
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00dd", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00dd", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTE-440
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0015", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0015", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTH-480
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0302", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0302", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom PTH-850
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0028", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0028", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTL-460
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d4", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d4", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTL-471
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0300", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0300", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTH-690
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="033e", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="033e", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTL-490
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="033b", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="033b", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTH-670
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00df", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00df", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTL-480
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="030e", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="030e", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTL-680
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0323", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0323", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTL-472
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="037a", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="037a", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom PTH-660 Bluetooth
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0360", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0360", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTL-4100
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0374", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0374", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTL-690
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="033d", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="033d", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTL-671
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0301", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0301", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom PTH-451
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0314", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0314", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Wacom CTH-680
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0303", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0303", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Gaomon S620
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="256c", ATTRS{idProduct}=="006d", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="256c", ATTRS{idProduct}=="006d", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# VEIKK S640
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2feb", ATTRS{idProduct}=="0001", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="2feb", ATTRS{idProduct}=="0001", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# XP-Pen G540 Pro
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0061", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0061", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# XP-Pen G640s
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0906", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0906", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# XP-Pen G430S_B
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0913", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0913", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# XP-Pen G430S
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0075", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0075", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# XP-Pen G640 v2
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0914", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0914", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# XP-Pen Star 03v2
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0907", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0907", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# XP-Pen G960 v2
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0920", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0920", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# XP-Pen G430
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0075", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0075", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# XP-Pen G640
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0094", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0094", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# XP-Pen Deco 01
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0042", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0042", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# XP-Pen Deco 01 v2
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0902", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0902", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# XP-Pen Deco 02
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0803", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="28bd", ATTRS{idProduct}=="0803", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Huion HS64
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="256c", ATTRS{idProduct}=="006d", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="256c", ATTRS{idProduct}=="006d", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
# Huion H420
|
|
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="256c", ATTRS{idProduct}=="006e", MODE="0666"
|
|
SUBSYSTEM=="input", ATTRS{idVendor}=="256c", ATTRS{idProduct}=="006e", ENV{LIBINPUT_IGNORE_DEVICE}="1"
|
|
'';
|
|
};
|
|
}
|