109 lines
3.3 KiB
Nix
109 lines
3.3 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
...
|
|
}: let
|
|
inherit (lib) mkIf mkEnableOption mkMerge;
|
|
host = config.networking.hostName;
|
|
cfg = config.nixos.programs.hyprland.rules;
|
|
in {
|
|
options = {
|
|
nixos.programs.hyprland.rules.enable = mkEnableOption "Enables window rule settings in Hyprland";
|
|
};
|
|
|
|
config = mkIf cfg.enable (mkMerge [
|
|
{
|
|
programs.hyprland.settings = {
|
|
windowrulev2 = [
|
|
# === CALCURSE SETTINGS ===
|
|
"size 843 650, initialTitle:^(floatcal)$"
|
|
"move 100%-w-20 40, initialTitle:^(floatcal)$"
|
|
"float, initialTitle:^(floatcal)$"
|
|
|
|
# === TUIRUN SETTINGS ===
|
|
"size 600 300, title:^(tuirun)$"
|
|
"center, title:^(tuirun)$"
|
|
# "workspace special:tuirun, initialTitle:^(tuirun)$"
|
|
"noborder, title:^(tuirun)$"
|
|
"float, title:^(tuirun)$"
|
|
|
|
# === KEEPASSXC SETTINGS ===
|
|
"size 843 530, class:^(org.keepassxc.KeePassXC)$"
|
|
"move 100%-w-20 40, class:^(org.keepassxc.KeePassXC)$"
|
|
"float, class:^(org.keepassxc.KeePassXC)$"
|
|
|
|
# === SUPPRESS MAXIMIZE EVENT ===
|
|
"suppressevent maximize, class:.*" # Suppress maximize events for all windows
|
|
|
|
# === NWG-LOOK SETTINGS ===
|
|
"center, class:^(nwg-look)$"
|
|
"float, class:^(nwg-look)$"
|
|
|
|
# === OCULANTE SETTINGS ===
|
|
"center, class:^(oculante)$"
|
|
"float, class:^(oculante)$"
|
|
|
|
# === PAVUCONTROL SETTINGS ===
|
|
"move 100%-w-20 40, class:^(pavucontrol)$"
|
|
"size 741 585, class:^(pavucontrol)$"
|
|
"float, class:^(pavucontrol)$"
|
|
|
|
# === XARCHIVER SETTINGS ===
|
|
"center, class:^(xarchiver)$"
|
|
"float, class:^(xarchiver)$"
|
|
|
|
# === FLOATING APPLICATIONS ===
|
|
"float, class:^(org.gnome.FileRoller)$"
|
|
"float, class:^(org.freedesktop.impl.portal.desktop.kde)$"
|
|
"float, class:^(org.corectrl.CoreCtrl)$"
|
|
"float, class:^(feh)$"
|
|
"float, class:^(polkit-gnome-authentication-agent-1)$"
|
|
"float, class:^(org.gnome.Calculator)$"
|
|
"float, class:^(com.github.hluk.copyq)$"
|
|
"float, class:^(blueman-manager)$"
|
|
|
|
# === WORKSPACE RULES ===
|
|
"workspace 5 silent, class:^(discord)$"
|
|
"workspace 5 silent, class:^(vesktop)$"
|
|
"workspace 4 silent, class:^(steam_app_0)$"
|
|
"workspace 4 silent, title:^(World of Warcraft)$"
|
|
];
|
|
windowrule = [];
|
|
layerrule = [
|
|
"animation fade,hyprpicker"
|
|
"animation fade,selection"
|
|
|
|
"noanim,waybar"
|
|
"ignorezero,waybar"
|
|
"ignorealpha 0.0,waybar"
|
|
|
|
"blur,notifications"
|
|
"ignorezero,notifications"
|
|
|
|
"noanim,wallpaper"
|
|
];
|
|
};
|
|
}
|
|
(mkIf (host == "cnixtop") {
|
|
programs.hyprland.settings.workspace = [
|
|
"name:1,monitor:DP-3"
|
|
"name:2,monitor:DP-3"
|
|
"name:3,monitor:DP-3"
|
|
"name:4,monitor:DP-3"
|
|
"name:5,monitor:DP-4"
|
|
"name:6,monitor:DP-3"
|
|
"name:7,monitor:DP-3"
|
|
"name:8,monitor:DP-3"
|
|
"name:9,monitor:DP-3"
|
|
"name:10,monitor:DP-3"
|
|
];
|
|
})
|
|
(mkIf (host == "cnixpad") {
|
|
programs.hyprland.settings.workspace = [];
|
|
})
|
|
(mkIf (host == "toothpc") {
|
|
programs.hyprland.settings.workspace = [];
|
|
})
|
|
]);
|
|
}
|