diff --git a/common/editor.nix b/common/editor.nix index 3119aa3..14d0ee0 100644 --- a/common/editor.nix +++ b/common/editor.nix @@ -1,7 +1,5 @@ { - inputs, scope, - getFlakePkg, ... }: scope "user.programs.helix" { @@ -14,9 +12,9 @@ scope "user.programs.helix" { cursorline = true; true-color = true; cursor-shape = { - insert = "bar"; + insert = "block"; normal = "block"; - select = "underline"; + select = "block"; }; statusline.left = [ "mode" diff --git a/common/nix/plugins.nix b/common/nix/plugins.nix new file mode 100644 index 0000000..b1d91c5 --- /dev/null +++ b/common/nix/plugins.nix @@ -0,0 +1,18 @@ +{ + inputs, + getFlakePkg, + ... +}: +{ + nix.settings.plugin-files = [ + "${getFlakePkg inputs.nix-scope-plugin}/lib/nix/plugins/libnix-scope-plugin.so" + ]; + imports = [ inputs.nix-shorturl-plugin.nixosModules.default ]; + nix.shorturls = { + enable = true; + schemes = { + atagen = "git+https://git.lobotomise.me/atagen/{path}"; + amaan = "github:amaanq/{path}"; + }; + }; +} diff --git a/common/nix/settings.nix b/common/nix/settings.nix index 5b1902d..ec23e6e 100644 --- a/common/nix/settings.nix +++ b/common/nix/settings.nix @@ -17,7 +17,6 @@ extraOptions = '' keep-outputs = true keep-derivations = true - allow-import-from-derivation = false ''; optimise.automatic = true; }; diff --git a/common/nix/substituters.nix b/common/nix/substituters.nix index 28b2139..0848249 100644 --- a/common/nix/substituters.nix +++ b/common/nix/substituters.nix @@ -11,6 +11,7 @@ scope "nix.settings" { # "https://cache.privatevoid.net" "https://cache.flox.dev" "https://cache.amaanq.com" + "https://cache.nixos-cuda.org" ]; trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" @@ -19,6 +20,7 @@ scope "nix.settings" { # "cache.atagen.co:SOUkNQxuu/eQ7FcI8nlUe7FpV27e7YjQlDQdn8HTUnw=" # "cache.privatevoid.net:SErQ8bvNWANeAvtsOESUwVYr2VJynfuc9JRwlzTTkVg=" "flox-cache-public-1:7F4OyH7ZCnFhcze3fJdfyXYLQw/aV7GEed86nQ7IsOs=" - "cache.amaanq.com:3qm0ZOxlHr7UQqj0G3MKlAn1votV9/3KjHGU2GQ9rEM=" + "cache.amaanq.com:H0iXsEEFsvUNtWb5v9V8Kss+L4F/tnXwDHXcY+xbmKk=" + "cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M=" ]; } diff --git a/flake.lock b/flake.lock index df06467..468bdec 100644 --- a/flake.lock +++ b/flake.lock @@ -25,11 +25,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1771000778, - "narHash": "sha256-Co3VdFeXl7abbNGEHEkjS9raX6P3yhigu162Mg6DV14=", + "lastModified": 1771605131, + "narHash": "sha256-9K3F2PSorw7cvqotXRLzz9wE29XfioMCtliFclkL/hM=", "owner": "linyinfeng", "repo": "angrr", - "rev": "6bea47aa18c2fb33aa9a363e452c037228893453", + "rev": "11fee1e3089bdbc0fb144366bc62ee8a95d4628f", "type": "github" }, "original": { @@ -55,11 +55,11 @@ }, "bunker": { "locked": { - "lastModified": 1771074280, - "narHash": "sha256-rLxr0/0BpGzVUxdnieSMicdDq6gUy013cxr+f7Y6xGc=", + "lastModified": 1771986311, + "narHash": "sha256-+31rsVS6HWC8lgSsBw5LISZabb40GQGU7otVvSpntvw=", "owner": "amaanq", "repo": "bunker-patches", - "rev": "f6d6745428c97a4ab4ae4055619c8bb1efffd12e", + "rev": "c3721ff6c6d3a4704e55cb2dde5b91ab1db6bec7", "type": "github" }, "original": { @@ -298,17 +298,35 @@ "type": "github" } }, + "helium": { + "inputs": { + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1771320802, + "narHash": "sha256-fVwjjcxivStYGSLOYJxtEISKXv/8/TxZI4EB+wqPBpc=", + "owner": "amaanq", + "repo": "helium-flake", + "rev": "e8c651bc6b16925b1f5ede3ca2e206f22d0eb96c", + "type": "github" + }, + "original": { + "owner": "amaanq", + "repo": "helium-flake", + "type": "github" + } + }, "helix": { "inputs": { - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1771001199, - "narHash": "sha256-q/ZyGZIfALlPW3AxZMjfsT01daTU232JGNVkQ/eiFsE=", + "lastModified": 1771915240, + "narHash": "sha256-lu3yU2yw8nb/1F2AUCF3QqBgiBRicxBgpKNM1xa2huU=", "owner": "helix-editor", "repo": "helix", - "rev": "d12a48a51e2409e876a18baf3cae1e838a9dddc3", + "rev": "c01d024f293240ae9ed4b3fb826f8292105fe3b2", "type": "github" }, "original": { @@ -326,11 +344,11 @@ "smfh": "smfh" }, "locked": { - "lastModified": 1769053318, - "narHash": "sha256-cKETEBrseo7Iz+bOzflwy1xTpDuUj3QaLA+P49yJw8k=", + "lastModified": 1771212460, + "narHash": "sha256-1RfmXbDIxgwP2/SrYSYd9zdArUaJEm6C3FXpdRlmeso=", "owner": "feel-co", "repo": "hjem", - "rev": "9d0c8d4b44f661910595b07e6480557644c1431c", + "rev": "7f2880d705edf541955d98f56cb78f9507384423", "type": "github" }, "original": { @@ -349,11 +367,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1766394058, - "narHash": "sha256-P+59TbVusYqdx2Jt2liwvQ+hslUzU6M1ezRDy6c66Tc=", + "lastModified": 1771501078, + "narHash": "sha256-Z2bux6QPs4lBzdiw5NdgPqk+BPF1H4lEu3C68ID7bYg=", "owner": "snugnug", "repo": "hjem-rum", - "rev": "edac54b7d57ad72cc4b124da2f44e7b2e584f3c6", + "rev": "57175e2f6ab7caf212dd985ef810ec1cd9abf755", "type": "github" }, "original": { @@ -384,6 +402,25 @@ "type": "github" } }, + "hudcore": { + "inputs": { + "nix-systems": "nix-systems", + "nixpkgs": "nixpkgs_6" + }, + "locked": { + "lastModified": 1771203193, + "narHash": "sha256-4x61Pk3b78cifs5CA3M2VHJRpUEgktI8DeKuQ1ybbsw=", + "ref": "refs/heads/main", + "rev": "588ff16cb8855e02c84fdbe32b577c6421f704d1", + "revCount": 2, + "type": "git", + "url": "https://git.lobotomise.me/atagen/hudcore-plymouth.git" + }, + "original": { + "type": "git", + "url": "https://git.lobotomise.me/atagen/hudcore-plymouth.git" + } + }, "kitty-themes-src": { "flake": false, "locked": { @@ -400,10 +437,25 @@ "type": "github" } }, + "madness": { + "locked": { + "lastModified": 1771986427, + "narHash": "sha256-xxNj8NWE/Y89yKGq/mmyAVVx5ru6JVaHUoegJuSP2Y0=", + "owner": "amaanq", + "repo": "madness", + "rev": "469f0babe98e15a19f9d1910ffab68ddc3c6da1b", + "type": "github" + }, + "original": { + "owner": "amaanq", + "repo": "madness", + "type": "github" + } + }, "meat": { "inputs": { - "nix-systems": "nix-systems", - "nixpkgs": "nixpkgs_5", + "nix-systems": "nix-systems_2", + "nixpkgs": "nixpkgs_7", "unf": "unf" }, "locked": { @@ -423,7 +475,7 @@ "naersk": { "inputs": { "fenix": "fenix", - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_11" }, "locked": { "lastModified": 1768908532, @@ -441,7 +493,7 @@ }, "ndg": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1766342086, @@ -462,7 +514,7 @@ "inputs": { "flake-compat": "flake-compat_2", "flake-parts": "flake-parts_2", - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_8" }, "locked": { "lastModified": 1748103964, @@ -482,17 +534,17 @@ "inputs": { "niri-stable": "niri-stable", "niri-unstable": "niri-unstable", - "nixpkgs": "nixpkgs_8", + "nixpkgs": "nixpkgs_10", "nixpkgs-stable": "nixpkgs-stable", "xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1771099995, - "narHash": "sha256-d9jSUIJa5MX+Y7+OMB6FgeHxS2YHT88IUl7HA5hK8FU=", + "lastModified": 1771940378, + "narHash": "sha256-qe5t8E8uK5eSgPTxtfcde3VO8fnIr/Tu+hn72FDry/E=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "3f765c47870861fafe4c6ed2e631c052aa1e1660", + "rev": "f8899e60a1425d21a03a05ac2c069a85398039b5", "type": "github" }, "original": { @@ -537,7 +589,7 @@ "inputs": { "naersk": "naersk", "niri": "niri_2", - "nixpkgs": "nixpkgs_10", + "nixpkgs": "nixpkgs_12", "systems": "systems_4" }, "locked": { @@ -557,11 +609,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1771048216, - "narHash": "sha256-g7HP0MMezWKT3R+3uQzUe3BJ68YMRZjmhNMzKTR3Sus=", + "lastModified": 1771849386, + "narHash": "sha256-CFvjBjS2LxbBMR3Lu6wZhME6ck3CXyKUufRoJA5tlmw=", "owner": "YaLTeR", "repo": "niri", - "rev": "8e3e93b6240dc9dbc702f0b44f20177c2ce737cf", + "rev": "2dc6f4482c4eeed75ea8b133d89cad8658d38429", "type": "github" }, "original": { @@ -594,11 +646,11 @@ ] }, "locked": { - "lastModified": 1770922915, - "narHash": "sha256-6J/JoK9iL7sHvKJcGW2KId2agaKv1OGypsa7kN+ZBD4=", + "lastModified": 1771520882, + "narHash": "sha256-9SeTZ4Pwr730YfT7V8Azb8GFbwk1ZwiQDAwft3qAD+o=", "owner": "nix-darwin", "repo": "nix-darwin", - "rev": "6c5a56295d2a24e43bcd8af838def1b9a95746b2", + "rev": "6a7fdcd5839ec8b135821179eea3b58092171bcf", "type": "github" }, "original": { @@ -615,11 +667,11 @@ ] }, "locked": { - "lastModified": 1765065051, - "narHash": "sha256-b7W9WsvyMOkUScNxbzS45KEJp0iiqRPyJ1I3JBE+oEE=", + "lastModified": 1770922915, + "narHash": "sha256-6J/JoK9iL7sHvKJcGW2KId2agaKv1OGypsa7kN+ZBD4=", "owner": "nix-darwin", "repo": "nix-darwin", - "rev": "7e22bf538aa3e0937effcb1cee73d5f1bcc26f79", + "rev": "6c5a56295d2a24e43bcd8af838def1b9a95746b2", "type": "github" }, "original": { @@ -651,14 +703,14 @@ }, "nix-index-database": { "inputs": { - "nixpkgs": "nixpkgs_11" + "nixpkgs": "nixpkgs_13" }, "locked": { - "lastModified": 1770315571, - "narHash": "sha256-hy0gcAgAcxrnSWKGuNO+Ob0x6jQ2xkR6hoaR0qJBHYs=", + "lastModified": 1771734689, + "narHash": "sha256-/phvMgr1yutyAMjKnZlxkVplzxHiz60i4rc+gKzpwhg=", "owner": "Mic92", "repo": "nix-index-database", - "rev": "2684bb8080a6f2ca5f9d494de5ef875bc1c4ecdb", + "rev": "8f590b832326ab9699444f3a48240595954a4b10", "type": "github" }, "original": { @@ -672,7 +724,7 @@ "flake-parts": "flake-parts_3", "git-hooks-nix": "git-hooks-nix", "kitty-themes-src": "kitty-themes-src", - "nixpkgs": "nixpkgs_12", + "nixpkgs": "nixpkgs_14", "nixpkgs-lib": "nixpkgs-lib_2", "systems": "systems_5" }, @@ -690,6 +742,42 @@ "type": "github" } }, + "nix-scope-plugin": { + "inputs": { + "nixpkgs": "nixpkgs_15" + }, + "locked": { + "lastModified": 1771982298, + "narHash": "sha256-SAkUPZEbxBLggrQLp8B86r2pVhMgP9A4NiQwGJMcG2o=", + "ref": "refs/heads/main", + "rev": "866bf279aad012b2b3d02cdc9ec47ff76285371c", + "revCount": 1, + "type": "git", + "url": "https://git.lobotomise.me/atagen/nix-scope-plugin" + }, + "original": { + "type": "git", + "url": "https://git.lobotomise.me/atagen/nix-scope-plugin" + } + }, + "nix-shorturl-plugin": { + "inputs": { + "nixpkgs": "nixpkgs_16" + }, + "locked": { + "lastModified": 1771986085, + "narHash": "sha256-M7koECMnoi+7eI0yGj+Rxiu9gC/hdbJtwUR0AyTuFsY=", + "ref": "refs/heads/main", + "rev": "807c3b0094963bb78198643b62b78e2a0c916230", + "revCount": 1, + "type": "git", + "url": "https://git.lobotomise.me/atagen/nix-shorturl-plugin" + }, + "original": { + "type": "git", + "url": "https://git.lobotomise.me/atagen/nix-shorturl-plugin" + } + }, "nix-systems": { "locked": { "lastModified": 1689347949, @@ -705,13 +793,28 @@ "type": "github" } }, + "nix-systems_2": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1770841267, - "narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=", + "lastModified": 1771369470, + "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae", + "rev": "0182a361324364ae3f436a63005877674cf45efb", "type": "github" }, "original": { @@ -768,11 +871,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1771043024, - "narHash": "sha256-O1XDr7EWbRp+kHrNNgLWgIrB0/US5wvw9K6RERWAj6I=", + "lastModified": 1771903837, + "narHash": "sha256-sdaqdnsQCv3iifzxwB22tUwN/fSHoN7j2myFW5EIkGk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3aadb7ca9eac2891d52a9dec199d9580a6e2bf44", + "rev": "e764fc9a405871f1f6ca3d1394fb422e0a0c3951", "type": "github" }, "original": { @@ -784,11 +887,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1771043024, - "narHash": "sha256-O1XDr7EWbRp+kHrNNgLWgIrB0/US5wvw9K6RERWAj6I=", + "lastModified": 1771903837, + "narHash": "sha256-sdaqdnsQCv3iifzxwB22tUwN/fSHoN7j2myFW5EIkGk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3aadb7ca9eac2891d52a9dec199d9580a6e2bf44", + "rev": "e764fc9a405871f1f6ca3d1394fb422e0a0c3951", "type": "github" }, "original": { @@ -799,6 +902,38 @@ } }, "nixpkgs_10": { + "locked": { + "lastModified": 1771848320, + "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2fc6539b481e1d2569f25f8799236694180c0993", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_11": { + "locked": { + "lastModified": 1752077645, + "narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "be9e214982e20b8310878ac2baa063a961c1bdf6", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_12": { "locked": { "lastModified": 1768875095, "narHash": "sha256-dYP3DjiL7oIiiq3H65tGIXXIT1Waiadmv93JS0sS+8A=", @@ -814,13 +949,13 @@ "type": "github" } }, - "nixpkgs_11": { + "nixpkgs_13": { "locked": { - "lastModified": 1770197578, - "narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=", + "lastModified": 1771369470, + "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", + "rev": "0182a361324364ae3f436a63005877674cf45efb", "type": "github" }, "original": { @@ -830,7 +965,7 @@ "type": "github" } }, - "nixpkgs_12": { + "nixpkgs_14": { "locked": { "lastModified": 1768810879, "narHash": "sha256-6RrqzfHu3e4vvRaDRY0muyl/BkFzCEPfwXmYY8iRjSw=", @@ -845,7 +980,39 @@ "type": "github" } }, - "nixpkgs_13": { + "nixpkgs_15": { + "locked": { + "lastModified": 1771923393, + "narHash": "sha256-Fy0+UXELv9hOE8WjYhJt8fMDLYTU2Dqn3cX4BwoGBos=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ea7f1f06811ce7fcc81d6c6fd4213150c23edcf2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_16": { + "locked": { + "lastModified": 1771848320, + "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2fc6539b481e1d2569f25f8799236694180c0993", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_17": { "locked": { "lastModified": 1771008912, "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", @@ -856,12 +1023,12 @@ }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", "repo": "nixpkgs", + "rev": "a82ccc39b39b621151d6732718e3e250109076fa", "type": "github" } }, - "nixpkgs_14": { + "nixpkgs_18": { "locked": { "lastModified": 1769018530, "narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=", @@ -877,7 +1044,7 @@ "type": "github" } }, - "nixpkgs_15": { + "nixpkgs_19": { "locked": { "lastModified": 1761656231, "narHash": "sha256-EiED5k6gXTWoAIS8yQqi5mAX6ojnzpHwAQTS3ykeYMg=", @@ -910,6 +1077,22 @@ } }, "nixpkgs_3": { + "locked": { + "lastModified": 1770562336, + "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "d6c71932130818840fc8fe9509cf50be8c64634f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1759381078, "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", @@ -925,7 +1108,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1766070988, "narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=", @@ -941,13 +1124,13 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { - "lastModified": 1748217807, - "narHash": "sha256-P3u2PXxMlo49PutQLnk2PhI/imC69hFl1yY4aT5Nax8=", + "lastModified": 1746397377, + "narHash": "sha256-5oLdRa3vWSRbuqPIFFmQBGGUqaYZBxX+GGtN9f/n4lU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3108eaa516ae22c2360928589731a4f1581526ef", + "rev": "ed30f8aba41605e3ab46421e3dcb4510ec560ff8", "type": "github" }, "original": { @@ -957,22 +1140,6 @@ "type": "github" } }, - "nixpkgs_6": { - "locked": { - "lastModified": 1745930157, - "narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_7": { "locked": { "lastModified": 1748217807, @@ -991,11 +1158,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1771008912, - "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", + "lastModified": 1745930157, + "narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a82ccc39b39b621151d6732718e3e250109076fa", + "rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae", "type": "github" }, "original": { @@ -1007,15 +1174,15 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1752077645, - "narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=", - "owner": "NixOS", + "lastModified": 1748217807, + "narHash": "sha256-P3u2PXxMlo49PutQLnk2PhI/imC69hFl1yY4aT5Nax8=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "be9e214982e20b8310878ac2baa063a961c1bdf6", + "rev": "3108eaa516ae22c2360928589731a4f1581526ef", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" @@ -1048,16 +1215,21 @@ "arbys": "arbys", "bunker": "bunker", "culr": "culr", + "helium": "helium", "helix": "helix", "hjem": "hjem", "hjem-rum": "hjem-rum", + "hudcore": "hudcore", + "madness": "madness", "meat": "meat", "niri": "niri", "niri-s76": "niri-s76", "niri-tag": "niri-tag", "nix-index-database": "nix-index-database", "nix-rice": "nix-rice", - "nixpkgs": "nixpkgs_13", + "nix-scope-plugin": "nix-scope-plugin", + "nix-shorturl-plugin": "nix-shorturl-plugin", + "nixpkgs": "nixpkgs_17", "nixpkgs-stable": "nixpkgs-stable_2", "qstn": "qstn", "run0-shim": "run0-shim", @@ -1136,11 +1308,11 @@ ] }, "locked": { - "lastModified": 1763347184, - "narHash": "sha256-6QH8hpCYJxifvyHEYg+Da0BotUn03BwLIvYo3JAxuqQ=", + "lastModified": 1771125043, + "narHash": "sha256-ldf/s49n6rOAxl7pYLJGGS1N/assoHkCOWdEdLyNZkc=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "08895cce80433978d5bfd668efa41c5e24578cbd", + "rev": "4912f951a26dc8142b176be2c2ad834319dc06e8", "type": "github" }, "original": { @@ -1203,11 +1375,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1763430012, - "narHash": "sha256-06G7pXUdpMnUqR0JWWvV7sA8oNGOZU1cSLqQS1GMf7Y=", + "lastModified": 1771208268, + "narHash": "sha256-6zMgOPzBbTSm8jzPqmGcotjvkN3HzxcnMM8pW64JpZQ=", "owner": "feel-co", "repo": "smfh", - "rev": "eddda76e3dd4c6deaea5f819f174fc16dbe70f90", + "rev": "dd0a33fc9d1fe7c29da86225af4b4a47b1714839", "type": "github" }, "original": { @@ -1243,14 +1415,14 @@ "stasis": { "inputs": { "flake-parts": "flake-parts_4", - "nixpkgs": "nixpkgs_14" + "nixpkgs": "nixpkgs_18" }, "locked": { - "lastModified": 1770955222, - "narHash": "sha256-XK7e2x1Q5xxyofswmrqc7pz7WA0EmrT5aWnaHaFy5hg=", + "lastModified": 1771888610, + "narHash": "sha256-voL/6XnosTSEUMovarrBhRbYXXY+B7nVW29i8rO40L0=", "owner": "saltnpepper97", "repo": "stasis", - "rev": "02086d0f96871e75444a0f202703380a46aa5b61", + "rev": "3582124d8d216bff8206bb922eda28e8438e72f3", "type": "github" }, "original": { @@ -1430,7 +1602,7 @@ "unf": { "inputs": { "ndg": "ndg_2", - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_9" }, "locked": { "lastModified": 1748163740, @@ -1466,11 +1638,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1770583271, - "narHash": "sha256-Q75S8cEqJoZ92s1y4zArvk2U1ayAy2E4SaF7gbNXkYQ=", + "lastModified": 1771787042, + "narHash": "sha256-7bM6Y4KldhKnfopSALF8XALxcX7ehkomXH9sPl4MXp0=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "86f5bd5d867ad6e120935dfe825f6b903ebbeddd", + "rev": "33c344fee50504089a447a8fef5878cf4f6215fc", "type": "github" }, "original": { @@ -1481,7 +1653,7 @@ }, "yoke": { "inputs": { - "nixpkgs": "nixpkgs_15", + "nixpkgs": "nixpkgs_19", "systems": "systems_7" }, "locked": { diff --git a/flake.nix b/flake.nix index 90d9cf9..7ddd400 100644 --- a/flake.nix +++ b/flake.nix @@ -4,7 +4,7 @@ outputs = _: { }; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:NixOS/nixpkgs?rev=a82ccc39b39b621151d6732718e3e250109076fa"; nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11"; helix.url = "github:helix-editor/helix"; @@ -29,7 +29,7 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - # hudcore.url = "git+https://git.lobotomise.me/atagen/hudcore-plymouth.git"; + hudcore.url = "git+https://git.lobotomise.me/atagen/hudcore-plymouth.git"; niri-tag.url = "git+https://git.lobotomise.me/atagen/niri-tag"; diff --git a/graphical/binds.nix b/graphical/binds.nix index 6d41925..7db2028 100644 --- a/graphical/binds.nix +++ b/graphical/binds.nix @@ -54,21 +54,11 @@ scope "user.desktops.niri.binds" "toggle-tag" "99" ]; - "Mod+Shift+Minus".spawn = [ - "tagctl" - "toggle" - "99" - ]; "Mod+Equal".spawn = [ "tagctl" "toggle-tag" "101" ]; - "Mod+Shift+Equal".spawn = [ - "tagctl" - "toggle" - "101" - ]; "Mod+D".spawn = [ "qs" "ipc" @@ -86,7 +76,6 @@ scope "user.desktops.niri.binds" "logout" "toggle" ]; - # "Mod+Equal".spawn = (getAppName "passwordManager"); # niri-tag needs proper scratchpads smh "Mod+Shift+Q".action = "close-window"; "Mod+Shift+S".action = "screenshot"; "Mod+R".action = "switch-preset-column-width"; diff --git a/graphical/browser.nix b/graphical/browser.nix index 47ecff6..0f55515 100644 --- a/graphical/browser.nix +++ b/graphical/browser.nix @@ -2,93 +2,97 @@ lib, pkgs, scope, + inputs, + getFlakePkg, ... }: -let - officialAddon = name: { - install_url = lib.strings.concatStrings [ - "https://addons.mozilla.org/firefox/downloads/latest/" - name - "/latest.xpi" - ]; - installation_mode = "force_installed"; - }; - lock-false = { - Value = false; - Status = "locked"; - }; - lock-true = { - Value = true; - Status = "locked"; - }; -in -scope "programs.firefox" { - enable = true; +scope "apps.browser" <| getFlakePkg inputs.helium +# let +# officialAddon = name: { +# install_url = lib.strings.concatStrings [ +# "https://addons.mozilla.org/firefox/downloads/latest/" +# name +# "/latest.xpi" +# ]; +# installation_mode = "force_installed"; +# }; +# lock-false = { +# Value = false; +# Status = "locked"; +# }; +# lock-true = { +# Value = true; +# Status = "locked"; +# }; +# in +# scope "programs.firefox" { +# enable = true; - policies = { - DisableTelemetry = true; - DisableFirefoxStudies = true; - EnableTrackingProtection = { - Value = true; - Locked = true; - Cryptomining = true; - Fingerprinting = true; - }; - DisablePocket = true; - DisableFirefoxAccounts = true; - DisableAccounts = true; - DisableFirefoxScreenshots = true; - DisableAppUpdate = true; - DisablePrivateBrowsing = true; - DontCheckDefaultBrowser = true; +# policies = { +# DisableTelemetry = true; +# DisableFirefoxStudies = true; +# EnableTrackingProtection = { +# Value = true; +# Locked = true; +# Cryptomining = true; +# Fingerprinting = true; +# }; +# DisablePocket = true; +# DisableFirefoxAccounts = true; +# DisableAccounts = true; +# DisableFirefoxScreenshots = true; +# DisableAppUpdate = true; +# DisablePrivateBrowsing = true; +# DontCheckDefaultBrowser = true; - OverrideFirstRunPage = ""; - OverridePostUpdatePage = ""; - DisplayBookmarksToolbar = "newtab"; # alternatives: "always" or "newtab" - DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on" - SearchBar = "unified"; # alternative: "separate" +# OverrideFirstRunPage = ""; +# OverridePostUpdatePage = ""; +# DisplayBookmarksToolbar = "newtab"; # alternatives: "always" or "newtab" +# DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on" +# SearchBar = "unified"; # alternative: "separate" - ExtensionSettings = { - "*".installation_mode = "blocked"; # blocks all addons except the ones specified below - "uBlock0@raymondhill.net" = officialAddon "ublock-origin"; - "addon@darkreader.org" = officialAddon "darkreader"; - "vimium-c@gdh1995.cn" = officialAddon "vimium-c"; - "{b86e4813-687a-43e6-ab65-0bde4ab75758}" = officialAddon "localcdn-fork-of-decentraleyes"; - "jid1-5Fs7iTLscUaZBgwr@jetpack" = officialAddon "happy-bonobo-disable-webrtc"; - "{446900e4-71c2-419f-a6a7-df9c091e268b}" = officialAddon "bitwarden-password-mananger"; - }; +# ExtensionSettings = { +# "*".installation_mode = "blocked"; # blocks all addons except the ones specified below +# "uBlock0@raymondhill.net" = officialAddon "ublock-origin"; +# "addon@darkreader.org" = officialAddon "darkreader"; +# "vimium-c@gdh1995.cn" = officialAddon "vimium-c"; +# "{b86e4813-687a-43e6-ab65-0bde4ab75758}" = officialAddon "localcdn-fork-of-decentraleyes"; +# "jid1-5Fs7iTLscUaZBgwr@jetpack" = officialAddon "happy-bonobo-disable-webrtc"; +# "{446900e4-71c2-419f-a6a7-df9c091e268b}" = officialAddon "bitwarden-password-mananger"; +# }; - Preferences = { - "extensions.pocket.enabled" = lock-false; - "extensions.screenshots.disabled" = lock-true; - "browser.topsites.contile.enabled" = lock-false; - "browser.formfill.enable" = lock-false; - "browser.search.suggest.enabled" = lock-false; - "browser.search.suggest.enabled.private" = lock-false; - "browser.urlbar.suggest.searches" = lock-false; - "browser.urlbar.showSearchSuggestionsFirst" = lock-false; - "browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false; - "browser.newtabpage.activity-stream.feeds.snippets" = lock-false; - "browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false; - "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false; - "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false; - "browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false; - "browser.newtabpage.activity-stream.showSponsored" = lock-false; - "browser.newtabpage.activity-stream.system.showSponsored" = lock-false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; - }; - }; +# Preferences = { +# "extensions.pocket.enabled" = lock-false; +# "extensions.screenshots.disabled" = lock-true; +# "browser.topsites.contile.enabled" = lock-false; +# "browser.formfill.enable" = lock-false; +# "browser.search.suggest.enabled" = lock-false; +# "browser.search.suggest.enabled.private" = lock-false; +# "browser.urlbar.suggest.searches" = lock-false; +# "browser.urlbar.showSearchSuggestionsFirst" = lock-false; +# "browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false; +# "browser.newtabpage.activity-stream.feeds.snippets" = lock-false; +# "browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false; +# "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false; +# "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false; +# "browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false; +# "browser.newtabpage.activity-stream.showSponsored" = lock-false; +# "browser.newtabpage.activity-stream.system.showSponsored" = lock-false; +# "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; +# }; +# }; - # profiles.default = { - # id = 0; - # name = "Default"; - # settings = { - # "browser.startup.homepage" = "about:blank"; - # "browser.shell.didSkipDefaultBrowserCheckOnFirstRun" = true; - # "browser.policies.applied" = true; - # "widget.use-xdg-desktop-portal.file-picker" = 1; - # "widget.use-xdg-desktop-portal.mime-handler" = 1; - # }; - # }; -} -// (scope "apps.browser" <| pkgs.firefox) +# # profiles.default = { +# # id = 0; +# # name = "Default"; +# # settings = { +# # "browser.startup.homepage" = "about:blank"; +# # "browser.shell.didSkipDefaultBrowserCheckOnFirstRun" = true; +# # "browser.policies.applied" = true; +# # "widget.use-xdg-desktop-portal.file-picker" = 1; +# # "widget.use-xdg-desktop-portal.mime-handler" = 1; +# # }; +# # }; +# } +# // (scope "apps.browser" <| pkgs.firefox) +# TODO switch to helium diff --git a/graphical/chat.nix b/graphical/chat.nix index bac991c..a49c41e 100644 --- a/graphical/chat.nix +++ b/graphical/chat.nix @@ -1,6 +1,7 @@ -{ config, pkgs, ... }: +{ ... }: { - user.packages = [ pkgs.element-desktop ]; + user.packages = [ + ]; # hm.programs.firefox.webapps = { # "Microsoft-Teams" = { # url = "https://teams.microsoft.com"; diff --git a/graphical/desktop/niri.kdl b/graphical/desktop/niri.kdl index 1a3f066..ab1f9f6 100644 --- a/graphical/desktop/niri.kdl +++ b/graphical/desktop/niri.kdl @@ -53,3 +53,4 @@ window-rule { clip-to-geometry true } xwayland-satellite { path "%SATELLITE%"; } +spawn-at-startup "systemctl" "--user" "start" "startup-sound.service" diff --git a/graphical/desktop/quickshell/shell.qml b/graphical/desktop/quickshell/shell.qml index f70eda6..3410a0f 100644 --- a/graphical/desktop/quickshell/shell.qml +++ b/graphical/desktop/quickshell/shell.qml @@ -4,13 +4,12 @@ import "launcher" as Launcher import "logout" as Logout // singletons import "title" -import "tags" +import "tags" import "rice" import Quickshell import Quickshell.Wayland import QtQuick -import QtQuick.Controls ShellRoot { @@ -18,9 +17,10 @@ ShellRoot { Variants { model: Quickshell.screens Scope { + id: screenScope property var modelData PanelWindow { - screen: modelData + screen: screenScope.modelData id: bg anchors { top: true @@ -163,7 +163,6 @@ ShellRoot { implicitHeight: 22 implicitWidth: (Tags.keys.length !== undefined) ? Tags.keys.length * 13 + 24 : 37; - // implicitWidth:.width + 24 color: "transparent" Rectangle { diff --git a/graphical/desktop/quickshell/tags/Tags.qml b/graphical/desktop/quickshell/tags/Tags.qml index e90da61..73aecbc 100644 --- a/graphical/desktop/quickshell/tags/Tags.qml +++ b/graphical/desktop/quickshell/tags/Tags.qml @@ -8,7 +8,8 @@ Singleton { id: data property var tags: ({}) property var keys: [] - Timer { + +Timer { id: reconnectTimer running: false repeat: true @@ -43,37 +44,41 @@ Singleton { return d; }; + let t = {}; + for (const k of Object.keys(data.tags)) { + t[k] = Object.assign({}, data.tags[k]); + } + if (event.TagEmpty) { - data.tags = ensure(data.tags, event.TagEmpty); - data.tags[event.TagEmpty].occupied = false; + t = ensure(t, event.TagEmpty); + t[event.TagEmpty].occupied = false; } else if (event.TagOccupied) { - data.tags = ensure(data.tags, event.TagOccupied); - data.tags[event.TagOccupied].occupied = true; + t = ensure(t, event.TagOccupied); + t[event.TagOccupied].occupied = true; } else if (event.TagUrgent) { - data.tags = ensure(data.tags, event.TagUrgent); - data.tags[event.TagUrgent].urgent = true; + t = ensure(t, event.TagUrgent); + t[event.TagUrgent].urgent = true; } else if (event.TagEnabled) { - data.tags = ensure(data.tags, event.TagEnabled); - data.tags[event.TagEnabled].enabled = true; + t = ensure(t, event.TagEnabled); + t[event.TagEnabled].enabled = true; } else if (event.TagDisabled) { - data.tags = ensure(data.tags, event.TagDisabled); - data.tags[event.TagDisabled].enabled = false; + t = ensure(t, event.TagDisabled); + t[event.TagDisabled].enabled = false; } else if (event.TagExclusive) { - data.tags = ensure(data.tags, event.TagExclusive); - for (const [k] of Object.keys(data.tags)) { - data.tags[k].enabled = false; + t = ensure(t, event.TagExclusive); + for (const k of Object.keys(t)) { + t[k].enabled = false; } - data.tags[event.TagExclusive].enabled = true; + t[event.TagExclusive].enabled = true; } else if (event.TagFullState) { - data["tags"] = event.TagFullState; - for (const [k, v] of Object.entries(data.tags)) { - data.tags[k].id = k; + t = event.TagFullState; + for (const k of Object.keys(t)) { + t[k].id = k; } } - data.keys = Object.keys(data.tags); - data.tagsChanged(); - data.keysChanged(); + data.tags = t; + data.keys = Object.keys(t); } } } diff --git a/graphical/desktop/shell.nix b/graphical/desktop/shell.nix index 87c6696..5f35c15 100644 --- a/graphical/desktop/shell.nix +++ b/graphical/desktop/shell.nix @@ -4,6 +4,7 @@ inputs, mainUser, getPkgs, + config, ... }: let @@ -20,8 +21,10 @@ in services.stasis.enable = true; quick.services = { - swaync = "${getExe pkgs.swaynotificationcenter}"; - quickshell = "${getExe pkgs.quickshell}"; + noti = "${getExe pkgs.swaynotificationcenter}"; + shell = "${getExe pkgs.quickshell}"; + pwManager = "${getExe config.apps.passwordManager}"; + music = "${getExe config.apps.streamPlayer}"; }; environment.files."/home/${mainUser}/.config/quickshell" = { diff --git a/graphical/desktop/wm.nix b/graphical/desktop/wm.nix index bdf85af..89321e0 100644 --- a/graphical/desktop/wm.nix +++ b/graphical/desktop/wm.nix @@ -12,6 +12,7 @@ let inherit (config) rice; in { + imports = [ inputs.niri.nixosModules.niri inputs.niri-tag.nixosModules.niri-tag @@ -41,17 +42,19 @@ in (toString borders.gaps) (toString borders.thickness) palette.shortHex.bright.yellow - palette.shortHex.normal.yellow + palette.shortHex.normal.white (lib.getExe xwayland-satellite) ] template; in baseConfig; }; + user.packages = [ niri xwayland-satellite ]; + services.greetd = { enable = true; restart = false; @@ -67,11 +70,20 @@ in initial_session = session; }; }; + programs.niri = { enable = true; package = niri; }; - services.niri-tag.enable = true; + + services.niri-tag = { + enable = true; + # scratchpads = { + # "${config.apps.streamPlayer}" = 99; + # "${config.apps.passwordManager}" = 101; + # }; + }; + services.niri-s76-bridge.enable = true; } diff --git a/graphical/kernel.nix b/graphical/kernel.nix index 0f1d863..8e631b6 100644 --- a/graphical/kernel.nix +++ b/graphical/kernel.nix @@ -9,11 +9,10 @@ bunker.kernel = { enable = true; - hardened = false; cpuArch = "MZEN3"; version = "6.18"; + hardened = false; lto = "none"; - trimmed = true; }; services.scx = { @@ -21,17 +20,4 @@ scheduler = "scx_bpfland"; }; - # nixpkgs.overlays = [ - # (final: prev: { - # nvidia-open = prev.nvidia-open.override { - # patches = [ - # (pkgs.fetchpatch { - # url = "https://github.com/CachyOS/CachyOS-PKGBUILDS/raw/refs/heads/master/nvidia/nvidia-utils/kernel-6.19.patch"; - # hash = ""; - # }) - # ]; - # }; - # }) - # ]; - } diff --git a/graphical/llm.nix b/graphical/llm.nix new file mode 100644 index 0000000..be95370 --- /dev/null +++ b/graphical/llm.nix @@ -0,0 +1,141 @@ +{ + pkgs, + lib, + inputs, + scope, + ... +}: +let + claude-code = + let + version = "2.1.52"; + runtimeDeps = lib.makeBinPath ( + [ + pkgs.procps + pkgs.ripgrep + ] + ++ lib.optionals pkgs.stdenv.hostPlatform.isLinux [ + pkgs.bubblewrap + pkgs.socat + ] + ); + + patchScript = pkgs.writeScript "patch-claude-src" '' + #!${pkgs.python3}/bin/python3 + import re, sys + W = rb"[\w$]+" + data = open(sys.argv[1], "rb").read() + + pat = (rb"let (" + W + rb")=(" + W + rb")\((" + W + rb'),"CLAUDE\.md"\);' + rb"(" + W + rb")\.push\(\.\.\.(" + W + rb')\(\1,"Project",([^)]+)\)\)') + def agents(m): + v, pj, d, a, lf, rest = [m.group(i) for i in range(1, 7)] + return (b'for(let _f of["CLAUDE.md","AGENTS.md"]){let ' + v + b"=" + pj + + b"(" + d + b",_f);" + a + b".push(..." + lf + b"(" + v + + b',"Project",' + rest + b"))}") + data, n = re.subn(pat, agents, data) + sys.stderr.write(f"AGENTS.md: {n} site(s)\n") + + data = data.replace( + b'case"macos":return"/Library/Application Support/ClaudeCode"', + b'case"macos":return"/etc/claude-code"', + ) + + # Enable hard-disabled slash commands: /btw, /files, /tag + for anchor, label in [ + (b'name:"btw",description:"Ask a quick side question', b"/btw"), + (b'name:"files",description:"List all files currently in context"', b"/files"), + (b'name:"tag",userFacingName', b"/tag"), + ]: + pos = data.find(anchor) + if pos < 0: + sys.stderr.write(f"{label.decode()}: NOT FOUND\n"); continue + window = data[pos:pos+500] + patched = window.replace(b"isEnabled:()=>!1", b"isEnabled:()=>!0", 1) + data = data[:pos] + patched + data[pos+500:] + sys.stderr.write(f"{label.decode()}: enabled\n") + + # Bypass e2() for thinkback (e2 returns false when DISABLE_TELEMETRY is set) + data = data.replace( + b'e2("tengu_thinkback")', + b'!0||"tengu_thinkback"', + ) + sys.stderr.write("thinkback: force-enabled\n") + + # Enable custom keybindings (qA default is false, flip to true) + data = data.replace( + b'qA("tengu_keybinding_customization_release",!1)', + b'qA("tengu_keybinding_customization_release",!0)', + ) + sys.stderr.write("keybindings: force-enabled\n") + + # Force-enable remote control / bridge feature gate + data = data.replace( + b'function ek(){return qA("tengu_ccr_bridge",!1)}', + b'function ek(){return!0} ', + ) + sys.stderr.write("remote-control: force-enabled\n") + + # Fix Deno-compile bridge spawn: Deno compiled binaries intercept --flags + # as V8 flags. Rewrite spawn to go through env(1) which breaks the Deno + # runtime's flag parsing. + data = data.replace( + b'let O=iHz(A.execPath,$,', + b'let O=iHz("env",["--",A.execPath,...$],', + ) + sys.stderr.write("bridge-spawn: patched via env(1)\n") + + # Kill claude-developer-platform bundled skill (~400 tokens/turn dead weight) + data = data.replace( + b'name:"claude-developer-platform",description:`', + b'name:"claude-developer-platform",isEnabled:()=>!1,description:`', + ) + sys.stderr.write("claude-developer-platform: killed\n") + + pat = (rb"context_window:\{total_input_tokens:(" + W + rb"\(\))," + rb"total_output_tokens:(" + W + rb"\(\))," + rb"context_window_size:(" + W + rb")," + rb"current_usage:(" + W + rb")," + rb"used_percentage:(" + W + rb")\.used," + rb"remaining_percentage:\5\.remaining\}") + rl = re.search(rb"(" + W + rb')=\{status:"allowed",unifiedRateLimitFallbackAvailable:!1,isUsingOverage:!1\}', data) + m = re.search(pat, data) + if m and rl: + ci, co, sz, u, p, r = *[m.group(i) for i in range(1, 6)], rl.group(1) + data = data.replace(m[0], + b"context_window:{...(" + u + b"||{})," + b"context_window_size:" + sz + b",current_usage:" + u + b"," + b"used_percentage:" + p + b".used,remaining_percentage:" + p + b".remaining," + b"rate_limit:" + r + b",s_in:" + ci + b",s_out:" + co + b"}") + + open(sys.argv[1], "wb").write(data) + ''; + in + pkgs.writeShellScriptBin "claude" '' + set -euo pipefail + export DISABLE_AUTOUPDATER=1 + export DISABLE_INSTALLATION_CHECKS=1 + export USE_BUILTIN_RIPGREP=0 + export PATH="${runtimeDeps}:${pkgs.deno}/bin:$PATH" + + CACHE="''${XDG_CACHE_HOME:-$HOME/.cache}/claude-code" + BIN="$CACHE/claude-${version}" + + if [ ! -x "$BIN" ]; then + mkdir -p "$CACHE" + DENO_DIR="$CACHE/.deno" + export DENO_DIR + deno cache "npm:@anthropic-ai/claude-code@${version}" + ${patchScript} "$DENO_DIR/npm/registry.npmjs.org/@anthropic-ai/claude-code/${version}/cli.js" + deno compile --allow-all --output "$BIN" "npm:@anthropic-ai/claude-code@${version}" 2>&1 + rm -rf "$DENO_DIR" + fi + + exec "$BIN" "$@" + ''; +in +(scope "apps.slopcode" <| claude-code) +// { + # required for loaderslop + programs.nix-ld.enable = true; +} diff --git a/graphical/password-manager.nix b/graphical/password-manager.nix index 80c2763..5b3d10e 100644 --- a/graphical/password-manager.nix +++ b/graphical/password-manager.nix @@ -4,15 +4,14 @@ generator = lib.generators.toJSON { }; value = { email = "boss@atagen.co"; - pinentry = lib.getExe pkgs.pinentry-qt; # TODO this is fugly + pinentry = lib.getExe pkgs.pinentry-gtk2; # TODO this is fugly base_url = "https://vault.lobotomise.me"; }; }; - # bitwarden ? element ? - nixpkgs.config.permittedInsecurePackages = [ - "electron-36.9.5" - ]; + # nixpkgs.config.permittedInsecurePackages = [ + # "electron-36.9.5" + # ]; apps = with pkgs; { passwordManager = bitwarden-desktop; passwordCli = rbw; diff --git a/graphical/rice.nix b/graphical/rice.nix index 60a9108..6ed8bce 100644 --- a/graphical/rice.nix +++ b/graphical/rice.nix @@ -59,11 +59,10 @@ }; plymouth = { - theme = "colorful_loop"; + theme = "starship"; font = "${config.rice.fonts.sans.package}/share/fonts/truetype/MSW98UI-Regular.ttf"; themePackages = [ - pkgs.adi1090x-plymouth-themes - # (getFlakePkg inputs.hudcore) + (getFlakePkg inputs.hudcore) ]; }; }; diff --git a/graphical/startup.nix b/graphical/startup.nix index ea0c310..f53daf3 100644 --- a/graphical/startup.nix +++ b/graphical/startup.nix @@ -1,5 +1,26 @@ -{ pkgs, lib, ... }: { - quick.services.startup-sound = "${lib.getExe' pkgs.alsa-utils "aplay"} " + ../assets/startup.wav; - # FIXME broken , maybe use niri exec-once .. + pkgs, + lib, + scope, + ... +}: +scope "user.systemd.services.startup-sound" +<| { + unitConfig = { + Description = "startup sound"; + Requires = [ + "graphical-session.target" + ]; + After = [ + "graphical-session.target" + "niri.target" + "sound.target" + ]; + PartOf = [ "graphical-session.target" ]; + }; + serviceConfig = { + ExecStart = "${lib.getExe' pkgs.alsa-utils "aplay"} " + ../assets/startup.wav; + Type = "oneshot"; + }; + wantedBy = [ "graphical-session.target" ]; } diff --git a/hosts/quiver/hw.nix b/hosts/quiver/hw.nix index c582078..e8cbbdb 100644 --- a/hosts/quiver/hw.nix +++ b/hosts/quiver/hw.nix @@ -1,7 +1,5 @@ { config, - lib, - pkgs, ... }: { @@ -12,8 +10,7 @@ hardware.graphics.enable = true; services.xserver.videoDrivers = [ "nvidia" ]; - # temporarily disabled bc firefox - nixpkgs.config.cudaSupport = false; + nixpkgs.config.cudaSupport = true; hardware.nvidia = { package = config.boot.kernelPackages.nvidiaPackages.beta; diff --git a/hosts/quiver/llm.nix b/hosts/quiver/llm.nix deleted file mode 100644 index 2f101f5..0000000 --- a/hosts/quiver/llm.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - # inputs, - config, - scope, - ... -}: -scope "services" { - ollama = { - enable = false; - user = "ollama"; - }; - - open-webui = { - # package = inputs.nixpkgs-stable.legacyPackages.x86_64-linux.open-webui; - enable = false; - port = 8088; - environment = { - DO_NOT_TRACK = "True"; - SCARF_NO_ANALYTICS = "True"; - ANONYMIZED_TELEMETRY = "False"; - WEBUI_AUTH = "False"; - DATABASE_URL = "sqlite:///${config.services.open-webui.stateDir}/newdb.db"; - }; - }; -}