diff --git a/apps/extract-subs/default.nix b/apps/extract-subs/default.nix
index 96c61529..2128d2ab 100644
--- a/apps/extract-subs/default.nix
+++ b/apps/extract-subs/default.nix
@@ -5,7 +5,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-spNV7Hs9eBjoOQtrCqN3IKyJ7vVXDedOLwOkcNRu/wE=";
+  npmDepsHash = "sha256-s+4MXZBCmCEcqT4qCETa/aQqdeAzluScILeye6h8cfg=";
 
   runtimeInputs = [
     ffmpeg-full
diff --git a/apps/extract-subs/package-lock.json b/apps/extract-subs/package-lock.json
index a00c0de4..eb2a3556 100644
--- a/apps/extract-subs/package-lock.json
+++ b/apps/extract-subs/package-lock.json
@@ -9,7 +9,7 @@
             "version": "0.0.0",
             "dependencies": {
                 "@types/fluent-ffmpeg": "2.1.27",
-                "@types/node": "22.15.15",
+                "@types/node": "22.15.17",
                 "esbuild": "0.25.4",
                 "eslint": "9.26.0",
                 "fluent-ffmpeg": "2.1.3",
@@ -35,7 +35,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.3",
-                "typescript-eslint": "8.31.1"
+                "typescript-eslint": "8.32.0"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
@@ -670,9 +670,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.15.15",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.15.tgz",
-            "integrity": "sha512-R5muMcZob3/Jjchn5LcO8jdKwSCbzqmPB6ruBxMcf9kbxtniZHP327s6C37iOfuw8mbKK3cAQa7sEl7afLrQ8A==",
+            "version": "22.15.17",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz",
+            "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.21.0"
diff --git a/apps/extract-subs/package.json b/apps/extract-subs/package.json
index a610eb37..c425bb86 100644
--- a/apps/extract-subs/package.json
+++ b/apps/extract-subs/package.json
@@ -9,7 +9,7 @@
     "dependencies": {
         "@types/fluent-ffmpeg": "2.1.27",
         "fluent-ffmpeg": "2.1.3",
-        "@types/node": "22.15.15",
+        "@types/node": "22.15.17",
         "esbuild": "0.25.4",
         "eslint": "9.26.0",
         "jiti": "2.4.2",
diff --git a/apps/list2series/default.nix b/apps/list2series/default.nix
index a33e50b7..b19088f1 100644
--- a/apps/list2series/default.nix
+++ b/apps/list2series/default.nix
@@ -1,7 +1,7 @@
 {buildApp, ...}:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-O1a+US9uiTn5kKHRcv+j1P8cC9dNQUKLtIOF/r0ggUQ=";
+  npmDepsHash = "sha256-UR2hivKGRenJ1W0iEqiyE9JSEhrn6yRu3gFCZAv5rBw=";
 
   runtimeInputs = [];
 
diff --git a/apps/list2series/package-lock.json b/apps/list2series/package-lock.json
index 89e0ce2b..5f7fc4a2 100644
--- a/apps/list2series/package-lock.json
+++ b/apps/list2series/package-lock.json
@@ -8,7 +8,7 @@
             "name": "list2series",
             "version": "0.0.0",
             "dependencies": {
-                "@types/node": "22.15.15",
+                "@types/node": "22.15.17",
                 "axios": "1.9.0",
                 "esbuild": "0.25.4",
                 "eslint": "9.26.0",
@@ -661,9 +661,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.15.15",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.15.tgz",
-            "integrity": "sha512-R5muMcZob3/Jjchn5LcO8jdKwSCbzqmPB6ruBxMcf9kbxtniZHP327s6C37iOfuw8mbKK3cAQa7sEl7afLrQ8A==",
+            "version": "22.15.17",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz",
+            "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.21.0"
diff --git a/apps/list2series/package.json b/apps/list2series/package.json
index 025d329b..4bb0f23c 100644
--- a/apps/list2series/package.json
+++ b/apps/list2series/package.json
@@ -7,7 +7,7 @@
         "build": "node_ver=$(node -v); esbuild src/app.ts --bundle --platform=node --target=\"node${node_ver:1:2}\" --outfile=out/bin/app.cjs"
     },
     "dependencies": {
-        "@types/node": "22.15.15",
+        "@types/node": "22.15.17",
         "axios": "1.9.0",
         "esbuild": "0.25.4",
         "eslint": "9.26.0",
diff --git a/apps/mc-mods/default.nix b/apps/mc-mods/default.nix
index 42cba6ce..88436151 100644
--- a/apps/mc-mods/default.nix
+++ b/apps/mc-mods/default.nix
@@ -5,7 +5,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-7UXTANcxaEIDzALkc0MZVfsXTW1b7EYj1hWHUjkRUJU=";
+  npmDepsHash = "sha256-3GgeXWvcx0mHIcrXrPI3+VDPehAA9tH50ZWLp9WCPRs=";
 
   runtimeInputs = [
     nodejs_latest
diff --git a/apps/mc-mods/package-lock.json b/apps/mc-mods/package-lock.json
index ccceff55..739be88b 100644
--- a/apps/mc-mods/package-lock.json
+++ b/apps/mc-mods/package-lock.json
@@ -8,7 +8,7 @@
             "name": "mc-mods",
             "version": "0.0.0",
             "dependencies": {
-                "@types/node": "22.15.15",
+                "@types/node": "22.15.17",
                 "esbuild": "0.25.4",
                 "eslint": "9.26.0",
                 "jiti": "2.4.2",
@@ -660,9 +660,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.15.15",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.15.tgz",
-            "integrity": "sha512-R5muMcZob3/Jjchn5LcO8jdKwSCbzqmPB6ruBxMcf9kbxtniZHP327s6C37iOfuw8mbKK3cAQa7sEl7afLrQ8A==",
+            "version": "22.15.17",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz",
+            "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.21.0"
diff --git a/apps/mc-mods/package.json b/apps/mc-mods/package.json
index c2cdff47..8d73e1e6 100644
--- a/apps/mc-mods/package.json
+++ b/apps/mc-mods/package.json
@@ -7,7 +7,7 @@
         "build": "node_ver=$(node -v); esbuild src/app.ts --bundle --platform=node --target=\"node${node_ver:1:2}\" --outfile=out/bin/app.cjs"
     },
     "dependencies": {
-        "@types/node": "22.15.15",
+        "@types/node": "22.15.17",
         "esbuild": "0.25.4",
         "eslint": "9.26.0",
         "jiti": "2.4.2",
diff --git a/apps/pin-inputs/default.nix b/apps/pin-inputs/default.nix
index 44e98034..0400ebc3 100644
--- a/apps/pin-inputs/default.nix
+++ b/apps/pin-inputs/default.nix
@@ -1,7 +1,7 @@
 {buildApp, ...}:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-5E1tNoLxofn3R/PuCiGsTVTOieY7R+nyfdTh/BhHjRo=";
+  npmDepsHash = "sha256-I0jJrKPQNtkiFhVa2vQc4C3T2U0mtt59jlWdmavc8xM=";
 
   runtimeInputs = [];
 
diff --git a/apps/pin-inputs/package-lock.json b/apps/pin-inputs/package-lock.json
index eaf936a6..f085e05b 100644
--- a/apps/pin-inputs/package-lock.json
+++ b/apps/pin-inputs/package-lock.json
@@ -8,7 +8,7 @@
             "name": "pin-inputs",
             "version": "0.0.0",
             "dependencies": {
-                "@types/node": "22.15.15",
+                "@types/node": "22.15.17",
                 "esbuild": "0.25.4",
                 "eslint": "9.26.0",
                 "jiti": "2.4.2",
@@ -660,9 +660,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.15.15",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.15.tgz",
-            "integrity": "sha512-R5muMcZob3/Jjchn5LcO8jdKwSCbzqmPB6ruBxMcf9kbxtniZHP327s6C37iOfuw8mbKK3cAQa7sEl7afLrQ8A==",
+            "version": "22.15.17",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz",
+            "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.21.0"
diff --git a/apps/pin-inputs/package.json b/apps/pin-inputs/package.json
index e93144f8..5fbd33cd 100644
--- a/apps/pin-inputs/package.json
+++ b/apps/pin-inputs/package.json
@@ -7,7 +7,7 @@
         "build": "node_ver=$(node -v); esbuild src/app.ts --bundle --platform=node --target=\"node${node_ver:1:2}\" --outfile=out/bin/app.cjs"
     },
     "dependencies": {
-        "@types/node": "22.15.15",
+        "@types/node": "22.15.17",
         "esbuild": "0.25.4",
         "eslint": "9.26.0",
         "jiti": "2.4.2",
diff --git a/apps/update-sources/default.nix b/apps/update-sources/default.nix
index 634fa1a3..7aaecfcd 100644
--- a/apps/update-sources/default.nix
+++ b/apps/update-sources/default.nix
@@ -12,7 +12,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-HB4DNSSFCJANThHylb+iH5EBMTDL+1dw+uO9wjH8DNs=";
+  npmDepsHash = "sha256-mUU1yZ30ubDWYRgWwdskGZOTYaA65DFFYPGV3Wbkh1M=";
 
   runtimeInputs = [
     curl
diff --git a/apps/update-sources/package-lock.json b/apps/update-sources/package-lock.json
index 4f5b6d82..f38fefd8 100644
--- a/apps/update-sources/package-lock.json
+++ b/apps/update-sources/package-lock.json
@@ -8,7 +8,7 @@
             "name": "update-sources",
             "version": "0.0.0",
             "dependencies": {
-                "@types/node": "22.15.15",
+                "@types/node": "22.15.17",
                 "esbuild": "0.25.4",
                 "eslint": "9.26.0",
                 "jiti": "2.4.2",
@@ -34,7 +34,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.3",
-                "typescript-eslint": "8.31.1"
+                "typescript-eslint": "8.32.0"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
@@ -660,9 +660,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.15.15",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.15.tgz",
-            "integrity": "sha512-R5muMcZob3/Jjchn5LcO8jdKwSCbzqmPB6ruBxMcf9kbxtniZHP327s6C37iOfuw8mbKK3cAQa7sEl7afLrQ8A==",
+            "version": "22.15.17",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz",
+            "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.21.0"
diff --git a/apps/update-sources/package.json b/apps/update-sources/package.json
index a77ac01c..693d3976 100644
--- a/apps/update-sources/package.json
+++ b/apps/update-sources/package.json
@@ -7,7 +7,7 @@
         "build": "node_ver=$(node -v); esbuild src/app.ts --bundle --platform=node --target=\"node${node_ver:1:2}\" --outfile=out/bin/app.cjs"
     },
     "dependencies": {
-        "@types/node": "22.15.15",
+        "@types/node": "22.15.17",
         "esbuild": "0.25.4",
         "eslint": "9.26.0",
         "jiti": "2.4.2",
diff --git a/flake.lock b/flake.lock
index 5f144021..88cc2cc4 100644
--- a/flake.lock
+++ b/flake.lock
@@ -444,11 +444,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1746632058,
-        "narHash": "sha256-Mp5Bbvb+YlFEZ76C/0wFS6C1lRfH3D60u465wFNlnS0=",
+        "lastModified": 1746710194,
+        "narHash": "sha256-r2zE8+rWZieU05LMKixeU5SsMy9I4truiTPKchTPNaw=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "708074ae6db9e0468e4f48477f856e8c2d059795",
+        "rev": "cea975d46d08293eae3ad0d9f16207f1ce2dfc81",
         "type": "github"
       },
       "original": {
@@ -525,16 +525,15 @@
         ]
       },
       "locked": {
-        "lastModified": 1746483018,
+        "lastModified": 1746718195,
         "narHash": "sha256-8Sl2V23EYcZMniBLmKenxH7bMLTGC6Q84ntyFvOUkWU=",
         "owner": "horriblename",
         "repo": "hyprgrass",
-        "rev": "ea3067fd9cdff09821121a6c63d633226266aaa8",
+        "rev": "7cf3779b5cdc6fa62fdc733b30c31a5b8e48609c",
         "type": "github"
       },
       "original": {
         "owner": "horriblename",
-        "ref": "ea3067fd9cdff09821121a6c63d633226266aaa8",
         "repo": "hyprgrass",
         "type": "github"
       }
@@ -821,11 +820,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1746656950,
-        "narHash": "sha256-tnbPgz/TYBsxuidwFwVYgz/aZLVUy1EkIemTDDOh1XY=",
+        "lastModified": 1746681524,
+        "narHash": "sha256-c5kDVFh+vVfQSEXdVIudFRzPH3LO8j2ImgsBeo8v+Eo=",
         "owner": "Jovian-Experiments",
         "repo": "Jovian-NixOS",
-        "rev": "87911a856356a11c7864c0a66c4c000f178e19b0",
+        "rev": "14eb8f7d2b0cca74691db620292037bdb813ceb7",
         "type": "github"
       },
       "original": {
@@ -908,11 +907,11 @@
     "libratbag-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1730154963,
-        "narHash": "sha256-hI6Xu1RtyJsNga7BaMjQixnyv/V5qkp75FAFcqrvaHE=",
+        "lastModified": 1746687150,
+        "narHash": "sha256-aZd+YCbGPxyoQAVh8nE8WzHklhrpsUgSs7PbZAgLpMU=",
         "owner": "libratbag",
         "repo": "libratbag",
-        "rev": "df3c73e95841273908410ed1c563d8ed4ec21edd",
+        "rev": "ad6540e39bdbf029fc24126200cdf0c5f0b00e7c",
         "type": "github"
       },
       "original": {
@@ -1048,11 +1047,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1746442382,
-        "narHash": "sha256-lFUHQdnDqnXXzigQn6Kd4aVrDDjg80HAb7DfThQNC/I=",
+        "lastModified": 1746705602,
+        "narHash": "sha256-IJZaGco28YI4IF7gErOyWxZGZ9sLxrbAHBAbV1q3GXw=",
         "owner": "viperML",
         "repo": "nh",
-        "rev": "4eb1941c2e30f3dabbf24619c7ca7303c448983d",
+        "rev": "d36ff531d2e0503dce3ac8a6ec5915d2dd2a3a54",
         "type": "github"
       },
       "original": {
@@ -1120,11 +1119,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1746647091,
-        "narHash": "sha256-oFa9a/tJlg96XqPLpe473gIqbQkPHrr2tbdB/GCS0SU=",
+        "lastModified": 1746689206,
+        "narHash": "sha256-flpLC9bSI7ylfy8hI9gGleG0gt3wtYYFKdJz+Qj6xlA=",
         "owner": "Mic92",
         "repo": "nix-fast-build",
-        "rev": "8813922864147f81f1b0d3644f8df6cf24d0d651",
+        "rev": "38eecfc45d91aa1e00a740ab39bbd9d33ba5835a",
         "type": "github"
       },
       "original": {
@@ -1799,11 +1798,11 @@
     "spotifywebapi-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1746408697,
-        "narHash": "sha256-HtZdcwd/IJewKUBxcBi2FDUyuhwbGq1SOF8htKR1G1Y=",
+        "lastModified": 1746714845,
+        "narHash": "sha256-tuwttRBofyIeE/A6wistw0D5LX4xVWbEySdGst4Mhyw=",
         "owner": "thlucas1",
         "repo": "SpotifyWebApiPython",
-        "rev": "294ef95e1655df6377f075361e981b6e3b526371",
+        "rev": "093e81f31aac4f349676866561a0620b507735ed",
         "type": "github"
       },
       "original": {
diff --git a/flake.nix b/flake.nix
index ce5ab049..9cc8a1d5 100644
--- a/flake.nix
+++ b/flake.nix
@@ -138,7 +138,6 @@
         nixpkgs.follows = "nixpkgs";
       };
       owner = "horriblename";
-      ref = "ea3067fd9cdff09821121a6c63d633226266aaa8";
       repo = "hyprgrass";
       type = "github";
     };
diff --git a/inputs/default.nix b/inputs/default.nix
index b40df6c5..3a899260 100644
--- a/inputs/default.nix
+++ b/inputs/default.nix
@@ -181,9 +181,6 @@ let
       hyprgrass = mkHyprDep {
         owner = "horriblename";
         repo = "hyprgrass";
-
-        # FIXME: https://github.com/horriblename/hyprgrass/pull/234
-        ref = "ea3067fd9cdff09821121a6c63d633226266aaa8";
       };
 
       hyprpaper = mkHyprDep {
diff --git a/scopedPackages/lovelace-components/material-rounded-theme/default.nix b/scopedPackages/lovelace-components/material-rounded-theme/default.nix
index b07ef2b5..7a213360 100644
--- a/scopedPackages/lovelace-components/material-rounded-theme/default.nix
+++ b/scopedPackages/lovelace-components/material-rounded-theme/default.nix
@@ -6,7 +6,7 @@
   ...
 }: let
   pname = "material-rounded-theme";
-  version = "4.0.4";
+  version = "4.0.5";
 in
   stdenv.mkDerivation {
     inherit pname version;
@@ -15,7 +15,7 @@ in
       owner = "Nerwyn";
       repo = pname;
       rev = version;
-      hash = "sha256-fCXkKRTN3JzmBcgVaeCDahMxQl8CRXRQ/oTt/DqzfD8=";
+      hash = "sha256-9q93FyRFISKaDLnSDCF1gn/pJnzGk3QNelY6w8Oba1k=";
     };
 
     installPhase = ''