at 25.11-pre 1.3 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7let 8 cfg = config.services.brltty; 9 10 targets = [ 11 "default.target" 12 "multi-user.target" 13 "rescue.target" 14 "emergency.target" 15 ]; 16 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 ''; 24 25in 26{ 27 28 options = { 29 30 services.brltty.enable = lib.mkOption { 31 type = lib.types.bool; 32 default = false; 33 description = "Whether to enable the BRLTTY daemon."; 34 }; 35 36 }; 37 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 }; 48 49 systemd.services."brltty@".serviceConfig = { 50 ExecStartPre = "!${genApiKey}"; 51 }; 52 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 ]; 58 59 # Add missing WantedBys (see issue #81138) 60 systemd.paths.brltty.wantedBy = targets; 61 systemd.paths."brltty@".wantedBy = targets; 62 }; 63 64}