2011-07-26 15:14:10 +01:00
|
|
|
|
# A module for ‘rtkit’, a DBus system service that hands out realtime
|
|
|
|
|
# scheduling priority to processes that ask for it.
|
|
|
|
|
|
2014-04-14 15:26:48 +01:00
|
|
|
|
{ config, lib, pkgs, ... }:
|
2011-07-26 15:14:10 +01:00
|
|
|
|
|
2014-04-14 15:26:48 +01:00
|
|
|
|
with lib;
|
2011-07-26 15:14:10 +01:00
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
options = {
|
2011-09-14 19:20:50 +01:00
|
|
|
|
|
2011-07-26 15:14:10 +01:00
|
|
|
|
security.rtkit.enable = mkOption {
|
2013-10-30 16:37:45 +00:00
|
|
|
|
type = types.bool;
|
2011-07-26 15:14:10 +01:00
|
|
|
|
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.
|
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
};
|
2011-09-14 19:20:50 +01:00
|
|
|
|
|
2011-07-26 15:14:10 +01:00
|
|
|
|
|
|
|
|
|
config = mkIf config.security.rtkit.enable {
|
|
|
|
|
|
2014-04-18 11:21:20 +01:00
|
|
|
|
security.polkit.enable = true;
|
|
|
|
|
|
|
|
|
|
# To make polkit pickup rtkit policies
|
2011-07-26 15:14:10 +01:00
|
|
|
|
environment.systemPackages = [ pkgs.rtkit ];
|
|
|
|
|
|
2014-04-18 11:21:20 +01:00
|
|
|
|
systemd.packages = [ pkgs.rtkit ];
|
|
|
|
|
|
2011-07-26 15:14:10 +01:00
|
|
|
|
services.dbus.packages = [ pkgs.rtkit ];
|
|
|
|
|
|
|
|
|
|
users.extraUsers = singleton
|
|
|
|
|
{ name = "rtkit";
|
|
|
|
|
uid = config.ids.uids.rtkit;
|
|
|
|
|
description = "RealtimeKit daemon";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|