72 lines
1.7 KiB
Nix
72 lines
1.7 KiB
Nix
{ lib, config, ... }:
|
|
{
|
|
options =
|
|
with lib;
|
|
with types;
|
|
{
|
|
hardware.monitors = mkOption {
|
|
type = lazyAttrsOf (submodule {
|
|
options = {
|
|
mode = mkOption {
|
|
type = str;
|
|
default = "auto";
|
|
};
|
|
position = mkOption {
|
|
type = str;
|
|
default = "auto";
|
|
};
|
|
rotation = mkOption {
|
|
type = enum [
|
|
"none"
|
|
"90"
|
|
"180"
|
|
"270"
|
|
];
|
|
default = "none";
|
|
};
|
|
flipped = mkOption {
|
|
type = bool;
|
|
default = false;
|
|
};
|
|
};
|
|
});
|
|
default = { };
|
|
description = "Monitor configuration";
|
|
};
|
|
};
|
|
|
|
# config = {
|
|
# wayland.windowManager.hyprland.settings.monitors =
|
|
# let
|
|
# transformMap = {
|
|
# "none" = {
|
|
# normal = 0;
|
|
# flipped = 4;
|
|
# };
|
|
# "90" = {
|
|
# normal = 1;
|
|
# flipped = 5;
|
|
# };
|
|
# "180" = {
|
|
# normal = 2;
|
|
# flipped = 6;
|
|
# };
|
|
# "270" = {
|
|
# normal = 3;
|
|
# flipped = 7;
|
|
# };
|
|
# };
|
|
#
|
|
# monitorTransform =
|
|
# m:
|
|
# let
|
|
# t = transformMap.${m.rotation};
|
|
# in
|
|
# if m.flipped then t.flipped else t.normal;
|
|
# monitorString =
|
|
# name: m: "${name}, ${m.mode}, ${m.position}, 1, transform, ${toString (monitorTransform m)}";
|
|
# in
|
|
# lib.mapAttrsToList monitorString config.hardware.monitors;
|
|
# };
|
|
}
|