ooknet/modules/home/workstation/hyprland/settings/rules.nix

75 lines
1.8 KiB
Nix

{osConfig, ...}: let
monitor = builtins.elemAt osConfig.ooknet.hardware.monitors 0;
widthMinusGaps = toString (monitor.width - 23);
in {
wayland.windowManager.hyprland.windowRules = [
# TODO tag games for immediate
{
matches = {initialTitle = "Syncthing Tray";};
rules = ["float" "center 1" "size 50%"];
}
{
matches = {class = "factorio";};
rules = ["tag +games"];
}
{
matches = {initialTitle = "World of Warcraft";};
rules = ["tag +games"];
}
{
matches = {title = "TEKKEN8";};
rules = ["tag +games"];
}
{
matches = {initialTitle = "Dolphin";};
rules = ["tag +games" "idleinhibit focus"];
}
{
matches = {tag = "games";};
rules = ["workspace 6" "immediate"];
}
{
matches = {title = "Steam";};
rules = ["workspace 5"];
}
{
matches = {title = "Steam Settings";};
rules = ["float" "size 50%" "center 1"];
}
{
matches = {class = "firefox";};
rules = ["idleinhibit fullscreen"];
}
{
matches = {class = "1Password";};
rules = ["center 1" "float" "size 50%"];
}
{
matches = {title = "BTOP";};
rules = ["float" "size 85%" "pin" "center 1" "stayfocused" "dimaround"];
}
{
matches = {class = "vesktop";};
rules = ["workspace 4 silent"];
}
{
matches = {title = "^(Picture-in-Picture)$";};
rules = ["float" "pin"];
}
{
matches = {title = "^(Open Files)$";};
rules = ["center 1" "float" "size 50%"];
}
{
matches = {initialTitle = "dropdown";};
rules = [
"monitor 0"
"animation slide down"
"float"
"move 12 46"
"size ${widthMinusGaps} 30%"
];
}
];
}