nixos/sway: add enableRealtime option
This option wraps the `sway` binary to allow it to request realtime scheduling (SCHED_RR). This allow for possible lower latency, specially when the system is under high load. Available since Sway 1.8. See: - https://github.com/swaywm/sway/pull/6994 - https://github.com/swaywm/sway/releases/tag/1.8
This commit is contained in:
parent
2f4249e466
commit
63fce4ce48
@ -42,6 +42,11 @@ in {
|
||||
<https://github.com/swaywm/sway/wiki> and
|
||||
"man 5 sway" for more information'');
|
||||
|
||||
enableRealtime = mkEnableOption (lib.mdDoc ''
|
||||
add CAP_SYS_NICE capability on `sway` binary for realtime scheduling
|
||||
privileges. This may improve latency and reduce stuttering, specially in
|
||||
high load scenarios'') // { default = true; };
|
||||
|
||||
package = mkOption {
|
||||
type = with types; nullOr package;
|
||||
default = defaultSwayPackage;
|
||||
@ -149,6 +154,14 @@ in {
|
||||
"sway/config".source = mkOptionDefault "${cfg.package}/etc/sway/config";
|
||||
};
|
||||
};
|
||||
security.wrappers = mkIf (cfg.enableRealtime && cfg.package != null) {
|
||||
sway = {
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "${cfg.package}/bin/sway";
|
||||
capabilities = "cap_sys_nice+ep";
|
||||
};
|
||||
};
|
||||
# To make a Sway session available if a display manager like SDDM is enabled:
|
||||
services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ]; }
|
||||
(import ./wayland-session.nix { inherit lib pkgs; })
|
||||
|
Loading…
Reference in New Issue
Block a user