29027fd1e1
Using pkgs.lib on the spine of module evaluation is problematic because the pkgs argument depends on the result of module evaluation. To prevent an infinite recursion, pkgs and some of the modules are evaluated twice, which is inefficient. Using ‘with lib’ prevents this problem.
40 lines
851 B
Nix
40 lines
851 B
Nix
# 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 = ''
|
||
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 {
|
||
|
||
environment.systemPackages = [ pkgs.rtkit ];
|
||
|
||
services.dbus.packages = [ pkgs.rtkit ];
|
||
|
||
users.extraUsers = singleton
|
||
{ name = "rtkit";
|
||
uid = config.ids.uids.rtkit;
|
||
description = "RealtimeKit daemon";
|
||
};
|
||
|
||
};
|
||
|
||
}
|