[Hyprland] Merges monitor configuration

This commit is contained in:
2026-06-01 17:06:17 -07:00
parent e936b9da8f
commit 7fd462a791
4 changed files with 68 additions and 80 deletions

View File

@@ -84,30 +84,10 @@ hl.device({
sensitivity = -0.200000, sensitivity = -0.200000,
}) })
-- hl.monitor({ -- for i = 1, 10 do
-- output = "DP-2", -- hl.workspace_rule({ workspace = i, monitor = "DP-1", default_name = "L" .. tostring(i) })
-- mode = "3440x1440@164", -- hl.workspace_rule({ workspace = i + 10, monitor = "DP-1", default_name = "R" .. tostring(i) })
-- position = "0x0", -- end
-- })
-- hl.monitor({
-- output = "DP-1",
-- mode = "2560x1440",
-- position = "-1440x-510",
-- -- 0 -> normal (no transforms)
-- -- 1 -> 90 degrees
-- -- 2 -> 180 degrees
-- -- 3 -> 270 degrees
-- -- 4 -> flipped
-- -- 5 -> flipped + 90 degrees
-- -- 6 -> flipped + 180 degrees
-- -- 7 -> flipped + 270 degrees
-- transform = 1,
-- })
for i = 1, 10 do
hl.workspace_rule({ workspace = i, monitor = "DP-1", default_name = "L" .. tostring(i) })
hl.workspace_rule({ workspace = i + 10, monitor = "DP-1", default_name = "R" .. tostring(i) })
end
hl.window_rule({ match = "match:class Rofi", stay_focused = true }) hl.window_rule({ match = "match:class Rofi", stay_focused = true })
-- hl.window_rule({ match = { class = "suppress_event maximize" }, "match:class" = ".*" }) -- hl.window_rule({ match = { class = "suppress_event maximize" }, "match:class" = ".*" })

View File

@@ -18,27 +18,6 @@
recursive = true; recursive = true;
}; };
"hypr/monitors.lua" = {
text = lib.concatStrings (
lib.imap0 (
idx:
{ name, value }:
let
offset = idx * 10;
in
lib.concatMapStrings (
i:
let
ws = offset + i;
in
''
hl.workspace_rule({ workspace = ${toString ws}, monitor = "${name}", default_name = "${name}_${toString i}" })
''
) (lib.range 1 10)
) (lib.attrsToList config.hardware.monitors)
);
};
"hypr/config" = { "hypr/config" = {
source = ./config; source = ./config;
recursive = true; recursive = true;

View File

@@ -35,37 +35,66 @@
}; };
}; };
# config = { config = {
# wayland.windowManager.hyprland.settings.monitors = xdg.configFile."hypr/monitors.lua" = lib.mkIf config.wayland.windowManager.hyprland.enable {
# let text =
# transformMap = { let
# "none" = { workspaceSettings = (
# normal = 0; lib.imap0 (
# flipped = 4; idx:
# }; { name, value }:
# "90" = { let
# normal = 1; offset = idx * 10;
# flipped = 5; in
# }; lib.concatMapStrings (
# "180" = { i:
# normal = 2; let
# flipped = 6; ws = offset + i;
# }; in
# "270" = { ''
# normal = 3; hl.workspace_rule({ workspace = ${toString ws}, monitor = "${name}", default_name = "${toString i}" })
# flipped = 7; ''
# }; ) (lib.range 1 10)
# }; ) (lib.attrsToList config.hardware.monitors)
# );
# monitorTransform = transformMap = {
# m: "none" = {
# let normal = 0;
# t = transformMap.${m.rotation}; flipped = 4;
# in };
# if m.flipped then t.flipped else t.normal; "90" = {
# monitorString = normal = 1;
# name: m: "${name}, ${m.mode}, ${m.position}, 1, transform, ${toString (monitorTransform m)}"; flipped = 5;
# in };
# lib.mapAttrsToList monitorString config.hardware.monitors; "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: ''
hl.monitor({
output = "${name}",
mode = "${m.mode}",
position = "${m.position}",
transform = ${toString (monitorTransform m)},
})
'';
monitorSettings = lib.mapAttrsToList monitorString config.hardware.monitors;
in
lib.concatStringsSep "\n" (workspaceSettings ++ monitorSettings);
};
};
} }

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }: { ... }:
{ {
imports = map (x: ../../../home-manager + x) [ imports = map (x: ../../../home-manager + x) [
"/features/chat.nix" "/features/chat.nix"
@@ -30,7 +30,7 @@
hardware.monitors = { hardware.monitors = {
"HDMI-A-1" = { "HDMI-A-1" = {
position = "0x0"; position = "0x0";
mode = "3440x1440@75.05t s"; mode = "3440x1440@75.05";
}; };
}; };