diff options
Diffstat (limited to 'home-manager/modules/programs/autorandr.nix')
-rw-r--r-- | home-manager/modules/programs/autorandr.nix | 39 |
1 files changed, 24 insertions, 15 deletions
diff --git a/home-manager/modules/programs/autorandr.nix b/home-manager/modules/programs/autorandr.nix index 02fc77c1e58..40cad704db9 100644 --- a/home-manager/modules/programs/autorandr.nix +++ b/home-manager/modules/programs/autorandr.nix @@ -55,6 +55,13 @@ let default = true; }; + crtc = mkOption { + type = types.nullOr types.ints.unsigned; + description = "Output video display controller."; + default = null; + example = 0; + }; + primary = mkOption { type = types.bool; description = "Whether output should be marked as primary"; @@ -244,21 +251,22 @@ let ]); fingerprintToString = name: edid: "${name} ${edid}"; configToString = name: config: - if config.enable then '' - output ${name} - ${optionalString (config.position != "") "pos ${config.position}"} - ${optionalString config.primary "primary"} - ${optionalString (config.dpi != null) "dpi ${toString config.dpi}"} - ${optionalString (config.gamma != "") "gamma ${config.gamma}"} - ${optionalString (config.mode != "") "mode ${config.mode}"} - ${optionalString (config.rate != "") "rate ${config.rate}"} - ${optionalString (config.rotate != null) "rotate ${config.rotate}"} - ${optionalString (config.scale != null) - ((if config.scale.method == "factor" then "scale" else "scale-from") - + " ${toString config.scale.x}x${toString config.scale.y}")} - ${optionalString (config.transform != null) ("transform " - + concatMapStringsSep "," toString (flatten config.transform))} - '' else '' + if config.enable then + concatStringsSep "\n" ([ "output ${name}" ] + ++ optional (config.position != "") "pos ${config.position}" + ++ optional (config.crtc != null) "crtc ${toString config.crtc}" + ++ optional config.primary "primary" + ++ optional (config.dpi != null) "dpi ${toString config.dpi}" + ++ optional (config.gamma != "") "gamma ${config.gamma}" + ++ optional (config.mode != "") "mode ${config.mode}" + ++ optional (config.rate != "") "rate ${config.rate}" + ++ optional (config.rotate != null) "rotate ${config.rotate}" + ++ optional (config.transform != null) ("transform " + + concatMapStringsSep "," toString (flatten config.transform)) + ++ optional (config.scale != null) + ((if config.scale.method == "factor" then "scale" else "scale-from") + + " ${toString config.scale.x}x${toString config.scale.y}")) + else '' output ${name} off ''; @@ -315,6 +323,7 @@ in { eDP1.enable = false; DP1 = { enable = true; + crtc = 0; primary = true; position = "0x0"; mode = "3840x2160"; |