From 2d3e4844b7ad82804a636cf9b0454e0eaab4102a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 19 Sep 2024 14:34:37 +0200 Subject: [PATCH] Start refactoring - remove emacs - remove inputs - trying to speed up evaluation - update inputs --- ci/default.nix | 24 - flake.lock | 1044 ++++------------------ flake.nix | 37 +- hmModules/cura/default.nix | 27 +- hmModules/email/default.nix | 178 +++- hmModules/firefox/default.nix | 5 - hmModules/foot/default.nix | 95 +- hmModules/helix/default.nix | 26 +- hmModules/hyprland/default.nix | 216 +++-- hmModules/nix-index/default.nix | 2 +- hmModules/shell/default.nix | 24 +- hmModules/spotify/default.nix | 12 +- hmModules/sway/default.nix | 2 +- hmModules/swayidle/default.nix | 12 - hmModules/tremotesf/default.nix | 21 + hmModules/vscode-server/default.nix | 6 + hmModules/waybar/default.nix | 1 - hmModules/zmkbatx/default.nix | 3 +- hosts/default.nix | 8 +- hosts/deltaflyer/default.nix | 2 - hosts/module.nix | 15 +- hosts/mothership/default.nix | 7 - hosts/picard/default.nix | 20 +- hosts/sisko/default.nix | 11 +- modules/atuin/default.nix | 14 + modules/auto-upgrade/default.nix | 8 +- modules/forgejo-runners/default.nix | 3 +- modules/greetd/default.nix | 9 + modules/home-assistant/default.nix | 45 +- modules/immich/default.nix | 234 +---- modules/nix/default.nix | 21 +- modules/pipewire/default.nix | 6 +- modules/prometheus-exporters/default.nix | 8 +- modules/prometheus/default.nix | 8 +- modules/rock5b-samba/default.nix | 22 +- modules/sunshine/default.nix | 24 +- modules/transmission/default.nix | 4 + packages/default.nix | 3 +- packages/spotify-adblocked/default.nix | 53 ++ 39 files changed, 808 insertions(+), 1452 deletions(-) delete mode 100644 ci/default.nix create mode 100644 hmModules/tremotesf/default.nix create mode 100644 hmModules/vscode-server/default.nix create mode 100644 modules/atuin/default.nix create mode 100644 packages/spotify-adblocked/default.nix diff --git a/ci/default.nix b/ci/default.nix deleted file mode 100644 index 48a1ad1..0000000 --- a/ci/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{inputs, ...}: { - imports = [ - inputs.hercules-ci-effects.flakeModule - ]; - herculesCI.ciSystems = [ - "x86_64-linux" - "aarch64-linux" - ]; - hercules-ci.flake-update = { - enable = true; - updateBranch = "updated-flake-lock"; - createPullRequest = true; - autoMergeMethod = "rebase"; - baseMerge = { - enable = true; - method = "rebase"; - }; - when = { - minute = 45; - hour = 13; - dayOfWeek = ["Mon" "Tue" "Wed" "Thu" "Fri" "Sat" "Sun"]; - }; - }; -} diff --git a/flake.lock b/flake.lock index 7b0925b..4bbbc41 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1720546205, - "narHash": "sha256-boCXsjYVxDviyzoEyAk624600f3ZBo/DKtUdvMTpbGY=", + "lastModified": 1723293904, + "narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=", "owner": "ryantm", "repo": "agenix", - "rev": "de96bd907d5fbc3b14fc33ad37d1b9a3cb15edc6", + "rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41", "type": "github" }, "original": { @@ -21,60 +21,6 @@ "type": "github" } }, - "arion": { - "inputs": { - "flake-parts": "flake-parts", - "haskell-flake": "haskell-flake", - "hercules-ci-effects": "hercules-ci-effects", - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1720147808, - "narHash": "sha256-hlWEQGUbIwYb+vnd8egzlW/P++yKu3HjV/rOdOPVank=", - "owner": "hercules-ci", - "repo": "arion", - "rev": "236f9dd82d6ef6a2d9987c7a7df3e75f1bc8b318", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "arion", - "type": "github" - } - }, - "ccrEmacs": { - "inputs": { - "emacs-overlay": "emacs-overlay", - "extra-package-agenix-el": "extra-package-agenix-el", - "extra-package-combobulate": "extra-package-combobulate", - "extra-package-copilot": "extra-package-copilot", - "extra-package-gptel": "extra-package-gptel", - "extra-package-indent-bars": "extra-package-indent-bars", - "extra-package-meow-tree-sitter": "extra-package-meow-tree-sitter", - "extra-package-nix-ts-mode": "extra-package-nix-ts-mode", - "extra-package-notmuch-notify": "extra-package-notmuch-notify", - "flake-parts": "flake-parts_3", - "hercules-ci-effects": "hercules-ci-effects_2", - "nixpkgs": [ - "ccrEmacs", - "emacs-overlay", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1719319453, - "narHash": "sha256-a7kxJj8Mshck62/G9WizDfvAAJDT1XP6MIFyFPFIa8I=", - "ref": "refs/heads/master", - "rev": "a65c1478cf8406f1e524944b0f646ace1979910b", - "revCount": 188, - "type": "git", - "url": "https://git.aciceri.dev/aciceri/emacs.git" - }, - "original": { - "type": "git", - "url": "https://git.aciceri.dev/aciceri/emacs.git" - } - }, "darwin": { "inputs": { "nixpkgs": [ @@ -100,15 +46,15 @@ "disko": { "inputs": { "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ] }, "locked": { - "lastModified": 1720661479, - "narHash": "sha256-nsGgA14vVn0GGiqEfomtVgviRJCuSR3UEopfP8ixW1I=", + "lastModified": 1725377834, + "narHash": "sha256-tqoAO8oT6zEUDXte98cvA1saU9+1dLJQe3pMKLXv8ps=", "owner": "nix-community", "repo": "disko", - "rev": "786965e1b1ed3fd2018d78399984f461e2a44689", + "rev": "e55f9a8678adc02024a4877c2a403e3f6daf24fe", "type": "github" }, "original": { @@ -119,16 +65,16 @@ }, "dream2nix": { "inputs": { - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_2", "purescript-overlay": "purescript-overlay", "pyproject-nix": "pyproject-nix" }, "locked": { - "lastModified": 1720605900, - "narHash": "sha256-/BTAC3gj1Ot7o/PINsHS2EGEtGUadI12WZlhowKn18c=", + "lastModified": 1722526955, + "narHash": "sha256-fFS8aDnfK9Qfm2FLnQ8pqWk8FzvFEv5LvTuZTZLREnc=", "owner": "nix-community", "repo": "dream2nix", - "rev": "0c6b5c8ab796f6dfb2aef1133f5b7bb25ce57cb9", + "rev": "3fd4c14d3683baac8d1f94286ae14fe160888b51", "type": "github" }, "original": { @@ -137,155 +83,6 @@ "type": "github" } }, - "emacs-overlay": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_3", - "nixpkgs-stable": "nixpkgs-stable" - }, - "locked": { - "lastModified": 1719303695, - "narHash": "sha256-SqJTGKtJEzkQdHEUWeMHwQ5vyAg4wE1kRbjTRjzfAUI=", - "owner": "nix-community", - "repo": "emacs-overlay", - "rev": "fd904f28fb1d3d3a3d87db312fac97cb4a146db4", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "emacs-overlay", - "type": "github" - } - }, - "extra-package-agenix-el": { - "flake": false, - "locked": { - "lastModified": 1717247083, - "narHash": "sha256-PexGtluh0V8WVTaDJJurt2xAYfTEJPN5L+bUZomfK14=", - "owner": "t4ccer", - "repo": "agenix.el", - "rev": "b9c7ad33b534d80af207949cc06c0bcd1e60fd63", - "type": "github" - }, - "original": { - "owner": "t4ccer", - "repo": "agenix.el", - "type": "github" - } - }, - "extra-package-combobulate": { - "flake": false, - "locked": { - "lastModified": 1710175386, - "narHash": "sha256-rww0/6304xZWTFRo1BVcfSDdXOXtlgmfZOxAoOIjYsk=", - "owner": "mickeynp", - "repo": "combobulate", - "rev": "ee82c568ad639605518f62f82fae4bcc0dfdbb81", - "type": "github" - }, - "original": { - "owner": "mickeynp", - "repo": "combobulate", - "type": "github" - } - }, - "extra-package-copilot": { - "flake": false, - "locked": { - "lastModified": 1714572852, - "narHash": "sha256-Knp36PtgA73gtYO+W1clQfr570bKCxTFsGW3/iH86A0=", - "owner": "zerolfx", - "repo": "copilot.el", - "rev": "733bff26450255e092c10873580e9abfed8a81b8", - "type": "github" - }, - "original": { - "owner": "zerolfx", - "repo": "copilot.el", - "type": "github" - } - }, - "extra-package-gptel": { - "flake": false, - "locked": { - "lastModified": 1719293003, - "narHash": "sha256-2UArv9fvZEMC6lf3HE6c9onXkRroX0HgX5C/kTHM/ls=", - "owner": "karthink", - "repo": "gptel", - "rev": "a834adbcba46197f4a59b0208e48dd3e80f15c46", - "type": "github" - }, - "original": { - "owner": "karthink", - "repo": "gptel", - "type": "github" - } - }, - "extra-package-indent-bars": { - "flake": false, - "locked": { - "lastModified": 1717788473, - "narHash": "sha256-gcqFMjgWktfGFKeiW6uwWbBtEM1Om2ezMI7W/ZGUFkE=", - "owner": "jdtsmith", - "repo": "indent-bars", - "rev": "2d1d854ddaa5b0e19b69e73553675c2aaaed1641", - "type": "github" - }, - "original": { - "owner": "jdtsmith", - "repo": "indent-bars", - "type": "github" - } - }, - "extra-package-meow-tree-sitter": { - "flake": false, - "locked": { - "lastModified": 1719316197, - "narHash": "sha256-PJotdHWmnBlfQfVSZQAfwxhQfXM/U338wl5QZu/RWMI=", - "owner": "skissue", - "repo": "meow-tree-sitter", - "rev": "8b4e91de05e82fee3535be67d0e9cbd9239b73bb", - "type": "github" - }, - "original": { - "owner": "skissue", - "repo": "meow-tree-sitter", - "type": "github" - } - }, - "extra-package-nix-ts-mode": { - "flake": false, - "locked": { - "lastModified": 1705596103, - "narHash": "sha256-jEUmhfLE7cFan4/PF4qBiEOLsjM3Q4iSDTlM+0CYwZg=", - "owner": "antifuchs", - "repo": "nix-ts-mode", - "rev": "0ef4e663add03d026a1804f57ac7d5453a635b15", - "type": "github" - }, - "original": { - "owner": "antifuchs", - "ref": "improve-indented-string-indentation", - "repo": "nix-ts-mode", - "type": "github" - } - }, - "extra-package-notmuch-notify": { - "flake": false, - "locked": { - "lastModified": 1615303739, - "narHash": "sha256-7REFHQ5+cCK7EGIvs2CnoWu9a7WPxX4W6eFql2nNYP8=", - "owner": "firmart", - "repo": "notmuch-notify", - "rev": "c10012e38b0093bc3a304b90a30dd09c81b3eb75", - "type": "github" - }, - "original": { - "owner": "firmart", - "repo": "notmuch-notify", - "type": "github" - } - }, "fan-control": { "flake": false, "locked": { @@ -320,183 +117,7 @@ }, "flake-parts": { "inputs": { - "nixpkgs-lib": [ - "arion", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1719994518, - "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_10": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_5" - }, - "locked": { - "lastModified": 1714606777, - "narHash": "sha256-bMkNmAXLj8iyTvxaaD/StcLSadbj1chPcJOjtuVnLmA=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "4d34ce6412bc450b1d4208c953dc97c7fc764f1a", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_11": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_6" - }, - "locked": { - "lastModified": 1678379998, - "narHash": "sha256-TZdfNqftHhDuIFwBcN9MUThx5sQXCTeZk9je5byPKRw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "c13d60b89adea3dc20704c045ec4d50dd964d447", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "arion", - "hercules-ci-effects", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, - "flake-parts_3": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, - "locked": { - "lastModified": 1717285511, - "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_4": { - "inputs": { - "nixpkgs-lib": [ - "ccrEmacs", - "hercules-ci-effects", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, - "flake-parts_5": { - "inputs": { - "nixpkgs-lib": [ - "hercules-ci-agent", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1719877454, - "narHash": "sha256-g5N1yyOSsPNiOlFfkuI/wcUjmtah+nxdImJqrSATjOU=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "4e3583423212f9303aa1a6337f8dffb415920e4f", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_6": { - "inputs": { - "nixpkgs-lib": [ - "hercules-ci-effects", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, - "flake-parts_7": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_3" - }, - "locked": { - "lastModified": 1714641030, - "narHash": "sha256-yzcRNDoyVP7+SCNX0wmuDju1NUCt8Dz9+lyUXEI0dbI=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_8": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_4" + "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { "lastModified": 1701473968, @@ -512,7 +133,7 @@ "type": "github" } }, - "flake-parts_9": { + "flake-parts_2": { "inputs": { "nixpkgs-lib": [ "nixThePlanet", @@ -533,18 +154,21 @@ "type": "indirect" } }, - "flake-root": { + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_3" + }, "locked": { - "lastModified": 1713493429, - "narHash": "sha256-ztz8JQkI08tjKnsTpfLqzWoKFQF4JGu2LRz8bkdnYUk=", - "owner": "srid", - "repo": "flake-root", - "rev": "bc748b93b86ee76e2032eecda33440ceb2532fcd", + "lastModified": 1678379998, + "narHash": "sha256-TZdfNqftHhDuIFwBcN9MUThx5sQXCTeZk9je5byPKRw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c13d60b89adea3dc20704c045ec4d50dd964d447", "type": "github" }, "original": { - "owner": "srid", - "repo": "flake-root", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, @@ -571,11 +195,11 @@ "systems": "systems_3" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", "type": "github" }, "original": { @@ -586,14 +210,14 @@ }, "flakeParts": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_2" + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1719994518, - "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "lastModified": 1725234343, + "narHash": "sha256-+ebgonl3NbiKD2UD0x4BszCZQ6sTfL4xioaM49o5B3Y=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "rev": "567b938d64d4b4112ee253b9274472dc3a346eb6", "type": "github" }, "original": { @@ -638,123 +262,11 @@ "type": "github" } }, - "haskell-flake": { - "locked": { - "lastModified": 1675296942, - "narHash": "sha256-u1X1sblozi5qYEcLp1hxcyo8FfDHnRUVX3dJ/tW19jY=", - "owner": "srid", - "repo": "haskell-flake", - "rev": "c2cafce9d57bfca41794dc3b99c593155006c71e", - "type": "github" - }, - "original": { - "owner": "srid", - "ref": "0.1.0", - "repo": "haskell-flake", - "type": "github" - } - }, - "haskell-flake_2": { - "locked": { - "lastModified": 1684780604, - "narHash": "sha256-2uMZsewmRn7rRtAnnQNw1lj0uZBMh4m6Cs/7dV5YF08=", - "owner": "srid", - "repo": "haskell-flake", - "rev": "74210fa80a49f1b6f67223debdbf1494596ff9f2", - "type": "github" - }, - "original": { - "owner": "srid", - "ref": "0.3.0", - "repo": "haskell-flake", - "type": "github" - } - }, - "hercules-ci-agent": { - "inputs": { - "flake-parts": "flake-parts_5", - "haskell-flake": "haskell-flake_2", - "nixpkgs": "nixpkgs_6" - }, - "locked": { - "lastModified": 1720223941, - "narHash": "sha256-QDbU8LZzcUSqBp1CBqDj/f5Wd/sdgQ8pZwRWueoMUL4=", - "owner": "hercules-ci", - "repo": "hercules-ci-agent", - "rev": "2e10fb21fc2e07edf40763b73443e5934bd40947", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-agent", - "type": "github" - } - }, "hercules-ci-effects": { "inputs": { "flake-parts": "flake-parts_2", - "nixpkgs": [ - "arion", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1719226092, - "narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=", - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "type": "github" - } - }, - "hercules-ci-effects_2": { - "inputs": { - "flake-parts": "flake-parts_4", "nixpkgs": "nixpkgs_4" }, - "locked": { - "lastModified": 1719226092, - "narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=", - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "type": "github" - } - }, - "hercules-ci-effects_3": { - "inputs": { - "flake-parts": "flake-parts_6", - "nixpkgs": "nixpkgs_7" - }, - "locked": { - "lastModified": 1719226092, - "narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=", - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "type": "github" - } - }, - "hercules-ci-effects_4": { - "inputs": { - "flake-parts": "flake-parts_9", - "nixpkgs": "nixpkgs_9" - }, "locked": { "lastModified": 1701009247, "narHash": "sha256-GuX16rzRze2y7CsewJLTV6qXkXWyEwp6VCZXi8HLruU=", @@ -814,15 +326,15 @@ "homeManager": { "inputs": { "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ] }, "locked": { - "lastModified": 1720646128, - "narHash": "sha256-BivO5yIQukDlJL+1875Sqf3GuOPxZDdA48dYDi3PkL8=", + "lastModified": 1725863684, + "narHash": "sha256-HmdTBpuCsw35Ii35JUKO6AE6nae+kJliQb0XGd4hoLE=", "owner": "nix-community", "repo": "home-manager", - "rev": "c085b984ff2808bf322f375b10fea5a415a9c43d", + "rev": "be47a2bdf278c57c2d05e747a13ed31cef54a037", "type": "github" }, "original": { @@ -834,7 +346,7 @@ "homeManagerGitWorkspace": { "inputs": { "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ] }, "locked": { @@ -854,11 +366,11 @@ }, "impermanence": { "locked": { - "lastModified": 1719091691, - "narHash": "sha256-AxaLX5cBEcGtE02PeGsfscSb/fWMnyS7zMWBXQWDKbE=", + "lastModified": 1725690722, + "narHash": "sha256-4qWg9sNh5g1qPGO6d/GV2ktY+eDikkBTbWSg5/iD2nY=", "owner": "nix-community", "repo": "impermanence", - "rev": "23c1f06316b67cb5dabdfe2973da3785cfe9c34a", + "rev": "63f4d0443e32b0dd7189001ee1894066765d18a5", "type": "github" }, "original": { @@ -887,11 +399,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1720633647, - "narHash": "sha256-CjWvti4wFhRmIHpLduohKAVmU9+wI/PAOhQppCWziK8=", + "lastModified": 1725846500, + "narHash": "sha256-8tzJO3PllVPc0RYE0OfXVWlgTiJxKH1nzXsQLGyFRJ4=", "ref": "refs/heads/main", - "rev": "014410cbf0bda9c0fcdaf5f894120883cdc805ce", - "revCount": 15944, + "rev": "c14486ae8d3bbc862c625d948a6b2f4dc0927d5b", + "revCount": 16226, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -902,21 +414,21 @@ }, "lix-module": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "flakey-profile": "flakey-profile", "lix": [ "lix" ], "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ] }, "locked": { - "lastModified": 1719353937, - "narHash": "sha256-86NBqDxAP20ET/UoKX0WvSItblNQ97czXb2q7lkMrwk=", + "lastModified": 1725836728, + "narHash": "sha256-dCbHCwqrzcHlEsRilMX+KM3IfRV46ieGqDyAD3GgCSs=", "ref": "refs/heads/main", - "rev": "5d9d94089fb1ca96222a34bfe245ef5c5ebefd37", - "revCount": 92, + "rev": "353b25f0b6da5ede15206d416345a2ec4195b5c8", + "revCount": 107, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -928,11 +440,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1720660935, - "narHash": "sha256-GnDGoVaObUjnYdCHUSIYVE1anMElis+Pq+RY30LFlIk=", + "lastModified": 1725601293, + "narHash": "sha256-PLk1m0ZukClV+qrszd6WaNclpge8zGsSBTOAwYB9es4=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "31704f8a55f5773c9b4e7adb7408a142d142e1f2", + "rev": "672f8299e484301994858d9220921309f631d616", "type": "github" }, "original": { @@ -941,35 +453,16 @@ "type": "github" } }, - "nix-fast-build": { - "inputs": { - "flake-parts": "flake-parts_7", - "nixpkgs": [ - "nixpkgsUnstable" - ], - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1719475157, - "narHash": "sha256-8zW6eWvE9T03cMpo/hY8RRZIsSCfs1zmsJOkEZzuYwM=", - "owner": "Mic92", - "repo": "nix-fast-build", - "rev": "030e586195c97424844965d2ce680140f6565c02", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "nix-fast-build", - "type": "github" - } - }, "nix-formatter-pack": { "inputs": { "nixpkgs": [ "nix-on-droid", "nixpkgs" ], - "nmd": "nmd", + "nmd": [ + "nix-on-droid", + "nmd" + ], "nmt": "nmt" }, "locked": { @@ -990,17 +483,17 @@ "inputs": { "home-manager": "home-manager_2", "nix-formatter-pack": "nix-formatter-pack", - "nixpkgs": "nixpkgs_8", + "nixpkgs": "nixpkgs_3", "nixpkgs-docs": "nixpkgs-docs", "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", - "nmd": "nmd_2" + "nmd": "nmd" }, "locked": { - "lastModified": 1720612508, - "narHash": "sha256-WbjV0gmnh6jG1B292K4KIJwtBacn2sTWhiw1ZMeti9s=", + "lastModified": 1725658585, + "narHash": "sha256-P29z4Gt89n5ps1U7+qmIrj0BuRXGZQSIaOe2+tsPgfw=", "owner": "nix-community", "repo": "nix-on-droid", - "rev": "8bcadcef69dcb5ca177bfb6ea3dc6b092cda2b06", + "rev": "5d88ff2519e4952f8d22472b52c531bb5f1635fc", "type": "github" }, "original": { @@ -1012,15 +505,15 @@ "nixDarwin": { "inputs": { "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ] }, "locked": { - "lastModified": 1720599442, - "narHash": "sha256-jdm+sKVbBXoyrxcHbVaV0htlpq2iFR+eJw3Xe/DPcDo=", + "lastModified": 1725628909, + "narHash": "sha256-xI0OSqPHcs/c/utJsU0Zvcp1VhejMI9mgwr68uHHlPs=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "cf297a8d248db6a455b60133f6c0029c04ebe50e", + "rev": "76559183801030451e200c90a1627c1d82bb4910", "type": "github" }, "original": { @@ -1031,10 +524,10 @@ }, "nixThePlanet": { "inputs": { - "flake-parts": "flake-parts_8", - "hercules-ci-effects": "hercules-ci-effects_4", + "flake-parts": "flake-parts", + "hercules-ci-effects": "hercules-ci-effects", "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ], "osx-kvm": "osx-kvm" }, @@ -1053,33 +546,13 @@ "type": "github" } }, - "nixd": { - "inputs": { - "flake-parts": "flake-parts_10", - "flake-root": "flake-root", - "nixpkgs": "nixpkgs_10" - }, - "locked": { - "lastModified": 1719387257, - "narHash": "sha256-q5nj4TFggEHcyKuETmVEFeGztkAYXl3TDIOfd6swo4U=", - "owner": "nix-community", - "repo": "nixd", - "rev": "60a925008bc353136ba5babce437f42819c1645c", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixd", - "type": "github" - } - }, "nixosHardware": { "locked": { - "lastModified": 1720515935, - "narHash": "sha256-8b+fzR4W2hI5axwB+4nBwoA15awPKkck4ghhCt8v39M=", + "lastModified": 1725885300, + "narHash": "sha256-5RLEnou1/GJQl+Wd+Bxaj7QY7FFQ9wjnFq1VNEaxTmc=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "a111ce6b537df12a39874aa9672caa87f8677eda", + "rev": "166dee4f88a7e3ba1b7a243edb1aca822f00680e", "type": "github" }, "original": { @@ -1154,41 +627,17 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1717284937, - "narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=", + "lastModified": 1725233747, + "narHash": "sha256-Ss8QWLXdr2JCBPcYChJhz4xJm+h/xjl4G0c0XlP6a74=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" } }, "nixpkgs-lib_2": { - "locked": { - "lastModified": 1719876945, - "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" - } - }, - "nixpkgs-lib_3": { - "locked": { - "lastModified": 1714640452, - "narHash": "sha256-QBx10+k6JWz6u7VsohfSw8g8hjdBZEf8CFzXH1/1Z94=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" - } - }, - "nixpkgs-lib_4": { "locked": { "dir": "lib", "lastModified": 1701253981, @@ -1206,25 +655,7 @@ "type": "github" } }, - "nixpkgs-lib_5": { - "locked": { - "dir": "lib", - "lastModified": 1714253743, - "narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994", - "type": "github" - }, - "original": { - "dir": "lib", - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-lib_6": { + "nixpkgs-lib_3": { "locked": { "dir": "lib", "lastModified": 1678375444, @@ -1244,149 +675,21 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1719122173, - "narHash": "sha256-aEMsNUtqSPwn6l+LIZ/rX++nCgun3E9M3uSZs6Rwb7w=", + "lastModified": 1726447378, + "narHash": "sha256-2yV8nmYE1p9lfmLHhOCbYwQC/W8WYfGQABoGzJOb1JQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "906320ae02f769d13a646eb3605a9821df0d6ea2", + "rev": "086b448a5d54fd117f4dc2dee55c9f0ff461bdc1", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-23.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgsStable": { - "locked": { - "lastModified": 1719957072, - "narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "7144d6241f02d171d25fba3edeaf15e0f2592105", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-23.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgsUnstable": { - "locked": { - "lastModified": 1719254875, - "narHash": "sha256-ECni+IkwXjusHsm9Sexdtq8weAq/yUyt1TWIemXt3Ko=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60", - "type": "github" - } - }, - "nixpkgsUnstableForSisko": { - "locked": { - "lastModified": 1708475490, - "narHash": "sha256-g1v0TsWBQPX97ziznfJdWhgMyMGtoBFs102xSYO4syU=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "0e74ca98a74bc7270d28838369593635a5db3260", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "0e74ca98a74bc7270d28838369593635a5db3260", - "type": "github" - } - }, - "nixpkgs_10": { - "locked": { - "lastModified": 1714562304, - "narHash": "sha256-Mr3U37Rh6tH0FbaDFu0aZDwk9mPAe7ASaqDOGgLqqLU=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "bcd44e224fd68ce7d269b4f44d24c2220fd821e7", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_11": { - "locked": { - "lastModified": 1678470307, - "narHash": "sha256-OEeMUr3ueLIXyW/OaFUX5jUdimyQwMg/7e+/Q0gC/QE=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "0c4800d579af4ed98ecc47d464a5e7b0870c4b1f", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", + "ref": "nixos-24.05", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { - "locked": { - "lastModified": 1720031269, - "narHash": "sha256-rwz8NJZV+387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1719075281, - "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1713714899, - "narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "6143fc5eeb9c4f00163267708e26191d1e918932", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { "locked": { "lastModified": 1720181791, "narHash": "sha256-i4vJL12/AdyuQuviMMd1Hk2tsGt02hDNhA0Zj1m16N8=", @@ -1402,39 +705,7 @@ "type": "github" } }, - "nixpkgs_6": { - "locked": { - "lastModified": 1719848872, - "narHash": "sha256-H3+EC5cYuq+gQW8y0lSrrDZfH71LB4DAf+TDFyvwCNA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "00d80d13810dbfea8ab4ed1009b09100cca86ba8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_7": { - "locked": { - "lastModified": 1713714899, - "narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "6143fc5eeb9c4f00163267708e26191d1e918932", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { + "nixpkgs_3": { "locked": { "lastModified": 1708172716, "narHash": "sha256-3M94oln0b61m3dUmLyECCA9hYAHXZEszM4saE3CmQO4=", @@ -1449,7 +720,7 @@ "type": "github" } }, - "nixpkgs_9": { + "nixpkgs_4": { "locked": { "lastModified": 1697723726, "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", @@ -1465,23 +736,52 @@ "type": "github" } }, - "nmd": { - "flake": false, + "nixpkgs_5": { "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", - "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", - "type": "gitlab" + "lastModified": 1726745986, + "narHash": "sha256-xB35C2fpz7iyNcj9sn0a+wM2C4CQ6DGTn5VUHogstYs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "268bb5090a3c6ac5e1615b38542a868b52ef8088", + "type": "github" }, "original": { - "owner": "rycee", - "repo": "nmd", - "type": "gitlab" + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" } }, - "nmd_2": { + "nixpkgs_6": { + "locked": { + "lastModified": 1678470307, + "narHash": "sha256-OEeMUr3ueLIXyW/OaFUX5jUdimyQwMg/7e+/Q0gC/QE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0c4800d579af4ed98ecc47d464a5e7b0870c4b1f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1682134069, + "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fd901ef4bf93499374c5af385b2943f5801c0833", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nmd": { "inputs": { "nixpkgs": [ "nix-on-droid", @@ -1519,22 +819,6 @@ "type": "gitlab" } }, - "nur": { - "locked": { - "lastModified": 1715146663, - "narHash": "sha256-SiCdZF3dwRBgTlHOSB5GCKBcTmkGmyDmVRwr6cHCdgE=", - "owner": "nix-community", - "repo": "NUR", - "rev": "324a5f3b9fbfdb77336dc9fa1c0a02f33a6acf6d", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "NUR", - "rev": "324a5f3b9fbfdb77336dc9fa1c0a02f33a6acf6d", - "type": "github" - } - }, "osx-kvm": { "flake": false, "locked": { @@ -1572,18 +856,16 @@ "flake-compat": "flake-compat", "gitignore": "gitignore", "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ], - "nixpkgs-stable": [ - "nixpkgsStable" - ] + "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1720524665, - "narHash": "sha256-ni/87oHPZm6Gv0ECYxr1f6uxB0UKBWJ6HvS7lwLU6oY=", + "lastModified": 1725513492, + "narHash": "sha256-tyMUA6NgJSvvQuzB7A1Sf8+0XCHyfSPRx/b00o6K0uo=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "8d6a17d0cdf411c55f12602624df6368ad86fac1", + "rev": "7570de7b9b504cfe92025dd1be797bf546f66528", "type": "github" }, "original": { @@ -1634,13 +916,13 @@ "rock5b": { "inputs": { "fan-control": "fan-control", - "flake-parts": "flake-parts_11", + "flake-parts": "flake-parts_3", "kernel-src": "kernel-src", - "nixpkgs": "nixpkgs_11", + "nixpkgs": "nixpkgs_6", "nixpkgs-kernel": "nixpkgs-kernel", "panfork": "panfork", "tow-boot": "tow-boot", - "treefmt-nix": "treefmt-nix_2" + "treefmt-nix": "treefmt-nix" }, "locked": { "lastModified": 1685695782, @@ -1659,32 +941,24 @@ "root": { "inputs": { "agenix": "agenix", - "arion": "arion", - "ccrEmacs": "ccrEmacs", "disko": "disko", "dream2nix": "dream2nix", "flakeParts": "flakeParts", - "hercules-ci-agent": "hercules-ci-agent", - "hercules-ci-effects": "hercules-ci-effects_3", "homeManager": "homeManager", "homeManagerGitWorkspace": "homeManagerGitWorkspace", "impermanence": "impermanence", "lix": "lix", "lix-module": "lix-module", "mobile-nixos": "mobile-nixos", - "nix-fast-build": "nix-fast-build", "nix-on-droid": "nix-on-droid", "nixDarwin": "nixDarwin", "nixThePlanet": "nixThePlanet", - "nixd": "nixd", "nixosHardware": "nixosHardware", - "nixpkgsStable": "nixpkgsStable", - "nixpkgsUnstable": "nixpkgsUnstable", - "nixpkgsUnstableForSisko": "nixpkgsUnstableForSisko", - "nur": "nur", + "nixpkgs": "nixpkgs_5", "pre-commit-hooks": "pre-commit-hooks", "rock5b": "rock5b", - "treefmt-nix": "treefmt-nix_3" + "treefmt-nix": "treefmt-nix_2", + "vscode-server": "vscode-server" } }, "scss-reset": { @@ -1788,27 +1062,6 @@ } }, "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "nix-fast-build", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1714058656, - "narHash": "sha256-Qv4RBm4LKuO4fNOfx9wl40W2rBbv5u5m+whxRYUMiaA=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "c6aaf729f34a36c445618580a9f95a48f5e4e03f", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "treefmt-nix_2": { "inputs": { "nixpkgs": [ "rock5b", @@ -1829,18 +1082,18 @@ "type": "github" } }, - "treefmt-nix_3": { + "treefmt-nix_2": { "inputs": { "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ] }, "locked": { - "lastModified": 1720645794, - "narHash": "sha256-vAeYp+WH7i/DlBM5xNt9QeWiOiqzzf5abO8DYGkbUxg=", + "lastModified": 1725271838, + "narHash": "sha256-VcqxWT0O/gMaeWTTjf1r4MOyG49NaNxW4GHTO3xuThE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "750dfb555b5abdab4d3266b3f9a05dec6d205c04", + "rev": "9fb342d14b69aefdf46187f6bb80a4a0d97007cd", "type": "github" }, "original": { @@ -1848,6 +1101,25 @@ "repo": "treefmt-nix", "type": "github" } + }, + "vscode-server": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_7" + }, + "locked": { + "lastModified": 1713958148, + "narHash": "sha256-8PDNi/dgoI2kyM7uSiU4eoLBqUKoA+3TXuz+VWmuCOc=", + "owner": "nix-community", + "repo": "nixos-vscode-server", + "rev": "fc900c16efc6a5ed972fb6be87df018bcf3035bc", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixos-vscode-server", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 7b754e0..638d2af 100644 --- a/flake.nix +++ b/flake.nix @@ -4,56 +4,42 @@ inputs = { flakeParts.url = "github:hercules-ci/flake-parts"; # FIXME remove constraint - nixpkgsUnstable.url = "github:NixOS/nixpkgs/2893f56de08021cffd9b6b6dfc70fd9ccd51eb60"; - nixpkgsUnstableForSisko.url = "github:NixOS/nixpkgs/0e74ca98a74bc7270d28838369593635a5db3260"; - nixpkgsStable.url = "github:NixOS/nixpkgs/nixos-23.11"; + nixpkgs.url = "github:NixOS/nixpkgs"; + # nixpkgsForSisko.url = "github:NixOS/nixpkgs/0e74ca98a74bc7270d28838369593635a5db3260"; nixosHardware.url = "github:NixOS/nixos-hardware"; homeManager = { url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; # TODO: remove after https://github.com/nix-community/home-manager/pull/3811 homeManagerGitWorkspace = { url = "github:aciceri/home-manager/git-workspace"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; disko = { url = "github:nix-community/disko"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; pre-commit-hooks = { url = "github:cachix/pre-commit-hooks.nix"; - inputs = { - nixpkgs.follows = "nixpkgsUnstable"; - nixpkgs-stable.follows = "nixpkgsStable"; - }; + inputs.nixpkgs.follows = "nixpkgs"; }; - # FIXME go back to master after nltch's repository is re-added - nur.url = "github:nix-community/NUR/324a5f3b9fbfdb77336dc9fa1c0a02f33a6acf6d"; agenix.url = "github:ryantm/agenix"; rock5b.url = "github:aciceri/rock5b-nixos"; - ccrEmacs.url = "git+https://git.aciceri.dev/aciceri/emacs.git"; treefmt-nix = { url = "github:numtide/treefmt-nix"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; - hercules-ci-effects.url = "github:hercules-ci/hercules-ci-effects"; dream2nix.url = "github:nix-community/dream2nix"; - hercules-ci-agent.url = "github:hercules-ci/hercules-ci-agent"; - nix-fast-build = { - url = "github:Mic92/nix-fast-build"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; - }; nixThePlanet = { url = "github:aciceri/NixThePlanet/nix-in-darwin"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; nixDarwin = { url = "github:LnL7/nix-darwin"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; nix-on-droid.url = "github:nix-community/nix-on-droid"; - nixd.url = "github:nix-community/nixd"; lix = { url = "git+https://git@git.lix.systems/lix-project/lix"; flake = false; @@ -61,14 +47,14 @@ lix-module = { url = "git+https://git.lix.systems/lix-project/nixos-module"; inputs.lix.follows = "lix"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; mobile-nixos = { url = "github:NixOS/mobile-nixos"; flake = false; }; - arion.url = "github:hercules-ci/arion"; impermanence.url = "github:nix-community/impermanence"; + vscode-server.url = "github:nix-community/nixos-vscode-server"; }; outputs = inputs @ {flakeParts, ...}: @@ -81,7 +67,6 @@ ./packages ./shell ./checks - ./ci ]; systems = ["x86_64-linux" "aarch64-linux"]; }; diff --git a/hmModules/cura/default.nix b/hmModules/cura/default.nix index 2dcb042..32a1c64 100644 --- a/hmModules/cura/default.nix +++ b/hmModules/cura/default.nix @@ -1,3 +1,28 @@ {pkgs, ...}: { - home.packages = [pkgs.cura]; + home.packages = [ + (let + cura5 = pkgs.appimageTools.wrapType2 rec { + name = "cura5"; + version = "5.8.0"; + src = pkgs.fetchurl { + url = "https://github.com/Ultimaker/Cura/releases/download/${version}/UltiMaker-Cura-${version}-linux-X64.AppImage"; + hash = "sha256-EojVAe+o43W80ES5BY3QgGRTxztwS+B6kIOfJOtULOg="; + }; + }; + in + pkgs.writeScriptBin "cura" '' + #! ${pkgs.bash}/bin/bash + # AppImage version of Cura loses current working directory and treats all paths relateive to $HOME. + # So we convert each of the files passed as argument to an absolute path. + # This fixes use cases like `cd /path/to/my/files; cura mymodel.stl anothermodel.stl`. + args=() + for a in "$@"; do + if [ -e "$a" ]; then + a="$(realpath "$a")" + fi + args+=("$a") + done + QT_QPA_PLATFORM=xcb exec "${cura5}/bin/cura5" "''${args[@]}" + '') + ]; } diff --git a/hmModules/email/default.nix b/hmModules/email/default.nix index d3b9d2a..dd02c0c 100644 --- a/hmModules/email/default.nix +++ b/hmModules/email/default.nix @@ -5,13 +5,183 @@ }: { programs.mbsync.enable = true; programs.msmtp.enable = true; - programs.notmuch = { - enable = true; - hooks.preNew = "mbsync --all"; - }; services.mbsync.enable = true; + + home.file.".config/aerc/stylesets" = let + catppuccin-aerc = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "aerc"; + rev = "ca404a9f2d125ef12db40db663d43c9d94116a05"; + hash = "sha256-OWIkHsKFts/zkrDUtbBPXHVSrHL/F0v3LB1rnlFAKmE="; + }; + in { + source = "${catppuccin-aerc}/dist"; + recursive = true; + }; + + programs.aerc = { + enable = true; + extraBinds = { + global = { + "" = ":prev-tab"; + "" = ":next-tab"; + "?" = ":help keys"; + }; + + messages = { + "h" = ":prev-tab"; + "l" = ":next-tab"; + + "j" = ":next"; + "" = ":next"; + "" = ":next 50%"; + "" = ":next 100%"; + "" = ":next 100%"; + + "k" = ":prev"; + "" = ":prev"; + "" = ":prev 50%"; + "" = ":prev 100%"; + "" = ":prev 100%"; + "g" = ":select 0"; + "G" = ":select -1"; + + "J" = ":next-folder"; + "K" = ":prev-folder"; + "H" = ":collapse-folder"; + "L" = ":expand-folder"; + + "v" = ":mark -t"; + "x" = ":mark -t:next"; + "V" = ":mark -v"; + + "T" = ":toggle-threads"; + + "" = ":view"; + "d" = ":prompt 'Really delete this message?' 'delete-message'"; + "D" = ":delete"; + "A" = ":archive flat"; + + "C" = ":compose"; + + "rr" = ":reply -a"; + "rq" = ":reply -aq"; + "Rr" = ":reply"; + "Rq" = ":reply -q"; + + "c" = ":cf"; + "$" = ":term"; + "!" = ":term"; + "|" = ":pipe"; + + "/" = ":search"; + "\\" = ":filter"; + "n" = ":next-result"; + "N" = ":prev-result"; + "" = ":clear"; + }; + + "messages:folder=Drafts" = {"" = ":recall";}; + + view = { + "/" = ":toggle-key-passthrough/"; + "q" = ":close"; + "O" = ":open"; + "S" = ":save"; + "|" = ":pipe"; + "D" = ":delete"; + "A" = ":archive flat"; + + "" = ":open-link "; + + "f" = ":forward"; + "rr" = ":reply -a"; + "rq" = ":reply -aq"; + "Rr" = ":reply"; + "Rq" = ":reply -q"; + + "H" = ":toggle-headers"; + "" = ":prev-part"; + "" = ":next-part"; + "J" = ":next"; + "K" = ":prev"; + }; + + "view::passthrough" = { + "$noinherit" = true; + "$ex" = ""; + "" = ":toggle-key-passthrough"; + }; + + compose = { + "$noinherit" = "true"; + "$ex" = ""; + "" = ":prev-field"; + "" = ":next-field"; + "" = ":switch-account -p"; + "" = ":switch-account -n"; + "" = ":next-field"; + "" = ":prev-tab"; + "" = ":next-tab"; + }; + + "compose::editor" = { + "$noinherit" = "true"; + "$ex" = ""; + "" = ":prev-field"; + "" = ":next-field"; + "" = ":prev-tab"; + "" = ":next-tab"; + }; + + "compose::review" = { + "y" = ":send"; + "n" = ":abort"; + "p" = ":postpone"; + "q" = ":choose -o d discard abort -o p postpone postpone"; + "e" = ":edit"; + "a" = ":attach"; + "d" = ":detach"; + }; + + terminal = { + "$noinherit" = "true"; + "$ex" = ""; + + "" = ":prev-tab"; + "" = ":next-tab"; + }; + }; + extraConfig = { + general.unsafe-accounts-conf = true; + ui = { + styleset-name = "catppuccin-mocha"; + this-day-time-format = ''" 15:04"''; + this-year-time-format = "Mon Jan 02 15:04"; + timestamp-format = "2006-01-02 15:04"; + + spinner = "[ ⡿ ],[ ⣟ ],[ ⣯ ],[ ⣷ ],[ ⣾ ],[ ⣽ ],[ ⣻ ],[ ⢿ ]"; + border-char-vertical = "┃"; + border-char-horizontal = "━"; + }; + viewer = {always-show-mime = true;}; + compose = {no-attachment-warning = "^[^>]*attach(ed|ment)";}; + triggers = { + email-received = ''exec notify-send "New email from %n" "%s"''; + }; + filters = { + "text/plain" = "colorize"; + "text/html" = "html"; + "text/calendar" = "calendar"; + "message/delivery-status" = "colorize"; + "message/rfc822" = "colorize"; + "image/*" = "${pkgs.catimg}/bin/catimg -"; + }; + }; + }; accounts.email = { accounts.autistici = { + aerc.enable = true; address = "andrea.ciceri@autistici.org"; gpg = { key = "7A66EEA1E6C598D07D361287A1FC89532D1C565"; diff --git a/hmModules/firefox/default.nix b/hmModules/firefox/default.nix index 9732957..954dbc3 100644 --- a/hmModules/firefox/default.nix +++ b/hmModules/firefox/default.nix @@ -12,11 +12,6 @@ nativeMessagingHosts = [pkgs.tridactyl-native]; }; profiles.${username} = { - extensions = with pkgs.nur.repos.rycee.firefox-addons; [ - privacy-badger - ublock-origin - tridactyl - ]; settings = { "browser.startup.homepage" = "https://google.it"; "browser.search.region" = "IT"; diff --git a/hmModules/foot/default.nix b/hmModules/foot/default.nix index d5cc61b..a40f2a5 100644 --- a/hmModules/foot/default.nix +++ b/hmModules/foot/default.nix @@ -1,40 +1,71 @@ { lib, pkgs, + config, ... -}: { - programs.foot = let - catppuccin = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "foot"; - rev = "307611230661b7b1787feb7f9d122e851bae97e9"; - hash = "sha256-mkPYHDJtfdfDnqLr1YOjaBpn4lCceok36LrnkUkNIE4="; - }; - in { - enable = true; - server.enable = true; - settings = { - main = { - term = "xterm-256color"; - login-shell = "yes"; - # Using dpi-aware = "yes" font size is too small on my external monitor - # Scaling that output in sway is inefficient and make XWayland apps blurred - dpi-aware = "no"; - horizontal-letter-offset = "1"; - include = "${catppuccin}/themes/catppuccin-mocha.ini"; - font = let - size = "13"; - in - lib.concatStringsSep ", " [ - "Iosevka Comfy:size=${size}" - "Symbols Nerd Font:size=${size}" - "JoyPixels:size=${size}" - ]; +}: +lib.mkMerge [ + { + programs.foot = let + catppuccin = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "foot"; + rev = "307611230661b7b1787feb7f9d122e851bae97e9"; + hash = "sha256-mkPYHDJtfdfDnqLr1YOjaBpn4lCceok36LrnkUkNIE4="; }; + in { + enable = true; + server.enable = true; + settings = { + main = { + term = "xterm-256color"; + login-shell = "yes"; + dpi-aware = "no"; + horizontal-letter-offset = "1"; + include = "${catppuccin}/themes/catppuccin-mocha.ini"; + font = let + size = "13"; + in + lib.concatStringsSep ", " [ + "Iosevka Comfy:size=${size}" + "Symbols Nerd Font:size=${size}" + "JoyPixels:size=${size}" + ]; + }; + cursor = { + blink = true; + }; + tweak = { + overflowing-glyphs = true; + }; - mouse = { - hide-when-typing = "yes"; + key-bindings = { + scrollback-up-page = "Control+Shift+k"; + scrollback-down-page = "Control+Shift+j"; + search-start = "Control+Shift+s"; + pipe-command-output = ''[sh -c "f=$(mktemp); cat - > $f; footclient hx $f; rm $f"] Control+Shift+g''; + }; + + mouse = { + hide-when-typing = "yes"; + }; }; }; - }; -} + } + (lib.mkIf config.programs.fish.enable { + programs.fish.functions = { + mark_prompt_start = { + body = ''echo -en "\e]133;A\e\\"''; + onEvent = "fish_prompt"; + }; + foot_cmd_start = { + body = ''echo -en "\e]133;C\e\\"''; + onEvent = "fish_preexec"; + }; + foot_cmd_end = { + body = ''echo -en "\e]133;D\e\\''; + onEvent = "fish_postexec"; + }; + }; + }) +] diff --git a/hmModules/helix/default.nix b/hmModules/helix/default.nix index a593e7d..9a5010f 100644 --- a/hmModules/helix/default.nix +++ b/hmModules/helix/default.nix @@ -1,6 +1,7 @@ { programs.helix = { enable = true; + defaultEditor = true; settings = { theme = "catppuccin_mocha"; editor = { @@ -11,6 +12,10 @@ select = "underline"; }; true-color = true; # to make colors coherent when in ssh + # inline-diagnostic = { + # cursor-line = "hint"; + # other-lines = "error"; + # }; }; }; languages = { @@ -19,13 +24,26 @@ name = "nix"; language-servers = ["nixd"]; } - ]; - language-servers = [ { - name = "nixd"; - command = "nixd"; + name = "markdown"; + language-servers = ["zk"]; + } + { + name = "typescript"; + language-servers = ["vtsls"]; } ]; + language-server = { + nixd.command = "nixd"; + vtsls = { + command = "vtsls"; + args = ["--stdio"]; + }; + zk = { + command = "zk"; + args = ["lsp"]; + }; + }; }; }; } diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index c973adf..6ea8431 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -50,8 +50,18 @@ in { font.name = "Sans,Symbols Nerd Font"; iconTheme = { name = "Adwaita"; - package = pkgs.gnome.adwaita-icon-theme; + package = pkgs.adwaita-icon-theme; }; + cursorTheme = { + name = "catppuccin-mocha-sapphire"; + package = pkgs.catppuccin-cursors; + size = 48; + }; + }; + + qt = { + enable = true; + platformTheme.name = "gtk3"; }; # services.kanshi = { @@ -81,126 +91,140 @@ in { # }; # }; + home.file.".icons/catppuccin-mocha-sapphire" = { + source = "${pkgs.catppuccin-cursors.mochaSapphire}/share/icons/catppuccin-mocha-sapphire-cursors"; + recursive = true; + }; + wayland.windowManager.hyprland = { enable = true; extraConfig = '' - $mod = SUPER + cursor { + hide_on_key_press = true + enable_hyprcursor = true + zoom_rigid = true + } - input { - touchpad { - disable_while_typing = true # set to true while playing - } - } + env = HYPRCURSOR_THEME,catppuccin-mocha-sapphire + env = HYPRCURSOR_SIZE,48 + env = XCURSOR_THEME,catppuccin-mocha-sapphire + env = XCURSOR_SIZE,48 - monitor = HDMI-A-1, 2560x1440, 0x0, 1 # picard - monitor = eDP-1, 1920x1080, 0x0, 1 # kirk + $mod = SUPER - bindl=,switch:off:Lid Switch,exec,${switchMonitorScript} open - bindl=,switch:on:Lid Switch,exec,${switchMonitorScript} close + input { + touchpad { + disable_while_typing = true # set to true while playing + } + } - exec-once = ${pkgs.hyprpaper}/bin/hyprpaper + monitor = HDMI-A-1, 2560x1440, 0x0, 1 # picard + monitor = eDP-1, 1920x1080, 0x0, 1 # kirk - windowrulev2 = tile, class:^(Spotify)$ - windowrulev2 = workspace 9, class:^(Spotify)$ - windowrulev2 = tile, class:^(fluffychat)$ - windowrulev2 = workspace 8, class:^(fluffychat)$ - windowrulev2 = tile, class:^(WhatsApp for Linux)$ - windowrulev2 = workspace 7, class:^(WhatsApp for Linux)$ - windowrulev2 = float, title:^(floating)$ + bindl=,switch:off:Lid Switch,exec,${switchMonitorScript} open + bindl=,switch:on:Lid Switch,exec,${switchMonitorScript} close - bind = $mod, b, exec, firefox - bind = $mod, t, exec, foot - bind = $mod, RETURN, exec, emacsclient -c --eval "(ccr/start-eshell)" - bind = $mod, x, exec, emacsclient -c - bind = $mod SHIFT, n, exec, emacsclient --eval '(ccr/org-capture "n")' -c -F '((name . "floating"))' - bind = $mod SHIFT, w, exec, emacsclient --eval '(ccr/org-capture "j")' -c -F '((name . "floating"))' - bind = $mod, y, exec, ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh picard.fleet emacsclient -c - bind = $mod, d, exec, ${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0 - bind = $mod, s, exec, ${screenshotScript} - bind = , XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl s +5% - bind = , XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl s 5%- - bind = $mod, code:60, exec, ${pkgs.brightnessctl}/bin/brightnessctl s +5% - bind = $mod, code:59, exec, ${pkgs.brightnessctl}/bin/brightnessctl s 5%- + exec-once = ${pkgs.hyprpaper}/bin/hyprpaper + windowrulev2 = tile, class:^(Spotify)$ + windowrulev2 = workspace 9, class:^(Spotify)$ + windowrulev2 = float, title:^(floating)$ - bind = $mod SHIFT, q, killactive - bind = $mod SHIFT, f, fullscreen, 0 - bind = $mod SHIFT, e, exit + bind = $mod, b, exec, firefox + bind = $mod, t, exec, footclient + bind = $mod, RETURN, exec, emacsclient -c --eval "(ccr/start-eshell)" + bind = $mod SHIFT, g, exec, emacsclient -c --eval "(ccr/start-chatgpt)" + bind = $mod, x, exec, emacsclient -c + bind = $mod SHIFT, n, exec, emacsclient --eval '(ccr/org-capture "n")' -c -F '((name . "floating"))' + bind = $mod SHIFT, w, exec, emacsclient --eval '(ccr/org-capture "j")' -c -F '((name . "floating"))' + bind = $mod, y, exec, ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh picard.fleet emacsclient -c + bind = $mod, d, exec, ${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0 + bind = $mod, s, exec, ${screenshotScript} + bind = , XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl s +5% + bind = , XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl s 5%- + bind = $mod, code:60, exec, ${pkgs.brightnessctl}/bin/brightnessctl s +5% + bind = $mod, code:59, exec, ${pkgs.brightnessctl}/bin/brightnessctl s 5%- - bind = $mod, h, movefocus, l - bind = $mod, l, movefocus, r - bind = $mod, k, movefocus, u - bind = $mod, j, movefocus, d + bind = $mod SHIFT, t, togglegroup + bind = $mod, G, changegroupactive + bind = $mod SHIFT, q, killactive + bind = $mod SHIFT, f, fullscreen, 0 + bind = $mod SHIFT, e, exit - bind = $mod SHIFT, h, movewindow, l - bind = $mod SHIFT, l, movewindow, r - bind = $mod SHIFT, k, movewindow, u - bind = $mod SHIFT, j ,movewindow, d + bind = $mod, h, movefocus, l + bind = $mod, l, movefocus, r + bind = $mod, k, movefocus, u + bind = $mod, j, movefocus, d - bind = $mod, p, movecurrentworkspacetomonitor, r - bind = $mod, o, movecurrentworkspacetomonitor, l + bind = $mod SHIFT, h, movewindow, l + bind = $mod SHIFT, l, movewindow, r + bind = $mod SHIFT, k, movewindow, u + bind = $mod SHIFT, j ,movewindow, d - bindm=ALT,mouse:272,movewindow + bind = $mod, p, movecurrentworkspacetomonitor, r + bind = $mod, o, movecurrentworkspacetomonitor, l - bind = $mod, 1, workspace, 1 - bind = $mod, 2, workspace, 2 - bind = $mod, 3, workspace, 3 - bind = $mod, 4, workspace, 4 - bind = $mod, 5, workspace, 5 - bind = $mod, 6, workspace, 6 - bind = $mod, 7, workspace, 7 - bind = $mod, 8, workspace, 8 - bind = $mod, 9, workspace, 9 - bind = $mod, 0, workspace, 10 + bindm=ALT,mouse:272,movewindow - bind = $mod SHIFT, 1, movetoworkspace, 1 - bind = $mod SHIFT, 2, movetoworkspace, 2 - bind = $mod SHIFT, 3, movetoworkspace, 3 - bind = $mod SHIFT, 4, movetoworkspace, 4 - bind = $mod SHIFT, 5, movetoworkspace, 5 - bind = $mod SHIFT, 6, movetoworkspace, 6 - bind = $mod SHIFT, 7, movetoworkspace, 7 - bind = $mod SHIFT, 8, movetoworkspace, 8 - bind = $mod SHIFT, 9, movetoworkspace, 9 - bind = $mod SHIFT, 0, movetoworkspace, 10 + bind = $mod, 1, workspace, 1 + bind = $mod, 2, workspace, 2 + bind = $mod, 3, workspace, 3 + bind = $mod, 4, workspace, 4 + bind = $mod, 5, workspace, 5 + bind = $mod, 6, workspace, 6 + bind = $mod, 7, workspace, 7 + bind = $mod, 8, workspace, 8 + bind = $mod, 9, workspace, 9 + bind = $mod, 0, workspace, 10 - general { - gaps_in = 0 - gaps_out = 0 - border_size = 1 - col.active_border = rgba(AF8D61FF) rgba(CEB153FF) rgba(7B8387FF) 45deg - col.inactive_border = rgba(AF8D6166) - } + bind = $mod SHIFT, 1, movetoworkspace, 1 + bind = $mod SHIFT, 2, movetoworkspace, 2 + bind = $mod SHIFT, 3, movetoworkspace, 3 + bind = $mod SHIFT, 4, movetoworkspace, 4 + bind = $mod SHIFT, 5, movetoworkspace, 5 + bind = $mod SHIFT, 6, movetoworkspace, 6 + bind = $mod SHIFT, 7, movetoworkspace, 7 + bind = $mod SHIFT, 8, movetoworkspace, 8 + bind = $mod SHIFT, 9, movetoworkspace, 9 + bind = $mod SHIFT, 0, movetoworkspace, 10 - decoration { - # See https://wiki.hyprland.org/Configuring/Variables/ for more + general { + gaps_in = 0 + gaps_out = 0 + border_size = 1 + col.active_border = rgba(AF8D61FF) rgba(CEB153FF) rgba(7B8387FF) 45deg + col.inactive_border = rgba(AF8D6166) + } - rounding = 2 - # blur = true - # blur_size = 8 - # blur_passes = 1 - # blur_new_optimizations = true + decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more - drop_shadow = true - shadow_range = 4 - shadow_render_power = 3 - col.shadow = rgba(a8cfee11) - } + rounding = 2 + # blur = true + # blur_size = 8 + # blur_passes = 1 + # blur_new_optimizations = true - animations { - enabled = true + drop_shadow = true + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(a8cfee11) + } - # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + animations { + enabled = true - bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more - animation = windows, 1, 3, myBezier - animation = windowsOut, 1, 3, default, popin 80% - animation = border, 1, 5, default - animation = borderangle, 1, 4, default - animation = fade, 1, 3, default - animation = workspaces, 1, 3, default - } + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 3, myBezier + animation = windowsOut, 1, 3, default, popin 80% + animation = border, 1, 5, default + animation = borderangle, 1, 4, default + animation = fade, 1, 3, default + animation = workspaces, 1, 3, default + } ''; }; } diff --git a/hmModules/nix-index/default.nix b/hmModules/nix-index/default.nix index 0841b81..726d997 100644 --- a/hmModules/nix-index/default.nix +++ b/hmModules/nix-index/default.nix @@ -13,7 +13,7 @@ Service = { CPUSchedulingPolicy = "idle"; IOSchedulingClass = "idle"; - ExecStart = "${pkgs.nix-index}/bin/nix-index --nixpkgs ${fleetFlake.inputs.nixpkgsUnstable}"; + ExecStart = "${pkgs.nix-index}/bin/nix-index --nixpkgs ${fleetFlake.inputs.nixpkgs}"; }; }; diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 9607807..9c1ca0f 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -1,9 +1,7 @@ { - config, lib, pkgs, age, - fleetFlake, hostname, ... }: { @@ -31,6 +29,24 @@ controlMaster = "auto"; }; + systemd.user.services.atuind = { + Unit.Description = "Atuin daemon"; + Install = {WantedBy = ["default.target"];}; + Service.ExecStart = "${lib.getExe pkgs.atuin} daemon"; + }; + + programs.atuin = { + enable = true; + settings = { + daemon.enabled = true; + auto_sync = true; + sync_frequency = "5m"; + sync_address = "http://sisko.fleet:8889"; + search_mode = "fuzzy"; + style = "compact"; + }; + }; + # programs.starship = { # enable = false; # settings = { @@ -222,10 +238,10 @@ nix-zsh-completions comma carapace # used by nushell + neovim ] ++ (lib.optionals (builtins.elem hostname ["kirk" "picard"]) [ - nil # TODO probably not best place - (fleetFlake.inputs.nixd.packages.${pkgs.system}.nixd) # TODO probably not best place + nixd # TODO probably not the best place terraform-lsp # TODO probably not best place python3Packages.jedi-language-server # TODO probably not best place nodePackages.typescript-language-server # TODO probably not best place diff --git a/hmModules/spotify/default.nix b/hmModules/spotify/default.nix index db39efa..fb7c2e7 100644 --- a/hmModules/spotify/default.nix +++ b/hmModules/spotify/default.nix @@ -1,7 +1,11 @@ -{pkgs, ...}: let - spotify-adblock = pkgs.nur.repos.nltch.spotify-adblock; +{ + lib, + pkgs, + ... +}: let + spotify-adblocked = pkgs.callPackage ../../packages/spotify-adblocked {}; in { - home.packages = [spotify-adblock]; + home.packages = [spotify-adblocked]; systemd.user.services.spotify-adblocked = { Install.WantedBy = ["graphical-session.target"]; @@ -12,7 +16,7 @@ in { }; Service = { - ExecStart = "${spotify-adblock}/bin/spotify"; + ExecStart = lib.getExe spotify-adblocked; Restart = "on-failure"; RestartSec = 3; }; diff --git a/hmModules/sway/default.nix b/hmModules/sway/default.nix index 1b80b13..af49d1c 100644 --- a/hmModules/sway/default.nix +++ b/hmModules/sway/default.nix @@ -30,7 +30,7 @@ font.name = "Sans,Symbols Nerd Font"; iconTheme = { name = "Adwaita"; - package = pkgs.gnome.adwaita-icon-theme; + package = pkgs.adwaita-icon-theme; }; }; diff --git a/hmModules/swayidle/default.nix b/hmModules/swayidle/default.nix index b0eb01b..bc26718 100644 --- a/hmModules/swayidle/default.nix +++ b/hmModules/swayidle/default.nix @@ -4,17 +4,6 @@ ... }: { services.swayidle = let - # Downgraded due to - # https://github.com/mortie/swaylock-effects/issues/95 - # swaylock-effects = pkgs.swaylock-effects.overrideAttrs (_: { - # version = "jirutka-master"; - # src = pkgs.fetchFromGitHub { - # owner = "jirutka"; - # repo = "swaylock-effects"; - # rev = "7c5681ce96587ce3090c6698501faeccdfdc157d"; - # sha256 = "sha256-09Kq90wIIF9lPjiY2anf9MSgi/EqeXKXW1mFmhxA/aM"; - # }; - # }); swaylockWithArgs = pkgs.writeScriptBin "swaylockWithArgs" '' ${pkgs.swaylock-effects}/bin/swaylock \ --daemonize \ @@ -30,7 +19,6 @@ --line-color 00000000 \ --inside-color 00000088 \ --separator-color 00000000 \ - --grace 2 \ --fade-in 0.2 ''; swaylockCommand = "${swaylockWithArgs}/bin/swaylockWithArgs"; diff --git a/hmModules/tremotesf/default.nix b/hmModules/tremotesf/default.nix new file mode 100644 index 0000000..37c75d9 --- /dev/null +++ b/hmModules/tremotesf/default.nix @@ -0,0 +1,21 @@ +{ + pkgs, + lib, + ... +}: { + home.packages = [pkgs.tremotesf]; + + systemd.user.services.tremotesf = { + Install.WantedBy = ["graphical-session.target"]; + + Unit = { + Description = "tremotesf"; + }; + + Service = { + ExecStart = "${lib.getExe pkgs.tremotesf} --minimized"; + Restart = "on-failure"; + RestartSec = 3; + }; + }; +} diff --git a/hmModules/vscode-server/default.nix b/hmModules/vscode-server/default.nix new file mode 100644 index 0000000..9c8dd7e --- /dev/null +++ b/hmModules/vscode-server/default.nix @@ -0,0 +1,6 @@ +{ + services.vscode-server = { + enable = true; + enableFHS = true; + }; +} diff --git a/hmModules/waybar/default.nix b/hmModules/waybar/default.nix index e654892..f7ac1be 100644 --- a/hmModules/waybar/default.nix +++ b/hmModules/waybar/default.nix @@ -1,7 +1,6 @@ { pkgs, lib, - fleetFlake, ... }: { programs.waybar = { diff --git a/hmModules/zmkbatx/default.nix b/hmModules/zmkbatx/default.nix index 3c6b6ec..64771fc 100644 --- a/hmModules/zmkbatx/default.nix +++ b/hmModules/zmkbatx/default.nix @@ -6,11 +6,10 @@ home.packages = [pkgs.zmkBATx]; systemd.user.services.zmkBATx = { - Install.WantedBy = ["graphical-session.target"]; + Install.WantedBy = ["graphical-session.target" "waybar.service"]; Unit = { Description = "zmkBATx"; - PartOf = ["graphical-session.target"]; }; Service = { diff --git a/hosts/default.nix b/hosts/default.nix index 198b282..a96b64b 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -80,7 +80,7 @@ in builtins.getFlake "github:NixOS/nixpkgs/${rev}"; extraHmModules = [ - inputs.ccrEmacs.hmModules.default + # inputs.ccrEmacs.hmModules.default ]; vpn = { ip = "10.100.0.5"; @@ -107,7 +107,7 @@ inputs.lix-module.nixosModules.default ]; extraHmModules = [ - inputs.ccrEmacs.hmModules.default + # inputs.ccrEmacs.hmModules.default "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" ]; secrets = { @@ -132,8 +132,9 @@ # inputs.hercules-ci-agent.nixosModules.agent-service ]; extraHmModules = [ - inputs.ccrEmacs.hmModules.default + # inputs.ccrEmacs.hmModules.default "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" + inputs.vscode-server.nixosModules.home ]; secrets = { "picard-wireguard-private-key" = {}; @@ -159,7 +160,6 @@ }; extraModules = with inputs; [ disko.nixosModules.disko - arion.nixosModules.arion impermanence.nixosModules.impermanence # lix-module.nixosModules.default # inputs.hercules-ci-agent.nixosModules.agent-service; diff --git a/hosts/deltaflyer/default.nix b/hosts/deltaflyer/default.nix index afef6f0..915f695 100644 --- a/hosts/deltaflyer/default.nix +++ b/hosts/deltaflyer/default.nix @@ -1,9 +1,7 @@ { fleetModules, - config, lib, pkgs, - fleetFlake, ... }: { imports = diff --git a/hosts/module.nix b/hosts/module.nix index 3c26ae6..cfc1bdd 100644 --- a/hosts/module.nix +++ b/hosts/module.nix @@ -28,7 +28,7 @@ in { nixpkgs = lib.mkOption { description = "Used nixpkgs"; type = lib.types.anything; - default = inputs.nixpkgsUnstable; + default = inputs.nixpkgs; }; extraModules = lib.mkOption { description = "Extra NixOS modules"; @@ -64,7 +64,7 @@ in { nixpkgs = lib.mkOption { description = "Used nixpkgs"; type = lib.types.anything; - default = inputs.nixpkgsUnstable; + default = inputs.nixpkgs; }; extraModules = lib.mkOption { description = "Extra NixOS modules"; @@ -101,7 +101,7 @@ in { nixpkgs = lib.mkOption { description = "Used nixpkgs"; type = lib.types.anything; - default = inputs.nixpkgsUnstable; + default = inputs.nixpkgs; }; homeManager = lib.mkOption { description = "Used home-manager"; @@ -174,11 +174,7 @@ in { default = "ccr"; }; }; - config.overlays = with inputs; - [ - nur.overlay - ] - ++ cfg.overlays; + config.overlays = with inputs; cfg.overlays; })); default = {}; }; @@ -260,7 +256,6 @@ in { fleetHmModules = builtins.map (moduleName: "${self.outPath}/hmModules/${moduleName}"); fleetFlake = self; vpn = cfg.vpnExtra // (lib.mapAttrs (_: host: host.vpn) cfg.hosts); - inherit (flakePartsArgs.config.allSystems.${config.system}.allModuleArgs.config._module.args) inputs'; }; }; }; @@ -291,7 +286,7 @@ in { internal = true; default = hostname: config: inputs.nix-on-droid.lib.nixOnDroidConfiguration { - pkgs = inputs.nixpkgsUnstable.legacyPackages.aarch64-linux; + pkgs = inputs.nixpkgs.legacyPackages.aarch64-linux; modules = [ ({ lib, diff --git a/hosts/mothership/default.nix b/hosts/mothership/default.nix index ea4a2bb..5b0562f 100644 --- a/hosts/mothership/default.nix +++ b/hosts/mothership/default.nix @@ -71,13 +71,6 @@ environment.systemPackages = with pkgs; [waypipe]; - home-manager.users.ccr.gtk = { - enable = true; - iconTheme = { - name = "Adwaita"; - package = pkgs.gnome.adwaita-icon-theme; - }; - }; programs.dconf.enable = true; programs.mosh.enable = true; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 5337448..01dfa6f 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -29,7 +29,6 @@ "printing" "pam" "wireguard-client" - "restic" "binfmt" "greetd" # "syncthing" @@ -37,7 +36,7 @@ "forgejo-runners" "teamviewer" # "macos-ventura" - # "sunshine" + "sunshine" "mount-rock5b" "adb" "guix" @@ -58,7 +57,8 @@ "shell" "element" "zmkbatx" - "emacs" + "tremotesf" + # "emacs" "firefox" "gpg" "mpv" @@ -83,6 +83,7 @@ "obs-studio" "calibre" "reinstall-magisk-on-lineage" + "vscode-server" ]; extraGroups = []; backupPaths = []; @@ -104,7 +105,18 @@ "i2c-dev" # needed? ]; - boot.extraModulePackages = [config.boot.kernelPackages.ddcci-driver]; + # https://github.com/NixOS/nixpkgs/issues/328909 + boot.extraModulePackages = [ + (config.boot.kernelPackages.ddcci-driver.overrideAttrs (old: { + patches = []; + src = pkgs.fetchFromGitLab { + owner = "${old.pname}-linux"; + repo = "${old.pname}-linux"; + rev = "7853cbfc28bc62e87db79f612568b25315397dd0"; + hash = "sha256-QImfvYzMqyrRGyrS6I7ERYmteaTijd8ZRnC6+bA9OyM="; + }; + })) + ]; systemd.services.ddcci = { serviceConfig.Type = "oneshot"; diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index a4fead7..b685f19 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -37,17 +37,18 @@ "garmin-collector" "restic" # "immich" + "atuin" ] ++ [ ./disko.nix ]; # boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_8; - # boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_testing; - boot.kernelPackages = let - pkgs = fleetFlake.inputs.nixpkgsUnstableForSisko.legacyPackages.aarch64-linux; - in - pkgs.linuxPackagesFor pkgs.linux_testing; + boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_6_10; + # boot.kernelPackages = let + # pkgs = fleetFlake.inputs.nixpkgsForSisko.legacyPackages.aarch64-linux; + # in + # pkgs.linuxPackagesFor pkgs.linux_testing; # boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux_6_9.override { # argsOverride = { # src = pkgs.fetchFromGitLab { diff --git a/modules/atuin/default.nix b/modules/atuin/default.nix new file mode 100644 index 0000000..ebbefef --- /dev/null +++ b/modules/atuin/default.nix @@ -0,0 +1,14 @@ +{config, ...}: { + services.atuin = { + enable = true; + openFirewall = false; # use only in the VPN + port = 8889; + host = "0.0.0.0"; + openRegistration = true; + }; + networking.firewall.interfaces."wg0" = { + allowedTCPPorts = [ + config.services.atuin.port + ]; + }; +} diff --git a/modules/auto-upgrade/default.nix b/modules/auto-upgrade/default.nix index 510d43d..72cd5c9 100644 --- a/modules/auto-upgrade/default.nix +++ b/modules/auto-upgrade/default.nix @@ -7,10 +7,10 @@ system.autoUpgrade = { enable = false; flake = "github:aciceri/nixfleet#${config.networking.hostName}"; - flags = - lib.lists.optional - (builtins.hasAttr "ccrEmacs" options) - ["--update-input" "ccrEmacs" "ccrEmacs"]; + # flags = + # lib.lists.optional + # (builtins.hasAttr "ccrEmacs" options) + # ["--update-input" "ccrEmacs" "ccrEmacs"]; dates = "daily"; allowReboot = false; }; diff --git a/modules/forgejo-runners/default.nix b/modules/forgejo-runners/default.nix index 9c91dbf..28b4c35 100644 --- a/modules/forgejo-runners/default.nix +++ b/modules/forgejo-runners/default.nix @@ -1,14 +1,13 @@ # heavily based on https://discourse.nixos.org/t/gitea-nix-actions-runner-setup/35279 { config, - inputs', pkgs, lib, ... }: let storeDeps = pkgs.runCommand "store-deps" {} '' mkdir -p $out/bin - for dir in ${toString [pkgs.coreutils pkgs.findutils pkgs.gnugrep pkgs.gawk pkgs.git pkgs.nix pkgs.bash pkgs.jq pkgs.nodejs inputs'.nix-fast-build.packages.nix-fast-build pkgs.curl pkgs.tea]}; do + for dir in ${with pkgs; builtins.toString [coreutils findutils gnugrep gawk git nix bash jq nodejs nix-fast-build curl tea]}; do for bin in "$dir"/bin/*; do ln -s "$bin" "$out/bin/$(basename "$bin")" done diff --git a/modules/greetd/default.nix b/modules/greetd/default.nix index 47e5f2b..d8ee546 100644 --- a/modules/greetd/default.nix +++ b/modules/greetd/default.nix @@ -13,6 +13,15 @@ Exec=Hyprland ''; }) + (pkgs.writeTextFile { + name = "xorg-session.desktop"; + destination = "/cosmic-session.desktop"; + text = '' + [Desktop Entry] + Name=Cosmic + Exec=cosmic-session + ''; + }) ]; in { services.greetd = { diff --git a/modules/home-assistant/default.nix b/modules/home-assistant/default.nix index 1ffe137..efab59b 100644 --- a/modules/home-assistant/default.nix +++ b/modules/home-assistant/default.nix @@ -27,53 +27,12 @@ rev = "d42edcabc67ba6a7f960e849c8aaec1aabef87c0"; hash = "sha256-KqbP6TpH9B0/AjtsW5TcWSNgUhND+w8rO6X8fHqtsDI="; }; - tuya-device-sharing-sdk = ps: - ps.callPackage ( - { - lib, - buildPythonPackage, - fetchPypi, - requests, - paho-mqtt, - cryptography, - }: let - pname = "tuya-device-sharing-sdk"; - version = "0.2.0"; - in - buildPythonPackage { - inherit pname version; - - src = fetchPypi { - inherit pname version; - hash = "sha256-fu8zh59wlnxtstNbNL8mIm10tiXy22oPbi6oUy5x8c8="; - }; - - postPatch = '' - touch requirements.txt - ''; - - doCheck = false; - - propagatedBuildInputs = [ - requests - paho-mqtt - cryptography - ]; - - meta = with lib; { - description = "Tuya Device Sharing SDK"; - homepage = "https://github.com/tuya/tuya-device-sharing-sdk"; - license = licenses.mit; - maintainers = with maintainers; [aciceri]; - }; - } - ) {}; in { services.home-assistant = { enable = true; openFirewall = true; package = pkgs.home-assistant.overrideAttrs (old: { - # doInstallCheck = false; + doInstallCheck = false; # prePatch = # '' # rm -rf homeassistant/components/smartthings @@ -107,7 +66,7 @@ in { # used by pun_sensor holidays beautifulsoup4 - (tuya-device-sharing-sdk python3Packages) # remove after https://github.com/NixOS/nixpkgs/pull/294706/ + tuya-device-sharing-sdk getmac garminconnect tzlocal diff --git a/modules/immich/default.nix b/modules/immich/default.nix index 54e0a9f..61ee117 100644 --- a/modules/immich/default.nix +++ b/modules/immich/default.nix @@ -1,221 +1,23 @@ -# { lib, pkgs, config, ... }: -# let -# immichRoot = "/mnt/hd/immich"; -# immichData = "${immichRoot}/data"; -# # immichVersion = "v1.105.1"; -# immichVersion = "v1.105.1"; -# sharedEnv = { -# # You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables -# # The location where your uploaded files are stored -# UPLOAD_LOCATION="./library"; -# DB_DATA_LOCATION="./postgres"; -# IMMICH_VERSION=immichVersion; -# DB_PASSWORD="postgres"; -# DB_USERNAME="postgres"; -# DB_DATABASE_NAME="immich"; -# DB_HOSTNAME="postgres"; -# REDIS_HOSTNAME = "redis"; -# }; -# postgresRoot = "${immichRoot}/pgsql"; -# machineLearning = "${immichRoot}/ml-cache"; -# in { -# systemd.tmpfiles.rules = [ -# "d ${immichRoot} 770 ccr wheel" -# "d ${immichData} 770 ccr wheel" -# "d ${postgresRoot} 770 ccr wheel" -# "d ${machineLearning} 770 ccr wheel" -# ]; -# virtualisation.docker.enable = lib.mkForce false; -# virtualisation.podman.enable = lib.mkForce true; -# virtualisation.podman.dockerSocket.enable = lib.mkForce true; -# virtualisation.podman.defaultNetwork.settings.dns_enabled = lib.mkForce true; -# networking.firewall.interfaces."podman+".allowedUDPPorts = [53 5353]; -# environment.systemPackages = [ -# pkgs.arion -# ]; -# virtualisation.arion = { -# backend = lib.mkForce "podman-socket"; -# projects.immich = { -# serviceName = "immich"; -# settings = { -# project.name = "immich"; -# networks.default = { -# name = "immich"; -# }; -# services = { -# "server" = { -# service = { -# image = "ghcr.io/immich-app/immich-server:${immichVersion}"; -# container_name = "server"; -# command = ["start.sh" "immich"]; -# environment = sharedEnv // { -# # NODE_ENV = "production"; -# }; -# ports = [ -# "2283:3001" -# ]; -# volumes = [ -# "${immichData}:/usr/src/app/upload:rw" -# "/etc/localtime:/etc/localtime:ro" -# ]; -# depends_on = ["redis" "postgres"]; -# restart = "always"; -# }; -# }; -# "microservices" = { -# service = { -# image = "ghcr.io/immich-app/immich-server:${immichVersion}"; -# container_name = "microservices"; -# command = ["start.sh" "microservices"]; -# environment = sharedEnv; -# volumes = ["${immichData}:/usr/src/app/upload:rw"]; -# depends_on = ["redis" "postgres"]; -# restart = "always"; -# }; -# }; -# "machine_learning" = { -# service = { -# image = "ghcr.io/immich-app/immich-machine-learning:${immichVersion}"; -# container_name = "machine_learning"; -# volumes = [ -# "${machineLearning}:/cache" -# ]; -# restart = "always"; -# environment = sharedEnv // { -# # NODE_ENV = "production"; -# }; -# }; -# }; -# "redis" = { -# service = { -# image = "docker.io/redis:6.2-alpine"; -# container_name = "redis"; -# restart = "always"; -# tmpfs = ["/data"]; -# }; -# }; -# "postgres" = { -# service = { -# image = "docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0"; -# container_name = "postgres"; -# volumes = [ -# "${postgresRoot}:/var/lib/postgresql/data" -# ]; -# restart = "always"; -# environment = { -# POSTGRES_PASSWORD = sharedEnv.DB_PASSWORD; -# POSTGRES_USER = sharedEnv.DB_USERNAME; -# POSTGRES_DB = sharedEnv.DB_DATABASE_NAME; -# POSTGRES_INITDB_ARGS = "--data-checksums"; -# }; -# }; -# }; -# }; -# }; -# }; -# }; -# } {config, ...}: let - immichHost = "immich.example.com"; # TODO: put your immich domain name here - - immichRoot = "/mnt/hd/immich"; # TODO: Tweak these to your desired storage locations - immichPhotos = "${immichRoot}/photos"; - immichAppdataRoot = "${immichRoot}/appdata"; - immichVersion = "release"; - # immichExternalVolume1 = "/tank/BackupData/Google Photos/someone@example.com"; # TODO: if external volumes are desired - - postgresRoot = "${immichAppdataRoot}/pgsql"; - postgresPassword = "immich"; # TODO: put a random password here - postgresUser = "immich"; - postgresDb = "immich"; + nixpkgsImmich = builtins.getFlake "github:NixOS/nixpkgs/c0ee4c1770aa1ef998c977c4cc653a07ec95d9bf"; in { - # The primary source for this configuration is the recommended docker-compose installation of immich from - # https://immich.app/docs/install/docker-compose, which linkes to: - # - https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml - # - https://github.com/immich-app/immich/releases/latest/download/example.env - # and has been transposed into nixos configuration here. Those upstream files should probably be checked - # for serious changes if there are any upgrade problems here. - # - # After initial deployment, these in-process configurations need to be done: - # - create an admin user by accessing the site - # - login with the admin user - # - set the "Machine Learning Settings" > "URL" to http://immich_machine_learning:3003 - - virtualisation.oci-containers.containers.immich_server = { - image = "ghcr.io/immich-app/immich-server:${immichVersion}"; - ports = ["127.0.0.1:2283:3001"]; - extraOptions = [ - "--pull=newer" - # Force DNS resolution to only be the podman dnsname name server; by default podman provides a resolv.conf - # that includes both this server and the upstream system server, causing resolutions of other pod names - # to be inconsistent. - "--dns=10.88.0.1" - ]; - cmd = ["start.sh" "immich"]; - environment = { - IMMICH_VERSION = immichVersion; - DB_HOSTNAME = "immich_postgres"; - DB_USERNAME = postgresUser; - DB_DATABASE_NAME = postgresDb; - DB_PASSWORD = postgresPassword; - REDIS_HOSTNAME = "immich_redis"; + containers.nextcloud = { + nixpkgs = nixpkgsImmich; + autoStart = true; + privateNetwork = true; + # hostAddress = "192.168.100.10"; + # localAddress = "192.168.100.11"; + # hostAddress6 = "fc00::1"; + # localAddress6 = "fc00::2"; + config = { + config, + pkgs, + lib, + ... + }: { + services.immich = { + enable = true; + }; }; - volumes = [ - "${immichPhotos}:/usr/src/app/upload" - "/etc/localtime:/etc/localtime:ro" - # "${immichExternalVolume1}:${immichExternalVolume1}:ro" - ]; - }; - - virtualisation.oci-containers.containers.immich_microservices = { - image = "ghcr.io/immich-app/immich-server:${immichVersion}"; - extraOptions = [ - "--pull=newer" - # Force DNS resolution to only be the podman dnsname name server; by default podman provides a resolv.conf - # that includes both this server and the upstream system server, causing resolutions of other pod names - # to be inconsistent. - "--dns=10.88.0.1" - ]; - cmd = ["start.sh" "microservices"]; - environment = { - IMMICH_VERSION = immichVersion; - DB_HOSTNAME = "immich_postgres"; - DB_USERNAME = postgresUser; - DB_DATABASE_NAME = postgresDb; - DB_PASSWORD = postgresPassword; - REDIS_HOSTNAME = "immich_redis"; - }; - volumes = [ - "${immichPhotos}:/usr/src/app/upload" - "/etc/localtime:/etc/localtime:ro" - # "${immichExternalVolume}1:${immichExternalVolume1}:ro" - ]; - }; - - virtualisation.oci-containers.containers.immich_machine_learning = { - image = "ghcr.io/immich-app/immich-machine-learning:${immichVersion}"; - extraOptions = ["--pull=newer"]; - environment = { - IMMICH_VERSION = immichVersion; - }; - volumes = [ - "${immichAppdataRoot}/model-cache:/cache" - ]; - }; - - virtualisation.oci-containers.containers.immich_redis = { - image = "redis:6.2-alpine@sha256:80cc8518800438c684a53ed829c621c94afd1087aaeb59b0d4343ed3e7bcf6c5"; - }; - - virtualisation.oci-containers.containers.immich_postgres = { - image = "tensorchord/pgvecto-rs:pg14-v0.1.11"; - environment = { - POSTGRES_PASSWORD = postgresPassword; - POSTGRES_USER = postgresUser; - POSTGRES_DB = postgresDb; - }; - volumes = [ - "${postgresRoot}:/var/lib/postgresql/data" - ]; }; } diff --git a/modules/nix/default.nix b/modules/nix/default.nix index f42df36..737eb63 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -32,12 +32,13 @@ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M=" ]; + # deprecated-features = [ "url-literals" ]; }; - nixPath = ["nixpkgs=${fleetFlake.inputs.nixpkgsUnstable}"]; + nixPath = ["nixpkgs=${fleetFlake.inputs.nixpkgs}"]; extraOptions = '' - experimental-features = nix-command flakes ca-derivations impure-derivations + experimental-features = nix-command flakes impure-derivations builders-use-substitutes = true ''; @@ -50,19 +51,11 @@ registry = lib.mkForce ({ nixpkgs.to = { type = "path"; - path = fleetFlake.inputs.nixpkgsUnstable; - }; - nixpkgsUnstable.to = { - type = "path"; - path = fleetFlake.inputs.nixpkgsUnstable; - }; - nixpkgsStable.to = { - type = "path"; - path = fleetFlake.inputs.nixpkgsStable; + path = fleetFlake.inputs.nixpkgs; }; n.to = { type = "path"; - path = fleetFlake.inputs.nixpkgsUnstable; + path = fleetFlake.inputs.nixpkgs; }; } // (lib.optionalAttrs (builtins.hasAttr "ccr" config) { @@ -92,11 +85,11 @@ sshKey = "/home/${config.ccr.username}/.ssh/id_rsa"; } ++ (lib.lists.optional (config.networking.hostName == "picard") { - hostName = "mac.staging.mlabs.city"; + hostName = "mac.staging.mlabs.city?remote-program=/run/current-system/sw/bin/nix-store"; system = "x86_64-darwin"; maxJobs = 4; supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark"]; - protocol = "ssh-ng"; + protocol = "ssh"; sshUser = "root"; sshKey = "/home/${config.ccr.username}/.ssh/id_rsa"; }); diff --git a/modules/pipewire/default.nix b/modules/pipewire/default.nix index 334c6ea..b2d9a1b 100644 --- a/modules/pipewire/default.nix +++ b/modules/pipewire/default.nix @@ -1,3 +1,7 @@ -{ +{lib, ...}: { services.pipewire.enable = true; + + hardware.pulseaudio = { + enable = lib.mkForce false; + }; } diff --git a/modules/prometheus-exporters/default.nix b/modules/prometheus-exporters/default.nix index 7a55821..f183852 100644 --- a/modules/prometheus-exporters/default.nix +++ b/modules/prometheus-exporters/default.nix @@ -8,7 +8,7 @@ mkFor = hosts: lib.mkIf (builtins.elem hostname hosts); in { services.prometheus.exporters = { - node = mkFor ["sisko" "picard"] { + node = mkFor ["sisko" "picard" "kirk"] { enable = true; enabledCollectors = [ "cpu" @@ -34,10 +34,10 @@ in { ]; extraFlags = ["--collector.ethtool" "--collector.softirqs" "--collector.tcpstat" "--collector.wifi"]; }; - wireguard = mkFor ["sisko" "picard"] { + wireguard = mkFor ["sisko" "picard" "kirk"] { enable = true; }; - zfs = mkFor ["picard"] { + zfs = mkFor ["picard" "kirk"] { enable = true; }; # restic = mkFor ["sisko"] { @@ -49,7 +49,7 @@ in { nginx = mkFor ["sisko"] { enable = true; }; - smartctl = mkFor ["sisko" "picard"] { + smartctl = mkFor ["sisko" "picard" "kirk"] { enable = true; }; }; diff --git a/modules/prometheus/default.nix b/modules/prometheus/default.nix index c35b04e..cd52e90 100644 --- a/modules/prometheus/default.nix +++ b/modules/prometheus/default.nix @@ -35,7 +35,7 @@ in { job_name = "node"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9100") ["sisko" "picard"]; + targets = builtins.map (host: "${host}.fleet:9100") ["sisko" "picard" "kirk"]; } ]; } @@ -43,7 +43,7 @@ in { job_name = "wireguard"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9586") ["picard"]; + targets = builtins.map (host: "${host}.fleet:9586") ["picard" "kirk"]; } ]; } @@ -51,7 +51,7 @@ in { job_name = "zfs"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9134") ["picard"]; + targets = builtins.map (host: "${host}.fleet:9134") ["picard" "kirk"]; } ]; } @@ -83,7 +83,7 @@ in { job_name = "smartctl"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9633") ["sisko"]; + targets = builtins.map (host: "${host}.fleet:9633") ["sisko" "kirk" "picard"]; } ]; } diff --git a/modules/rock5b-samba/default.nix b/modules/rock5b-samba/default.nix index e33b2b7..e26c8b8 100644 --- a/modules/rock5b-samba/default.nix +++ b/modules/rock5b-samba/default.nix @@ -10,17 +10,17 @@ samba = { enable = true; securityType = "user"; - extraConfig = '' - workgroup = WORKGROUP - server string = rock5b - netbios name = rock5b - security = user - map to guest = bad user - vfs objects = recycle - recycle:repository = .recycle - recycle:keeptree = yes - recycle:versions = yes - ''; + settings.global = { + "workgroup" = "WORKGROUP"; + "server string" = "rock5b"; + "netbios name" = "rock5b"; + "security" = "user"; + "map to guest" = "bad user"; + "vfs objects" = "recycle"; + "recycle:repository" = ".recycle"; + "recycle:keeptree" = "yes"; + "recycle:versions" = "yes"; + }; shares = { torrent = { path = "/mnt/hd/torrent"; diff --git a/modules/sunshine/default.nix b/modules/sunshine/default.nix index c420ee3..8913ed1 100644 --- a/modules/sunshine/default.nix +++ b/modules/sunshine/default.nix @@ -1,21 +1,13 @@ { - services.xserver = { + services.sunshine = { enable = true; - videoDrivers = ["amdgpu"]; - - # displayManager.gdm.enable = true; - # displayManager.defaultSession = "gnome"; - - # displayManager.autoLogin.enable = true; - # displayManager.autoLogin.user = "sunshine"; # user must exists - - # desktopManager.gnome.enable = true; + autoStart = true; + capSysAdmin = true; + openFirewall = true; }; - - users.users.sunshine = { - isSystemUser = true; - group = "sunshine"; + hardware = { + bluetooth.input.General = { + ClassicBondedOnly = false; + }; }; - - users.groups.sunshine = {}; } diff --git a/modules/transmission/default.nix b/modules/transmission/default.nix index 79f12b3..c1bcc3d 100644 --- a/modules/transmission/default.nix +++ b/modules/transmission/default.nix @@ -45,4 +45,8 @@ ]; ccr.extraGroups = ["transmission"]; + + environment.persistence."/persist".directories = [ + config.services.transmission.home + ]; } diff --git a/packages/default.nix b/packages/default.nix index d501506..9aedeba 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -19,7 +19,6 @@ type = lib.types.listOf overlayType; default = with inputs; [ agenix.overlays.default - nur.overlay (final: _: { inherit (disko.packages.${final.system}) disko; inherit (self.packages.${final.system}) deploy; @@ -46,7 +45,7 @@ _module.args.pkgs = lib.foldl (legacyPackages: legacyPackages.extend) - inputs.nixpkgsUnstable.legacyPackages.${system} + inputs.nixpkgs.legacyPackages.${system} config.fleet.overlays; packages = diff --git a/packages/spotify-adblocked/default.nix b/packages/spotify-adblocked/default.nix new file mode 100644 index 0000000..18cb8c5 --- /dev/null +++ b/packages/spotify-adblocked/default.nix @@ -0,0 +1,53 @@ +{ + spotify, + rustPlatform, + fetchFromGitHub, + zip, + unzip, +}: let + spotify-adblock = rustPlatform.buildRustPackage { + pname = "spotify-adblock"; + version = "1.0.3"; + src = fetchFromGitHub { + owner = "abba23"; + repo = "spotify-adblock"; + rev = "5a3281dee9f889afdeea7263558e7a715dcf5aab"; + hash = "sha256-UzpHAHpQx2MlmBNKm2turjeVmgp5zXKWm3nZbEo0mYE="; + }; + cargoSha256 = "sha256-wPV+ZY34OMbBrjmhvwjljbwmcUiPdWNHFU3ac7aVbIQ="; + + patchPhase = '' + substituteInPlace src/lib.rs \ + --replace-fail 'config.toml' $out/etc/spotify-adblock/config.toml + ''; + + buildPhase = '' + make + ''; + + installPhase = '' + mkdir -p $out/etc/spotify-adblock + install -D --mode=644 config.toml $out/etc/spotify-adblock + mkdir -p $out/lib + install -D --mode=644 --strip target/release/libspotifyadblock.so $out/lib + ''; + }; +in + spotify.overrideAttrs ( + old: { + buildInputs = (old.buildInputs or []) ++ [zip unzip]; + postInstall = + (old.postInstall or "") + + '' + ln -s ${spotify-adblock}/lib/libspotifyadblock.so $libdir + sed -i "s:^Name=Spotify.*:Name=Spotify-adblock:" "$out/share/spotify/spotify.desktop" + wrapProgram $out/bin/spotify \ + --set LD_PRELOAD "${spotify-adblock}/lib/libspotifyadblock.so" + + # Hide placeholder for advert banner + ${unzip}/bin/unzip -p $out/share/spotify/Apps/xpui.spa xpui.js | sed 's/adsEnabled:\!0/adsEnabled:false/' > $out/share/spotify/Apps/xpui.js + ${zip}/bin/zip --junk-paths --update $out/share/spotify/Apps/xpui.spa $out/share/spotify/Apps/xpui.js + rm $out/share/spotify/Apps/xpui.js + ''; + } + )