about summary refs log tree commit diff
path: root/nixpkgs/nixos/modules/security/rtkit.nix
blob: 0f58b4dce84a2f6d9c5cb69ff97bbbccada6c8ff (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# A module for ‘rtkit’, a DBus system service that hands out realtime
# scheduling priority to processes that ask for it.

{ config, lib, pkgs, ... }:

with lib;

{

  options = {

    security.rtkit.enable = mkOption {
      type = types.bool;
      default = false;
      description = lib.mdDoc ''
        Whether to enable the RealtimeKit system service, which hands
        out realtime scheduling priority to user processes on
        demand. For example, the PulseAudio server uses this to
        acquire realtime priority.
      '';
    };

  };


  config = mkIf config.security.rtkit.enable {

    security.polkit.enable = true;

    # To make polkit pickup rtkit policies
    environment.systemPackages = [ pkgs.rtkit ];

    systemd.packages = [ pkgs.rtkit ];

    services.dbus.packages = [ pkgs.rtkit ];

    users.users.rtkit =
      {
        isSystemUser = true;
        group = "rtkit";
        description = "RealtimeKit daemon";
      };
    users.groups.rtkit = {};

  };

}