selfprivacy-nix-repo/opentabletdriver.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"
'';
};
}