1
1
Fork 0

niri: add window rules

Signed-off-by: Myned <dev@bjork.tech>
This commit is contained in:
Myned 2024-12-23 22:56:07 -05:00
parent 21c0dafd2c
commit 5b9c31a907
Signed by: myned
GPG key ID: C7224454F7881A34

View file

@ -13,20 +13,158 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
home-manager.users.${config.custom.username} = { home-manager.users.${config.custom.username} = {
# https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules # https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules
programs.niri.settings.window-rules = [ programs.niri.settings = {
{ # HACK: Name workspaces after index to use open-on-workspace rule
geometry-corner-radius = let workspaces = {
radius = config.custom.rounding + 0.0; # Convert to float "1" = {};
in { "2" = {};
top-left = radius; "3" = {};
top-right = radius; };
bottom-right = radius;
bottom-left = radius;
};
clip-to-geometry = true; window-rules = [
} ### Defaults
];
{
# Global
geometry-corner-radius = let
radius = config.custom.rounding + 0.0; # Convert to float
in {
top-left = radius;
top-right = radius;
bottom-right = radius;
bottom-left = radius;
};
clip-to-geometry = true;
}
{
# Startup
#?? <= 60 secs after niri launches
matches = [{at-startup = true;}];
}
{
# Android
matches = [{app-id = "^[Ww]aydroid.*$";}];
}
{
# Browsers
matches = [
{app-id = "^brave-browser$";}
{app-id = "^chromium-browser$";}
{app-id = "^firefox.*$";}
{app-id = "^google-chrome$";}
{app-id = "^vivaldi.*$";}
];
open-on-workspace = "2";
}
{
# Chats
matches = [
{app-id = "^cinny$";}
{app-id = "^discord$";}
{app-id = "^Element$";}
{app-id = "^org\.telegram\.desktop$";}
];
}
{
# Dropdown terminal
matches = [{app-id = "^dropdown$";}];
}
{
# Editors
matches = [
{app-id = "^codium$";}
{app-id = "^obsidian$";}
];
open-on-workspace = "2";
}
{
# Files
matches = [{app-id = "^org\.gnome\.Nautilus$";}];
}
{
# Games
matches = [
{app-id = "^.*\.(exe|x86_64)$";}
{app-id = "^moe\.launcher\..+$";}
{app-id = "^net\.retrodeck\.retrodeck$";}
{app-id = "^steam_app_.+$";}
];
open-on-workspace = "1";
variable-refresh-rate = true;
}
{
# Media
matches = [
{app-id = "^org\.gnome\.Loupe$";}
{app-id = "^Spotify$";}
{app-id = "^totem$";}
{app-id = "^YouTube Music$";}
];
open-on-workspace = "3";
}
{
# Office
matches = [
{app-id = "^draw\.io$";}
{app-id = "^libreoffice$";}
{app-id = "^ONLYOFFICE Desktop Editors$";}
];
open-on-workspace = "2";
}
{
# PiP
matches = [{title = "^Picture.in.[Pp]icture$";}];
}
{
# Terminals
matches = [
{app-id = "^foot$";}
{app-id = "^kitty$";}
{app-id = "^org\.wezfurlong\.wezterm$";}
];
}
{
# Vaults
matches = [
{app-id = "^1Password$";}
{app-id = "^Bitwarden$";}
];
}
{
# Virtual machines
matches = [
{app-id = "^(sdl-|wl|x)freerdp$";}
{app-id = "^looking-glass-client$";}
{app-id = "^org\.remmina\.Remmina$";}
{app-id = "^virt-manager$";}
];
open-on-workspace = "1";
}
### Overrides
];
};
}; };
}; };
} }