ocamlPackages.hxd: 0.3.2 -> 0.3.3 (#364231)
[NixPkgs.git] / nixos / modules / services / hardware / brltty.nix
blob95245d584d18040f55deaf67ca3f4a266c2ac5d4
2   config,
3   lib,
4   pkgs,
5   ...
6 }:
7 let
8   cfg = config.services.brltty;
10   targets = [
11     "default.target"
12     "multi-user.target"
13     "rescue.target"
14     "emergency.target"
15   ];
17   genApiKey = pkgs.writers.writeDash "generate-brlapi-key" ''
18     if ! test -f /etc/brlapi.key; then
19       echo -n generating brlapi key...
20       ${pkgs.brltty}/bin/brltty-genkey -f /etc/brlapi.key
21       echo done
22     fi
23   '';
28   options = {
30     services.brltty.enable = lib.mkOption {
31       type = lib.types.bool;
32       default = false;
33       description = "Whether to enable the BRLTTY daemon.";
34     };
36   };
38   config = lib.mkIf cfg.enable {
39     users.users.brltty = {
40       description = "BRLTTY daemon user";
41       group = "brltty";
42       isSystemUser = true;
43     };
44     users.groups = {
45       brltty = { };
46       brlapi = { };
47     };
49     systemd.services."brltty@".serviceConfig = {
50       ExecStartPre = "!${genApiKey}";
51     };
53     # Install all upstream-provided files
54     systemd.packages = [ pkgs.brltty ];
55     systemd.tmpfiles.packages = [ pkgs.brltty ];
56     services.udev.packages = [ pkgs.brltty ];
57     environment.systemPackages = [ pkgs.brltty ];
59     # Add missing WantedBys (see issue #81138)
60     systemd.paths.brltty.wantedBy = targets;
61     systemd.paths."brltty@".wantedBy = targets;
62   };