aboutsummaryrefslogtreecommitdiff
path: root/home-manager/modules/programs/autorandr.nix
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/modules/programs/autorandr.nix')
-rw-r--r--home-manager/modules/programs/autorandr.nix39
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";