vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / ttys / gpm.nix
blob308a6d3643a60cbeaa934215f7f20e26edd36c95
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
7   cfg = config.services.gpm;
9 in
13   ###### interface
15   options = {
17     services.gpm = {
19       enable = mkOption {
20         type = types.bool;
21         default = false;
22         description = ''
23           Whether to enable GPM, the General Purpose Mouse daemon,
24           which enables mouse support in virtual consoles.
25         '';
26       };
28       protocol = mkOption {
29         type = types.str;
30         default = "ps/2";
31         description = "Mouse protocol to use.";
32       };
34     };
36   };
39   ###### implementation
41   config = mkIf cfg.enable {
43     systemd.services.gpm =
44       { description = "Console Mouse Daemon";
46         wantedBy = [ "multi-user.target" ];
47         requires = [ "dev-input-mice.device" ];
48         after = [ "dev-input-mice.device" ];
50         serviceConfig.ExecStart = "@${pkgs.gpm}/sbin/gpm gpm -m /dev/input/mice -t ${cfg.protocol}";
51         serviceConfig.Type = "forking";
52         serviceConfig.PIDFile = "/run/gpm.pid";
53       };
55   };