46 lines
		
	
	
		
			965 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			965 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 {
 | 
						||
 | 
						||
    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 = singleton
 | 
						||
      { name = "rtkit";
 | 
						||
        uid = config.ids.uids.rtkit;
 | 
						||
        description = "RealtimeKit daemon";
 | 
						||
      };
 | 
						||
 | 
						||
  };
 | 
						||
 | 
						||
}
 |