diff --git a/jetpure/home/parts/hyprland.nix b/jetpure/home/parts/hyprland.nix index b699acc..ab8ee42 100644 --- a/jetpure/home/parts/hyprland.nix +++ b/jetpure/home/parts/hyprland.nix @@ -1,13 +1,13 @@ { pkgs, ... }: +with pkgs; { module.wm.hyprland = { autostart = [ "mako" ]; - programs = + binds = let c = "--class"; pic = "$(xdg-user-dir PICTURES)/$(date +'scr_%d-%m-%y|%H:%M:%S.png')"; in - with pkgs; [ # PROGRAMS "$m, $rt, exec, kitty" @@ -35,5 +35,71 @@ ", $PR, exec, ${grimblast}/bin/grimblast copysave area ${pic}" "$s, $PR, exec, ${grimblast}/bin/grimblast copysave output ${pic}" ]; + rules = + let + # titile & class + cl = "class:^"; + tt = "title:^"; + il = "initialClass:^"; + it = "initialTitle:^"; + # regex + x = + class: win: type: + "${type}, ${class}(${win})$"; + in + [ + (x "${cl}" "firefox" "workspace 2 silent") + (x "${cl}" "zen-alpha" "workspace 2 silent") + (x "${cl}" "zen-beta" "workspace 2 silent") + (x "${cl}" "spotify" "workspace 3 silent") + (x "${il}" "spotify" "workspace 3 silent") + (x "${it}" "Spotify" "workspace 3 silent") + (x "${tt}" "Spotify Free" "workspace 3 silent") + (x "${cl}" "com.ayugram" "workspace 4 silent") + (x "${cl}" "io.github.tdesktop_x64.TDesktop" "workspace 4 silent") + (x "${cl}" "vesktop" "workspace 4 silent") + (x "${cl}" "obsidian" "workspace 5 silent") + (x "${cl}" "anicli" "workspace 6 silent") + (x "${cl}" "org.qbittorrent.qBittorrent" "workspace 9 silent") + + # term rules + (x "${cl}" "termfloat" "float") + (x "${cl}" "termfloat" "move center") + (x "${cl}" "termfloat" "size 650 430") + + # file manager + (x "${cl}" "tfm" "float") + (x "${cl}" "tfm" "move center") + (x "${cl}" "tfm" "size 800 350") + + # ayu & 64gram + (x "${tt}" "com.ayugram" "minsize 540 680") + (x "${tt}" "io.github.tdesktop_x64.TDesktop" "minsize 540 680") + + (x "${tt}" "Media viewer" "float") + (x "${tt}" "Media viewer" "move center") + (x "${tt}" "Media viewer" "size 670 540") + (x "${tt}" "Media viewer" "noanim") + (x "${tt}" "Media viewer" "fullscreen") + + (x "${tt}" "Choose Files" "float") + (x "${tt}" "Choose Files" "move center") + (x "${tt}" "Choose Files" "size 650 450") + + # xdg + (x "${cl}" "xdg-desktop-portal-gtk" "float") + (x "${cl}" "xdg-desktop-portal-gtk" "move center") + (x "${cl}" "xdg-desktop-portal-gtk" "size 807 570") + + # mpv + (x "${cl}" "mpv" "nodim") + (x "${cl}" "anicliru" "float") + (x "${cl}" "anicliru" "size 810 630") + + # torrent + (x "${cl}" "org.qbittorrent.qBittorrent" "float") + (x "${cl}" "org.qbittorrent.qBittorrent" "size 1020 740") + (x "${cl}" "org.qbittorrent.qBittorrent" "pseudo") + ]; }; } diff --git a/modules/home/wm/hyprland/binds.nix b/modules/home/wm/hyprland/binds.nix index b3e8733..4707d62 100644 --- a/modules/home/wm/hyprland/binds.nix +++ b/modules/home/wm/hyprland/binds.nix @@ -79,7 +79,7 @@ in "$m, $pr, workspace, e-1" ] ++ workspaces - ++ cfg.programs; + ++ cfg.binds; # HOLDING BUTTONS binde = diff --git a/modules/home/wm/hyprland/default.nix b/modules/home/wm/hyprland/default.nix index 25e32ef..6a5b2b1 100644 --- a/modules/home/wm/hyprland/default.nix +++ b/modules/home/wm/hyprland/default.nix @@ -16,7 +16,8 @@ in module.wm.hyprland = { enable = mkBool; autostart = mkOpt.list.str; - programs = mkOpt.list.str; + binds = mkOpt.list.str; + rules = mkOpt.list.str; pkg = mkOpt.str; }; }; diff --git a/modules/home/wm/hyprland/rules.nix b/modules/home/wm/hyprland/rules.nix index 3f6ccf5..0b4e80a 100644 --- a/modules/home/wm/hyprland/rules.nix +++ b/modules/home/wm/hyprland/rules.nix @@ -1,69 +1,10 @@ { config, ... }: +let + cfg = config.module.wm.hyprland; +in { - wayland.windowManager.hyprland.settings = with config.lib.stylix.colors; { + wayland.windowManager.hyprland.settings = { layerrule = [ "noanim, notifications" ]; - windowrulev2 = - let - cl = "class:^"; - tt = "title:^"; - il = "initialClass:^"; - it = "initialTitle:^"; - in - [ - "workspace 2 silent, ${cl}(firefox)$" - "workspace 2 silent, ${cl}(floorp)$" - "workspace 2 silent, ${cl}(zen-alpha)$" - "workspace 2 silent, ${cl}(zen-beta)$" - "workspace 3 silent, ${cl}(spotify)$" - "workspace 3 silent, ${il}(spotify)$" - "workspace 3 silent, ${tt}(Spotify Free)$" - "workspace 3 silent, ${it}(Spotify)$" - "workspace 4 silent, ${cl}(com.ayugram)$" - "workspace 4 silent, ${cl}(io.github.tdesktop_x64.TDesktop)$" - "workspace 4 silent, ${cl}(vesktop)$" - "workspace 5 silent, ${cl}(obsidian)$" - "workspace 6 silent, ${cl}(anicli)$" - "workspace 9 silent, ${cl}(org.qbittorrent.qBittorrent)$" - - # TERMINAL RULES - "float, ${cl}(termfloat)$" - "move center, ${cl}(termfloat)$" - "size 650 430, ${cl}(termfloat)$" - - # FILE MANAGER - "float, ${cl}(tfm)$" - "move center, ${cl}(tfm)$" - "size 800 350, ${cl}(tfm)$" - - # AYUGRAM - "minsize 540 680, ${cl}(com.ayugram)$" # SELF - "float, ${tt}(Media viewer)$" # VIEWER - "noanim, ${tt}(Media viewer)$" - "fullscreen, ${tt}(Media viewer)$" - "size 670 540, ${tt}(Media viewer)$" - "float, ${tt}(Choose Files)$" # CHOOSER - "size 650 450, ${tt}(Choose Files)$" - - # XDG - "float, ${cl}(xdg-desktop-portal-gtk)$" - "size 807 570, ${cl}(xdg-desktop-portal-gtk)$" - - # MPV - "nodim, ${cl}(mpv)$" - "float, ${cl}(anicliru)$" - "size 810 630, ${cl}(anicliru)$" - - # ANIME - "bordercolor rgb(${base08}) rgb(${base09}) 45deg, ${cl}(anicliru)$" - - # KOMIKKU - "pseudo, ${cl}(info.febvre.Komikku)$" - "size 700 980, ${cl}(info.febvre.Komikku)$" - - # TORRENT - "float, ${cl}(org.qbittorrent.qBittorrent)$" - "pseudo, ${cl}(org.qbittorrent.qBittorrent)$" - "size 1020 740, ${cl}(org.qbittorrent.qBittorrent)$" - ]; + windowrulev2 = [ ] ++ cfg.rules; }; }