python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / nixos / modules / programs / weylus.nix
blobeab8afdf2cc848b973964db62a90035af63d8d00
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
6   cfg = config.programs.weylus;
7 in
9   options.programs.weylus = with types; {
10     enable = mkEnableOption (lib.mdDoc "weylus");
12     openFirewall = mkOption {
13       type = bool;
14       default = false;
15       description = lib.mdDoc ''
16         Open ports needed for the functionality of the program.
17       '';
18     };
20      users = mkOption {
21       type = listOf str;
22       default = [ ];
23       description = lib.mdDoc ''
24         To enable stylus and multi-touch support, the user you're going to use must be added to this list.
25         These users can synthesize input events system-wide, even when another user is logged in - untrusted users should not be added.
26       '';
27     };
29     package = mkOption {
30       type = package;
31       default = pkgs.weylus;
32       defaultText = "pkgs.weylus";
33       description = lib.mdDoc "Weylus package to install.";
34     };
35   };
36   config = mkIf cfg.enable {
37     networking.firewall = mkIf cfg.openFirewall {
38       allowedTCPPorts = [ 1701 9001 ];
39     };
41     hardware.uinput.enable = true;
43     users.groups.uinput.members = cfg.users;
45     environment.systemPackages = [ cfg.package ];
46   };