[Hyprland] Merges monitor configuration
This commit is contained in:
@@ -84,30 +84,10 @@ hl.device({
|
||||
sensitivity = -0.200000,
|
||||
})
|
||||
|
||||
-- hl.monitor({
|
||||
-- output = "DP-2",
|
||||
-- mode = "3440x1440@164",
|
||||
-- position = "0x0",
|
||||
-- })
|
||||
-- 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
|
||||
-- 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 = { class = "suppress_event maximize" }, "match:class" = ".*" })
|
||||
|
||||
@@ -18,27 +18,6 @@
|
||||
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" = {
|
||||
source = ./config;
|
||||
recursive = true;
|
||||
|
||||
@@ -35,37 +35,66 @@
|
||||
};
|
||||
};
|
||||
|
||||
# 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;
|
||||
# };
|
||||
config = {
|
||||
xdg.configFile."hypr/monitors.lua" = lib.mkIf config.wayland.windowManager.hyprland.enable {
|
||||
text =
|
||||
let
|
||||
workspaceSettings = (
|
||||
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 = "${toString i}" })
|
||||
''
|
||||
) (lib.range 1 10)
|
||||
) (lib.attrsToList config.hardware.monitors)
|
||||
);
|
||||
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: ''
|
||||
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);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user