feat: migrate host Hyprland overrides to Lua
This commit is contained in:
+92
-20
@@ -7,7 +7,20 @@
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; {
|
||||
with lib; let
|
||||
lua = lib.generators.mkLuaInline;
|
||||
|
||||
startupCommand = command: {
|
||||
_args = [
|
||||
"hyprland.start"
|
||||
(lua ''
|
||||
function()
|
||||
hl.exec_cmd(${builtins.toJSON command})
|
||||
end
|
||||
'')
|
||||
];
|
||||
};
|
||||
in {
|
||||
config = mkMerge [
|
||||
# ── XDG / MIME defaults ──
|
||||
{
|
||||
@@ -41,28 +54,87 @@ with lib; {
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
settings = {
|
||||
exec-once = ["tuxedo-backlight"];
|
||||
on = [
|
||||
(startupCommand "tuxedo-backlight")
|
||||
];
|
||||
monitor = [
|
||||
"eDP-1,preferred,0x0,1.25"
|
||||
"HDMI-A-1,1920x1080@120,2560x0,1"
|
||||
{
|
||||
output = "eDP-1";
|
||||
mode = "preferred";
|
||||
position = "0x0";
|
||||
scale = 1.25;
|
||||
}
|
||||
{
|
||||
output = "HDMI-A-1";
|
||||
mode = "1920x1080@120";
|
||||
position = "2560x0";
|
||||
scale = 1;
|
||||
}
|
||||
];
|
||||
workspace = [
|
||||
"1, monitor:eDP-1, default:true"
|
||||
"2, monitor:eDP-1"
|
||||
"3, monitor:eDP-1"
|
||||
"4, monitor:HDMI-A-1"
|
||||
"5, monitor:HDMI-A-1,border:false,rounding:false"
|
||||
"6, monitor:HDMI-A-1"
|
||||
workspace_rule = [
|
||||
{
|
||||
workspace = "1";
|
||||
monitor = "eDP-1";
|
||||
default = true;
|
||||
}
|
||||
{
|
||||
workspace = "2";
|
||||
monitor = "eDP-1";
|
||||
}
|
||||
{
|
||||
workspace = "3";
|
||||
monitor = "eDP-1";
|
||||
}
|
||||
{
|
||||
workspace = "4";
|
||||
monitor = "HDMI-A-1";
|
||||
}
|
||||
{
|
||||
workspace = "5";
|
||||
monitor = "HDMI-A-1";
|
||||
no_border = true;
|
||||
no_rounding = true;
|
||||
}
|
||||
{
|
||||
workspace = "6";
|
||||
monitor = "HDMI-A-1";
|
||||
}
|
||||
];
|
||||
windowrule = [
|
||||
"match:class dev.zed.Zed, workspace 1"
|
||||
"match:class Msty, workspace 1"
|
||||
"match:class ^(com.obsproject.Studio)$, workspace 2"
|
||||
"match:class ^(brave-browser)$, workspace 4, opacity 1.0"
|
||||
"match:class ^(vivaldi-stable)$, workspace 4, opacity 1.0"
|
||||
"match:class ^steam_app_\\d+$, fullscreen on"
|
||||
"match:class ^steam_app_\\d+$, workspace 5"
|
||||
"match:class ^steam_app_\\d+$, idle_inhibit focus"
|
||||
window_rule = [
|
||||
{
|
||||
match.class = "dev.zed.Zed";
|
||||
workspace = "1";
|
||||
}
|
||||
{
|
||||
match.class = "Msty";
|
||||
workspace = "1";
|
||||
}
|
||||
{
|
||||
match.class = "^(com.obsproject.Studio)$";
|
||||
workspace = "2";
|
||||
}
|
||||
{
|
||||
match.class = "^(brave-browser)$";
|
||||
workspace = "4";
|
||||
opacity = "1.0";
|
||||
}
|
||||
{
|
||||
match.class = "^(vivaldi-stable)$";
|
||||
workspace = "4";
|
||||
opacity = "1.0";
|
||||
}
|
||||
{
|
||||
match.class = "^steam_app_\\d+$";
|
||||
fullscreen = true;
|
||||
}
|
||||
{
|
||||
match.class = "^steam_app_\\d+$";
|
||||
workspace = "5";
|
||||
}
|
||||
{
|
||||
match.class = "^steam_app_\\d+$";
|
||||
idle_inhibit = "focus";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user