diff --git a/apps/btop/default.nix b/apps/btop/default.nix index 4171748..ecdee8c 100644 --- a/apps/btop/default.nix +++ b/apps/btop/default.nix @@ -27,8 +27,8 @@ exec-once = [ "uwsm app -- xdg-terminal-exec -e btop-power -p 2" ]; - windowrulev2 = [ - "monitor ${myConfig.btop.monitor}, title:^(btop)$" + windowrule = [ + "match:title ^(btop)$, monitor ${myConfig.btop.monitor}" ]; }) ]; diff --git a/apps/firefox/default.nix b/apps/firefox/default.nix index 79b4484..7e922a3 100644 --- a/apps/firefox/default.nix +++ b/apps/firefox/default.nix @@ -22,10 +22,10 @@ "special:jellyfin, on-created-empty:uwsm app -- firefox -P web-app --name jellyfin https://watch.sakamoto.dev" ]; - windowrulev2 = [ - "opacity 0.99 0.99, class:(?i)(firefox|youtube|jellyfin)" - "workspace special:youtube, class:^(youtube)$" - "workspace special:jellyfin, class:^(jellyfin)$" + windowrule = [ + "match:class (?i)(firefox|youtube|jellyfin), opacity 1 1" + "match:class ^(youtube)$, workspace special:youtube" + "match:class ^(jellyfin)$, workspace special:jellyfin" ]; }; imports = [ diff --git a/apps/hyprland/hypr/general.nix b/apps/hyprland/hypr/general.nix index d562a1e..b64e084 100644 --- a/apps/hyprland/hypr/general.nix +++ b/apps/hyprland/hypr/general.nix @@ -9,7 +9,7 @@ }; decoration = { rounding = 0; - active_opacity = 0.99; + active_opacity = 1; inactive_opacity = 0.99; shadow = { enabled = true; @@ -29,7 +29,6 @@ }; monitor = myConfig.hyprland.monitors; dwindle = { - pseudotile = true; preserve_split = true; smart_split = false; }; diff --git a/apps/hyprland/hypr/layers.nix b/apps/hyprland/hypr/layers.nix index 34e1bd0..0301531 100644 --- a/apps/hyprland/hypr/layers.nix +++ b/apps/hyprland/hypr/layers.nix @@ -1,12 +1,7 @@ {pkgs, ...}: { wayland.windowManager.hyprland.settings = { layerrule = [ - # Blur and transparency for vicinae - "blur, vicinae" - "ignorealpha 0, vicinae" - - # Disable animation for vicinae - "noanim, vicinae" + "match:namespace vicinae, blur true, ignore_alpha 0.0, no_anim true" ]; }; } diff --git a/apps/hyprland/hypr/misc.nix b/apps/hyprland/hypr/misc.nix index 28b7ff0..26873e1 100644 --- a/apps/hyprland/hypr/misc.nix +++ b/apps/hyprland/hypr/misc.nix @@ -5,7 +5,7 @@ disable_splash_rendering = true; focus_on_activate = true; anr_missed_pings = 3; - new_window_takes_over_fullscreen = 1; + on_focus_under_fullscreen = 1; }; # experimental = { diff --git a/apps/hyprland/hypr/rules.nix b/apps/hyprland/hypr/rules.nix index d58b647..2bcd63b 100644 --- a/apps/hyprland/hypr/rules.nix +++ b/apps/hyprland/hypr/rules.nix @@ -1,10 +1,10 @@ { wayland.windowManager.hyprland.settings = { - windowrulev2 = [ + windowrule = [ # Make all inactive windows transparent - "opacity 0.99 0.8, class:.*" + "match:class .*, opacity 1 0.8" # But make Firefox windows opaque again (last rule wins) - "float, title:(?i)bitwarden" + "match:title (?i)bitwarden, float on" ]; workspace = [ ]; diff --git a/apps/hyprpaper/default.nix b/apps/hyprpaper/default.nix index c1eb9ba..7cad7f6 100644 --- a/apps/hyprpaper/default.nix +++ b/apps/hyprpaper/default.nix @@ -64,22 +64,23 @@ in { "SUPER CTRL, I, Switch Wallpaper, exec, hakase-wallpaper-switch" ]; - windowrulev2 = [ + windowrule = [ # --- WALLPAPER PICKER --- - "float, class:^(org\.hakase\.switch-wallpaper)$" - "float, initialTitle:^(Wallpaper Selector)$" - "center, class:^(org\.hakase\.switch-wallpaper)$" - "center, initialTitle:^(Wallpaper Selector)$" - "size 60% 60%, class:^(org\.hakase\.switch-wallpaper)$" - "size 60% 60%, initialTitle:^(Wallpaper Selector)$" - "dimaround, class:^(org\.hakase\.switch-wallpaper)$" - "dimaround, initialTitle:^(Wallpaper Selector)$" + "match:class ^(org\.hakase\.switch-wallpaper)$, float on" + "match:initial_title ^(Wallpaper Selector)$, float on" + "match:class ^(org\.hakase\.switch-wallpaper)$, center on" + "match:initial_title ^(Wallpaper Selector)$, center on" + "match:class ^(org\.hakase\.switch-wallpaper)$, size 60% 60%" + "match:initial_title ^(Wallpaper Selector)$, size 60% 60%" + "match:class ^(org\.hakase\.switch-wallpaper)$, dim_around on" + "match:initial_title ^(Wallpaper Selector)$, dim_around on" ]; }; services.hyprpaper = { enable = true; settings = { + splash = false; preload = [cacheWallpaper]; wallpaper = [ ",${cacheWallpaper}" diff --git a/apps/imv/default.nix b/apps/imv/default.nix index 2c3806e..1ddf67d 100644 --- a/apps/imv/default.nix +++ b/apps/imv/default.nix @@ -73,9 +73,9 @@ in { show = no ''; - wayland.windowManager.hyprland.settings.windowrulev2 = [ + wayland.windowManager.hyprland.settings.windowrule = [ # --- IMAGE VIEWER (swayimg) --- - "float, class:^(swayimg)$" - "center, class:^(swayimg)$" + "match:class ^(swayimg)$, float on" + "match:class ^(swayimg)$, center on" ]; } diff --git a/apps/jellyfin-mpv-shim/default.nix b/apps/jellyfin-mpv-shim/default.nix index f61a6f5..1ed34a6 100644 --- a/apps/jellyfin-mpv-shim/default.nix +++ b/apps/jellyfin-mpv-shim/default.nix @@ -62,14 +62,14 @@ wayland.windowManager.hyprland.settings = { exec-once = [ "systemctl --user start jellyfin-mpv-shim" ]; - windowrulev2 = [ + windowrule = [ # --- JELLYFIN MPV SHIM --- - "float, class:^(jellyfin-mpv-shim)$" - "center, class:^(jellyfin-mpv-shim)$" - "size 70% 70%, class:^(jellyfin-mpv-shim)$" - "opacity 1.0 override 1.0 override, class:^(jellyfin-mpv-shim)$" - "idleinhibit focus, class:^(jellyfin-mpv-shim)$" - "noblur, class:^(jellyfin-mpv-shim)$" + "match:class ^(jellyfin-mpv-shim)$, float on" + "match:class ^(jellyfin-mpv-shim)$, center on" + "match:class ^(jellyfin-mpv-shim)$, size 70% 70%" + "match:class ^(jellyfin-mpv-shim)$, opacity 1.0 override 1.0 override" + "match:class ^(jellyfin-mpv-shim)$, idle_inhibit focus" + "match:class ^(jellyfin-mpv-shim)$, no_blur on" ]; }; } \ No newline at end of file diff --git a/apps/mpv/default.nix b/apps/mpv/default.nix index 8e60e6e..f7c2e34 100644 --- a/apps/mpv/default.nix +++ b/apps/mpv/default.nix @@ -30,10 +30,10 @@ }; }; - wayland.windowManager.hyprland.settings.windowrulev2 = [ + wayland.windowManager.hyprland.settings.windowrule = [ # --- VIDEO PLAYER (mpv) --- - "float, class:^(mpv)$" - "center, class:^(mpv)$" - "size 60% 70%, class:^(mpv)$" + "match:class ^(mpv)$, float on" + "match:class ^(mpv)$, center on" + "match:class ^(mpv)$, size 60% 70%" ]; } diff --git a/apps/vicinae/default.nix b/apps/vicinae/default.nix index 097475e..1dbfc79 100644 --- a/apps/vicinae/default.nix +++ b/apps/vicinae/default.nix @@ -78,10 +78,9 @@ in { bindd = [ "SUPER, SPACE, Open Vicinae, exec, vicinae-toggle" - "SUPER, period, Open Emoji Picker, exec, vicinae-toggle deeplink vicinae://extensions/vicinae/core/search-emojis" - # FIXME: calculator history does not allow you to calculate - "SUPER, C, Open Calculator, exec, vicinae-toggle deeplink vicinae://extensions/vicinae/calculator/history" - "SUPER, V, Open Clipboard History, exec, vicinae-toggle deeplink vicinae://extensions/vicinae/clipboard/history" + "SUPER, period, Open Emoji Picker, exec, vicinae-toggle deeplink vicinae://launch/core/search-emojis" + "SUPER, C, Open Calculator, exec, vicinae-toggle deeplink vicinae://launch/calculator/history" + "SUPER, V, Open Clipboard History, exec, vicinae-toggle deeplink vicinae://launch/clipboard/history" ]; }; } diff --git a/apps/waybar/default.nix b/apps/waybar/default.nix index 81c0071..9a54974 100644 --- a/apps/waybar/default.nix +++ b/apps/waybar/default.nix @@ -65,13 +65,13 @@ in { "SUPER, T, exec, hakase-popup-launch wiremix" ]; - windowrulev2 = [ + windowrule = [ # --- POPUP RULES (Wifi, BT, Audio) --- - "float, class:^(org\.hakase\.popup\..*)$" - "size 900 600, class:^(org\.hakase\.popup\..*)$" - "center, class:^(org\.hakase\.popup\..*)$" - "animation slide right, class:^(org\.hakase\.popup\..*)$" - "dimaround, class:^(org\.hakase\.popup\..*)$" + "match:class ^(org\.hakase\.popup\..*)$, float on" + "match:class ^(org\.hakase\.popup\..*)$, size 900 600" + "match:class ^(org\.hakase\.popup\..*)$, center on" + "match:class ^(org\.hakase\.popup\..*)$, animation slide right" + "match:class ^(org\.hakase\.popup\..*)$, dim_around on" ]; }; imports = [ diff --git a/apps/yazi/default.nix b/apps/yazi/default.nix index d374e26..5f729bb 100644 --- a/apps/yazi/default.nix +++ b/apps/yazi/default.nix @@ -153,10 +153,10 @@ in { }; }; - wayland.windowManager.hyprland.settings.windowrulev2 = [ + wayland.windowManager.hyprland.settings.windowrule = [ # File picker yazi - floating, centered, smaller size - "float, class:^(org\\.hakase\\.popup\\.yazi)$" - "size 60% 70%, class:^(org\\.hakase\\.popup\\.yazi)$" - "center, class:^(org\\.hakase\\.popup\\.yazi)$" + "match:class ^(org\\.hakase\\.popup\\.yazi)$, float on" + "match:class ^(org\\.hakase\\.popup\\.yazi)$, size 60% 70%" + "match:class ^(org\\.hakase\\.popup\\.yazi)$, center on" ]; } diff --git a/config.nix b/config.nix index ade78a3..193b92f 100644 --- a/config.nix +++ b/config.nix @@ -32,7 +32,7 @@ }; hyprland = { monitors = [ - "DP-1,highres@165,0x1080,1,vrr,0,bitdepth,10,cm,hdr,sdrbrightness,1.3" + "DP-1,highres@180,0x1080,1,vrr,1,bitdepth,10,cm,hdr,sdrbrightness,2..5" "DP-2, highres@165,760x0,1" "HDMI-A-1, highres@highrr@120, 3440x1440, 1.6" ]; diff --git a/flake.lock b/flake.lock index 5d5b215..365cc15 100644 --- a/flake.lock +++ b/flake.lock @@ -41,11 +41,11 @@ ] }, "locked": { - "lastModified": 1765900596, - "narHash": "sha256-+hn8v9jkkLP9m+o0Nm5SiEq10W0iWDSotH2XfjU45fA=", + "lastModified": 1778857089, + "narHash": "sha256-TclWRW2SdFeETLaiTG4BA8C8C4m/LppQEldncqyTzAQ=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "d83c97f8f5c0aae553c1489c7d9eff3eadcadace", + "rev": "ab2b0af63fbc9fb779d684f19149b790978be8a8", "type": "github" }, "original": { @@ -141,15 +141,15 @@ "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1761588595, - "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", - "owner": "edolstra", + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", "repo": "flake-compat", - "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", "type": "github" }, "original": { - "owner": "edolstra", + "owner": "NixOS", "repo": "flake-compat", "type": "github" } @@ -347,11 +347,11 @@ ] }, "locked": { - "lastModified": 1753964049, - "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", + "lastModified": 1776511930, + "narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", + "rev": "39435900785d0c560c6ae8777d29f28617d031ef", "type": "github" }, "original": { @@ -376,11 +376,11 @@ ] }, "locked": { - "lastModified": 1763733840, - "narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=", + "lastModified": 1776426399, + "narHash": "sha256-RUESLKNikIeEq9ymGJ6nmcDXiSFQpUW1IhJ245nL3xM=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a", + "rev": "68d064434787cf1ed4a2fe257c03c5f52f33cf84", "type": "github" }, "original": { @@ -408,11 +408,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1767300597, - "narHash": "sha256-lGE1j1bEuNp7XoDP+oyyF/c+MzYAs6S+sz0NK71nXZE=", + "lastModified": 1779983308, + "narHash": "sha256-mvjt5EqRubXF5w1RnyLsWOduJQzHDZCjohWJz/TUvJM=", "ref": "refs/heads/main", - "rev": "31d3181e1ee91e338fb4fb8207d64b8d689310fc", - "revCount": 6766, + "rev": "ebc1816dfb27f1091c9713876669e092a215382d", + "revCount": 7376, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -456,11 +456,11 @@ ] }, "locked": { - "lastModified": 1765643131, - "narHash": "sha256-CCGohW5EBIRy4B7vTyBMqPgsNcaNenVad/wszfddET0=", + "lastModified": 1776426575, + "narHash": "sha256-KI6nIfVihn/DPaeB5Et46Xg3dkNHrrEtUd5LBBVomB0=", "owner": "hyprwm", "repo": "hyprland-guiutils", - "rev": "e50ae912813bdfa8372d62daf454f48d6df02297", + "rev": "a968d211048e3ed538e47b84cb3649299578f19d", "type": "github" }, "original": { @@ -486,11 +486,11 @@ ] }, "locked": { - "lastModified": 1767304464, - "narHash": "sha256-HsdfmPf5291Y3yXScMoj53P/9SS1DK3KgbprBuR8A4k=", + "lastModified": 1779209205, + "narHash": "sha256-asc7NpeB8vD66gvZeYcQkaWOs2X6Jgd29vBtP17vjxo=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "7a8521112361997d071fd1fef06d6becc7e53240", + "rev": "1cb37fad68dff5f5840010c314fed5809b4ee66f", "type": "github" }, "original": { @@ -511,11 +511,11 @@ ] }, "locked": { - "lastModified": 1765214753, - "narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=", + "lastModified": 1772460177, + "narHash": "sha256-/6G/MsPvtn7bc4Y32pserBT/Z4SUUdBd4XYJpOEKVR4=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab", + "rev": "1cb6db5fd6bb8aee419f4457402fa18293ace917", "type": "github" }, "original": { @@ -540,11 +540,11 @@ ] }, "locked": { - "lastModified": 1764612430, - "narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=", + "lastModified": 1777320127, + "narHash": "sha256-Qu+Wf2Bp5qUjyn2YpZNq8a7JyzTGowhT1knrwE38a9U=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "0d00dc118981531aa731150b6ea551ef037acddd", + "rev": "090117506ddc3d7f26e650ff344d378c2ec329cc", "type": "github" }, "original": { @@ -578,14 +578,15 @@ "inputs": { "hyprland": [ "hyprland" - ] + ], + "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1766546378, - "narHash": "sha256-GSoSLHErh1mRfgXM57W98L67MMBHKCemHzxoZPrejSI=", + "lastModified": 1779414137, + "narHash": "sha256-XpwuFhwnfwPbzImZeUWWns///UEpoKNkpl1hN90C3Ag=", "owner": "shezdy", "repo": "hyprsplit", - "rev": "9a8b55f4269bfa5c59d03ed9f4502f433572c616", + "rev": "0fc01e7930625ecb3e069f5dc8e1d61eab929f3b", "type": "github" }, "original": { @@ -633,11 +634,11 @@ ] }, "locked": { - "lastModified": 1764592794, - "narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=", + "lastModified": 1772462885, + "narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=", "owner": "hyprwm", "repo": "hyprtoolkit", - "rev": "5cfe0743f0e608e1462972303778d8a0859ee63e", + "rev": "9af245a69fa6b286b88ddfc340afd288e00a6998", "type": "github" }, "original": { @@ -658,11 +659,11 @@ ] }, "locked": { - "lastModified": 1766160771, - "narHash": "sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw=", + "lastModified": 1779475241, + "narHash": "sha256-Nw4DN0A5krWNcPBvuWe5Gz2yuxsUUPiDgtu6SVPJQeU=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "5ac060bfcf2f12b3a6381156ebbc13826a05b09f", + "rev": "3cd3972b2ee658a14d2610d8494e09259e530124", "type": "github" }, "original": { @@ -683,11 +684,11 @@ ] }, "locked": { - "lastModified": 1763640274, - "narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=", + "lastModified": 1777159683, + "narHash": "sha256-Jxixw6wZphUp+nHYxOKUYSckL17QMBx2d5Zp0rJHr1g=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671", + "rev": "b8632713a6beaf28b56f2a7b0ab2fb7088dbb404", "type": "github" }, "original": { @@ -712,11 +713,11 @@ ] }, "locked": { - "lastModified": 1766253200, - "narHash": "sha256-26qPwrd3od+xoYVywSB7hC2cz9ivN46VPLlrsXyGxvE=", + "lastModified": 1778410714, + "narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=", "owner": "hyprwm", "repo": "hyprwire", - "rev": "1079777525b30a947c8d657fac158e00ae85de9d", + "rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc", "type": "github" }, "original": { @@ -822,6 +823,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1778869304, + "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d233902339c02a9c334e7e593de68855ad26c4cb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1744536153, "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", @@ -837,7 +854,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { "lastModified": 1778869304, "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=", @@ -907,11 +924,11 @@ ] }, "locked": { - "lastModified": 1765911976, - "narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=", + "lastModified": 1778507602, + "narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "b68b780b69702a090c8bb1b973bab13756cc7a27", + "rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a", "type": "github" }, "original": { @@ -932,7 +949,7 @@ "hyprspace": "hyprspace", "hyprsplit": "hyprsplit", "nixovim": "nixovim", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "nur": "nur", "sops-nix": "sops-nix", "textfox": "textfox", @@ -964,7 +981,7 @@ }, "rust-overlay_2": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1766544144, @@ -1220,11 +1237,11 @@ ] }, "locked": { - "lastModified": 1761431178, - "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", + "lastModified": 1778265244, + "narHash": "sha256-8jlPtGSsv/CQY6tVVyLF4Jjd0gnS+Zbn9yk/V13A9nM=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", + "rev": "813ea5ca9a1702a9a2d1f5836bc00172ef698968", "type": "github" }, "original": { diff --git a/modules/home/gaming.nix b/modules/home/gaming.nix index 1bc61b6..2c27305 100644 --- a/modules/home/gaming.nix +++ b/modules/home/gaming.nix @@ -33,16 +33,16 @@ ]; mkGameRules = selector: [ - "monitor ${gamingMonitor}, ${selector}" - "fullscreen, ${selector}" - "immediate, ${selector}" - "tile, ${selector}" + "match:${selector}, monitor ${gamingMonitor}" + "match:${selector}, fullscreen on" + "match:${selector}, immediate on" + "match:${selector}, tile on" ]; stayFocusedRules = lib.flatten (map ( game: [ - "stayfocused, title:^(${game})$" - "stayfocused, class:^(${game})$" + "match:title ^(${game})$, stay_focused on" + "match:class ^(${game})$, stay_focused on" ] ) stayFocusedGames); @@ -73,7 +73,7 @@ in { ]; exec-once = [ - "[workspace special:steam silent] uwsm app -- steam" + "[workspace special:steam silent] steam" ]; bindd = [ @@ -83,44 +83,44 @@ in { "SUPER SHIFT, G, Move to Gaming Workspace, movetoworkspace, name:gaming" ]; - windowrulev2 = + windowrule = [ - "plugin:hyprbars:nobar, class:^(steam)$" - "plugin:hyprbars:nobar, class:^(steam_app_\\d+)$" + "match:class ^(steam)$, hyprbars:no_bar on" + "match:class ^(steam_app_\\d+)$, hyprbars:no_bar on" # --- STEAM GENERAL RULES --- # Default ALL steam class windows to float. This catches all dialogs & properties windows. - "float, class:^(steam)$" + "match:class ^(steam)$, float on" # Suppress focus stealing from dialogs/etc. - "noinitialfocus, class:^(steam)$" - "suppressevent activate fullscreen maximize, class:^(steam)$" + "match:class ^(steam)$, no_initial_focus on" + "match:class ^(steam)$, suppress_event activate fullscreen maximize" # --- STEAM CLIENT OVERRIDE --- # Override the float for the main Steam client, tile it, and move it to the special workspace. - "tile, class:^(steam)$" - "workspace special:steam, class:^(steam)$" + "match:class ^(steam)$, tile on" + "match:class ^(steam)$, workspace special:steam" # --- STEAM GAME OVERRIDES --- # Override the float for actual games and move them to the gaming workspace. # 1. Auto-detected steam_app games (like Deadlock). - "monitor ${gamingMonitor}, class:^(steam_app_\\d+)$" - "tile, class:^(steam_app_\\d+)$" - "fullscreen, class:^(steam_app_\\d+)$" - "immediate, class:^(steam_app_\\d+)$" - "workspace name:gaming, class:^(steam_app_\\d+)$" + "match:class ^(steam_app_\\d+)$, monitor ${gamingMonitor}" + "match:class ^(steam_app_\\d+)$, tile on" + "match:class ^(steam_app_\\d+)$, fullscreen on" + "match:class ^(steam_app_\\d+)$, immediate on" + "match:class ^(steam_app_\\d+)$, workspace name:gaming" # 2. Behavior-detected manual games (e.g. ARC Raiders). # This moves any steam game to the gaming workspace and tiles it when it becomes fullscreen. - "tile, class:^(steam)$, fullscreen:1" - "workspace name:gaming, class:^(steam)$, fullscreen:1" + "match:class ^(steam)$, match:fullscreen true, tile on" + "match:class ^(steam)$, match:fullscreen true, workspace name:gaming" ] # Other auto-detected non-steam games - ++ (mkGameRules "class:^(gamescope)$") - ++ (mkGameRules "class:^(lutris)$") - ++ (mkGameRules "class:^(heroic)$") - ++ (mkGameRules "class:^wine-.*$") - ++ (mkGameRules "title:^Wine .*$") - ++ (mkGameRules "initialTitle:^(?i)godot.*$") + ++ (mkGameRules "class ^(gamescope)$") + ++ (mkGameRules "class ^(lutris)$") + ++ (mkGameRules "class ^(heroic)$") + ++ (mkGameRules "class ^wine-.*$") + ++ (mkGameRules "title ^Wine .*$") + ++ (mkGameRules "initial_title ^(?i)godot.*$") # ++ [ # "monitor 0, initialTitle:^(?i)godot.*$" # "fullscreen, initialTitle:^(?i)godot.*$" diff --git a/modules/home/music.nix b/modules/home/music.nix index 8917978..8836937 100644 --- a/modules/home/music.nix +++ b/modules/home/music.nix @@ -42,14 +42,14 @@ in { "SUPER SHIFT, M, Move to Music Workspace, movetoworkspace, name:music" ]; - windowrulev2 = [ + windowrule = [ # --- MUSIC RULES (Jellyfin-TUI) --- - "workspace name:music silent, title:^(jellyfin-tui)$" - "workspace name:music silent, initialTitle:^(jellyfin-tui)$" + "match:title ^(jellyfin-tui)$, workspace name:music silent" + "match:initial_title ^(jellyfin-tui)$, workspace name:music silent" # --- CAVA RULES --- - "workspace name:music silent, title:^(cava)$" - "workspace name:music silent, initialTitle:^(cava)$" + "match:title ^(cava)$, workspace name:music silent" + "match:initial_title ^(cava)$, workspace name:music silent" ]; }; } diff --git a/modules/nixos/services.nix b/modules/nixos/services.nix index 3bce051..db21a42 100644 --- a/modules/nixos/services.nix +++ b/modules/nixos/services.nix @@ -8,11 +8,11 @@ enable = true; settings = { initial_session = { - command = "${pkgs.hyprland}/bin/Hyprland"; + command = "${pkgs.uwsm}/bin/start-hyprland"; user = "${myConfig.nixos.username}"; }; default_session = { - command = "${pkgs.tuigreet}/bin/tuigreet --time --remember --cmd Hyprland"; + command = "${pkgs.tuigreet}/bin/tuigreet --time --remember --cmd start-hyprland"; }; }; };