diff --git a/Justfile b/Justfile index 769b712..4f5a40c 100755 --- a/Justfile +++ b/Justfile @@ -2,6 +2,9 @@ FLAKE_HOME := justfile_directory() DEFAULT_SPECIALISATION := "default" +DEFAULT_KEEP_SINCE := "1w" +DEFAULT_USER := env('USER') +DEFAULT_HOST := shell('hostname') default: @just --list @@ -18,15 +21,27 @@ build specialisation=DEFAULT_SPECIALISATION: deploy host: deploy {{ FLAKE_HOME }}#{{ host }} -clean keep_since="1w": - nh clean all --verbose -K {{ keep_since }} -k 5 +clean keepSince=DEFAULT_KEEP_SINCE: + nh clean all --verbose -K {{ keepSince }} -k 5 health: nix --accept-flake-config run github:juspay/nix-health +switchHome host=DEFAULT_HOST $USER=DEFAULT_USER: + @echo USER: $USER + @echo HOST: {{ host }} + nh home switch -b backup {{ if host != DEFAULT_HOST { "-c \"" + USER + "@" + host + "\"" } else { "" } }} {{ FLAKE_HOME }} + +buildHome host=DEFAULT_HOST $USER=DEFAULT_USER: + @echo USER: $USER + @echo HOST: {{ host }} + nh home build -b backup {{ if host != DEFAULT_HOST { "-c \"" + USER + "@" + host + "\"" } else { "" } }} {{ FLAKE_HOME }} + alias s := switch alias u := update alias d := deploy alias c := clean alias h := health alias b := build +alias H := switchHome +alias B := buildHome diff --git a/flake.lock b/flake.lock index 92798a5..302bc75 100644 --- a/flake.lock +++ b/flake.lock @@ -70,11 +70,11 @@ "bt-tracker": { "flake": false, "locked": { - "lastModified": 1738800660, - "narHash": "sha256-nbuJpBisr9nVlqDcY8jsUeUm2mfWUXrboMwXcauc6R0=", + "lastModified": 1740125374, + "narHash": "sha256-wv+eodEArJsVoVa3NohgNUsUMs31m1oMPqgWovUxuu4=", "owner": "XIU2", "repo": "TrackersListCollection", - "rev": "d40f6409be2d8185231cf2a218b16f2a2447de5d", + "rev": "310a64b1ce830bbbef6b5aaa6f6f031e4c6a6e2f", "type": "github" }, "original": { @@ -104,11 +104,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1736423292, - "narHash": "sha256-b4Dsf7/2A+CpfpKYEwcj5Xs9ftJpoLT80onYb0WTedw=", + "lastModified": 1740074809, + "narHash": "sha256-81CDZ0y1J1OgIblNl3HdLyuB8oxi3vN5AwP9a5t/ZGo=", "owner": "daeuniverse", "repo": "flake.nix", - "rev": "5022a7b3895d8cfa12cbb2c0db09ed4ecf0a02b8", + "rev": "c186ea01695ba98dab1b397e7a02833b9f12789e", "type": "github" }, "original": { @@ -144,11 +144,11 @@ ] }, "locked": { - "lastModified": 1738765162, - "narHash": "sha256-3Z40qHaFScWUCVQrGc4Y+RdoPsh1R/wIh+AN4cTXP0I=", + "lastModified": 1739841949, + "narHash": "sha256-lSOXdgW/1zi/SSu7xp71v+55D5Egz8ACv0STkj7fhbs=", "owner": "nix-community", "repo": "disko", - "rev": "ff3568858c54bd306e9e1f2886f0f781df307dff", + "rev": "15dbf8cebd8e2655a883b74547108e089f051bf0", "type": "github" }, "original": { @@ -160,11 +160,11 @@ "firefox-gnome-theme": { "flake": false, "locked": { - "lastModified": 1736899990, - "narHash": "sha256-S79Hqn2EtSxU4kp99t8tRschSifWD4p/51++0xNWUxw=", + "lastModified": 1739223196, + "narHash": "sha256-vAxN2f3rvl5q62gQQjZGVSvF93nAsOxntuFz+e/655w=", "owner": "rafaelmardojai", "repo": "firefox-gnome-theme", - "rev": "91ca1f82d717b02ceb03a3f423cbe8082ebbb26d", + "rev": "a89108e6272426f4eddd93ba17d0ea101c34fb21", "type": "github" }, "original": { @@ -192,11 +192,11 @@ "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "type": "github" }, "original": { @@ -256,11 +256,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", + "lastModified": 1738453229, + "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", + "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", "type": "github" }, "original": { @@ -346,11 +346,11 @@ "systems": "systems_3" }, "locked": { - "lastModified": 1705309234, - "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -379,7 +379,25 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_6" + "systems": "systems_5" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_5": { + "inputs": { + "systems": "systems_7" }, "locked": { "lastModified": 1710146030, @@ -395,7 +413,7 @@ "type": "github" } }, - "flake-utils_5": { + "flake-utils_6": { "inputs": { "systems": [ "stylix", @@ -416,6 +434,21 @@ "type": "github" } }, + "flakey-profile": { + "locked": { + "lastModified": 1712898590, + "narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=", + "owner": "lf-", + "repo": "flakey-profile", + "rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d", + "type": "github" + }, + "original": { + "owner": "lf-", + "repo": "flakey-profile", + "type": "github" + } + }, "fromYaml": { "flake": false, "locked": { @@ -435,16 +468,18 @@ "ghostty": { "inputs": { "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils_2", "nixpkgs-stable": "nixpkgs-stable", "nixpkgs-unstable": "nixpkgs-unstable", - "zig": "zig" + "zig": "zig", + "zig2nix": "zig2nix" }, "locked": { - "lastModified": 1738781852, - "narHash": "sha256-fTr3m5Ktg1vWeAbscpYS7BTjOIACXMjkG1xazeRGvAc=", + "lastModified": 1739918167, + "narHash": "sha256-6zdYjNKqMTKfHKlaz0kKqqSmoSCqEjv1vyIygqi3wCo=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "4eb588501735e2df2910b54ed0dc8ad934b5d42f", + "rev": "38908e01268298ced33b7b6835e49b8c6d437e12", "type": "github" }, "original": { @@ -528,11 +563,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1738723095, - "narHash": "sha256-5l7ghUJb++dh59VlaZlmAKDoaJgCtT7pCKP87bRNFZE=", + "lastModified": 1740074307, + "narHash": "sha256-1duOlzdBv61aLohv45urOtqqzwi3RPcG/JTtxx0V4K8=", "owner": "helix-editor", "repo": "helix", - "rev": "b0e1eaf50d01257a743b8508f9eb29b78882c403", + "rev": "0deb8bbce6f33124f3434c94c22f5177cb8caa9f", "type": "github" }, "original": { @@ -549,11 +584,11 @@ ] }, "locked": { - "lastModified": 1738789832, - "narHash": "sha256-HdlMPfObPu5y7oDfH/w3vvlU3UTQ/bQjSULChZARm5M=", + "lastModified": 1740060750, + "narHash": "sha256-FOC9OzJ5Ckh6VjzGSRh4F3UCUOdM8NrzQT19PQcQJ44=", "owner": "nix-community", "repo": "home-manager", - "rev": "30ea6fed4e4b41693cebc2263373dd810de4de49", + "rev": "0c0b0ac8af6ca76b1fcb514483a9bd73c18f1e8c", "type": "github" }, "original": { @@ -592,11 +627,11 @@ ] }, "locked": { - "lastModified": 1736785676, - "narHash": "sha256-TY0jUwR3EW0fnS0X5wXMAVy6h4Z7Y6a3m+Yq++C9AyE=", + "lastModified": 1737630279, + "narHash": "sha256-wJQCxyMRc4P26zDrHmZiRD5bbfcJpqPG3e2djdGG3pk=", "owner": "nix-community", "repo": "home-manager", - "rev": "fc52a210b60f2f52c74eac41a8647c1573d2071d", + "rev": "0db5c8bfcce78583ebbde0b2abbc95ad93445f7c", "type": "github" }, "original": { @@ -605,6 +640,43 @@ "type": "github" } }, + "lix": { + "flake": false, + "locked": { + "lastModified": 1738174211, + "narHash": "sha256-eYmp1mKM4kULV1W+EBtCPk6LmKWl2REivaYfGRl+AWo=", + "rev": "64e33a7e09a0d1faacf2fd3f6ebd647fe4d8346a", + "type": "tarball", + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/64e33a7e09a0d1faacf2fd3f6ebd647fe4d8346a.tar.gz?rev=64e33a7e09a0d1faacf2fd3f6ebd647fe4d8346a" + }, + "original": { + "type": "tarball", + "url": "https://git.lix.systems/lix-project/lix/archive/main.tar.gz" + } + }, + "lix-module": { + "inputs": { + "flake-utils": "flake-utils_4", + "flakey-profile": "flakey-profile", + "lix": "lix", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1738176840, + "narHash": "sha256-NG3IRvRs3u3btVCN861FqHvgOwqcNT/Oy6PBG86F5/E=", + "ref": "refs/heads/main", + "rev": "621aae0f3cceaffa6d73a4fb0f89c08d338d729e", + "revCount": 133, + "type": "git", + "url": "https://git.lix.systems/lix-project/nixos-module" + }, + "original": { + "type": "git", + "url": "https://git.lix.systems/lix-project/nixos-module" + } + }, "niri-flake": { "inputs": { "niri-stable": "niri-stable", @@ -615,11 +687,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1738770770, - "narHash": "sha256-nfapp7C4BbdvHTRA1HSRVYjD5Fk2FCKoyxQLzcL5X50=", + "lastModified": 1740124252, + "narHash": "sha256-s/wpy4RFcfsn5vPLC9LhMgoxdd7ReWRssWdxUgBym8s=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "83abbde7c8164ee4b42a8647e4e61015c3f45816", + "rev": "f989ca59d48550c3fd7021917647775969c26d54", "type": "github" }, "original": { @@ -648,11 +720,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1738768006, - "narHash": "sha256-56jDYr/vqX4fobMJO2nWLjih03i6UV5bKtxI0nR4ZZA=", + "lastModified": 1740117926, + "narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=", "owner": "YaLTeR", "repo": "niri", - "rev": "690d6355057ebeba03cbd8ce4905145b834c72f8", + "rev": "b94a5db8790339cf9134873d8b490be69e02ac71", "type": "github" }, "original": { @@ -673,7 +745,7 @@ "nixpkgs" ], "nixpkgs-wine": "nixpkgs-wine", - "systems": "systems_5", + "systems": "systems_6", "treefmt-nix": "treefmt-nix" }, "locked": { @@ -764,11 +836,11 @@ "nixpkgs-stable": "nixpkgs-stable_3" }, "locked": { - "lastModified": 1738805812, - "narHash": "sha256-3wupg+xSzRPUius7y29btqCR2l28GpCjwS9q83uK9uU=", + "lastModified": 1740106782, + "narHash": "sha256-T0H/uMO2Q06lz1CpN2Czxppvq9SN4McT3s/aQzKLn/k=", "owner": "lilyinstarlight", "repo": "nixos-cosmic", - "rev": "bbab2cc88af97520259c5575bf29c83bf391424c", + "rev": "4be261f1b28465016f1476beabcd67fa000b04a5", "type": "github" }, "original": { @@ -779,11 +851,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1738638143, - "narHash": "sha256-ZYMe4c4OCtIUBn5hx15PEGr0+B1cNEpl2dsaLxwY2W0=", + "lastModified": 1740089251, + "narHash": "sha256-Y78mDBWoO8CLLTjQfPfII+KXFb6lAmF9GrLbyVBsIMM=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "9bdd53f5908453e4d03f395eb1615c3e9a351f70", + "rev": "18e9f9753e9ae261bcc7d3abe15745686991fd30", "type": "github" }, "original": { @@ -795,11 +867,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1730531603, - "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", + "lastModified": 1739866667, + "narHash": "sha256-EO1ygNKZlsAC9avfcwHkKGMsmipUk1Uc0TbrEZpkn64=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", + "rev": "73cf49b8ad837ade2de76f87eb53fc85ed5d4680", "type": "github" }, "original": { @@ -827,14 +899,14 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1730504152, - "narHash": "sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s=", + "lastModified": 1738452942, + "narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" } }, "nixpkgs-lib_2": { @@ -875,11 +947,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1733423277, - "narHash": "sha256-TxabjxEgkNbCGFRHgM/b9yZWlBj60gUOUnRT/wbVQR8=", + "lastModified": 1738255539, + "narHash": "sha256-hP2eOqhIO/OILW+3moNWO4GtdJFYCqAe9yJZgvlCoDQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "e36963a147267afc055f7cf65225958633e536bf", + "rev": "c3511a3b53b482aa7547c9d1626fd7310c1de1c5", "type": "github" }, "original": { @@ -891,11 +963,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1738702386, - "narHash": "sha256-nJj8f78AYAxl/zqLiFGXn5Im1qjFKU8yBPKoWEeZN5M=", + "lastModified": 1739923778, + "narHash": "sha256-BqUY8tz0AQ4to2Z4+uaKczh81zsGZSYxjgvtw+fvIfM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "030ba1976b7c0e1a67d9716b17308ccdab5b381e", + "rev": "36864ed72f234b9540da4cf7a0c49e351d30d3f1", "type": "github" }, "original": { @@ -907,11 +979,11 @@ }, "nixpkgs-stable_3": { "locked": { - "lastModified": 1738702386, - "narHash": "sha256-nJj8f78AYAxl/zqLiFGXn5Im1qjFKU8yBPKoWEeZN5M=", + "lastModified": 1739923778, + "narHash": "sha256-BqUY8tz0AQ4to2Z4+uaKczh81zsGZSYxjgvtw+fvIfM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "030ba1976b7c0e1a67d9716b17308ccdab5b381e", + "rev": "36864ed72f234b9540da4cf7a0c49e351d30d3f1", "type": "github" }, "original": { @@ -923,11 +995,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1733229606, - "narHash": "sha256-FLYY5M0rpa5C2QAE3CKLYAM6TwbKicdRK6qNrSHlNrE=", + "lastModified": 1738136902, + "narHash": "sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "566e53c2ad750c84f6d31f9ccb9d00f823165550", + "rev": "9a5db3142ce450045840cc8d832b13b8a2018e0c", "type": "github" }, "original": { @@ -987,11 +1059,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1738680400, - "narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=", + "lastModified": 1739866667, + "narHash": "sha256-EO1ygNKZlsAC9avfcwHkKGMsmipUk1Uc0TbrEZpkn64=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "799ba5bffed04ced7067a91798353d360788b30d", + "rev": "73cf49b8ad837ade2de76f87eb53fc85ed5d4680", "type": "github" }, "original": { @@ -1003,11 +1075,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1738680400, - "narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=", + "lastModified": 1739866667, + "narHash": "sha256-EO1ygNKZlsAC9avfcwHkKGMsmipUk1Uc0TbrEZpkn64=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "799ba5bffed04ced7067a91798353d360788b30d", + "rev": "73cf49b8ad837ade2de76f87eb53fc85ed5d4680", "type": "github" }, "original": { @@ -1018,22 +1090,6 @@ } }, "nixpkgs_5": { - "locked": { - "lastModified": 1738680400, - "narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "799ba5bffed04ced7067a91798353d360788b30d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { "locked": { "lastModified": 1736798957, "narHash": "sha256-qwpCtZhSsSNQtK4xYGzMiyEDhkNzOCz/Vfu4oL2ETsQ=", @@ -1067,11 +1123,11 @@ "nur-rycee": { "flake": false, "locked": { - "lastModified": 1738814634, - "narHash": "sha256-hSSqrG5yBQBYdIT9MKKs/A0GfO468VVU7t+2+H/uMxg=", + "lastModified": 1740110615, + "narHash": "sha256-GJVXn9bgEF8zCPJvpYJvS39MUMyZkX4Ab4I6RoUKECw=", "owner": "rycee", "repo": "nur-expressions", - "rev": "fc5397f499e9a91e4368e027d1c63e30b15d5ea1", + "rev": "ba3db5f76a6f352664d3398bdd11b09562831927", "type": "gitlab" }, "original": { @@ -1084,11 +1140,11 @@ "nur-xddxdd": { "flake": false, "locked": { - "lastModified": 1738750159, - "narHash": "sha256-Y/yYT3qANqafc+6Uxk/rCbNuzdGlYoQn3VDM6MbKkT0=", + "lastModified": 1740133916, + "narHash": "sha256-1PIIuqd4Tfv9smr7AiMlMO+5VD3H9rwIiuzkNdXm2BE=", "owner": "xddxdd", "repo": "nur-packages", - "rev": "2b715df004ac0e90eaf5cc213082159f8bff97fe", + "rev": "421f8479fe17d475000babd9691cf6a007b38bd9", "type": "github" }, "original": { @@ -1140,10 +1196,14 @@ "ghostty": "ghostty", "helix": "helix", "home-manager": "home-manager", + "lix-module": "lix-module", "niri-flake": "niri-flake", "nixos-cosmic": "nixos-cosmic", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_5", + "nixpkgs": [ + "nixos-cosmic", + "nixpkgs" + ], "nur-rycee": "nur-rycee", "nur-xddxdd": "nur-xddxdd", "oskars-dotfiles": "oskars-dotfiles", @@ -1200,11 +1260,11 @@ ] }, "locked": { - "lastModified": 1738291974, - "narHash": "sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320=", + "lastModified": 1739262228, + "narHash": "sha256-7JAGezJ0Dn5qIyA2+T4Dt/xQgAbhCglh6lzCekTVMeU=", "owner": "Mic92", "repo": "sops-nix", - "rev": "4c1251904d8a08c86ac6bc0d72cc09975e89aef7", + "rev": "07af005bb7d60c7f118d9d9f5530485da5d1e975", "type": "github" }, "original": { @@ -1221,23 +1281,24 @@ "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", "flake-compat": "flake-compat_5", - "flake-utils": "flake-utils_5", + "flake-utils": "flake-utils_6", "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", "home-manager": "home-manager_3", - "nixpkgs": "nixpkgs_6", - "systems": "systems_7", + "nixpkgs": "nixpkgs_5", + "systems": "systems_8", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", + "tinted-schemes": "tinted-schemes", "tinted-tmux": "tinted-tmux", "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1738611626, - "narHash": "sha256-IgjqlYPaS8Bg+jc6a691w27XDFhBeM7gkP4eDcR2EBs=", + "lastModified": 1740055719, + "narHash": "sha256-6UaZqK8+7byU2ORz6YpGccjDDoEd95Btr6qE6qbg5YM=", "owner": "danth", "repo": "stylix", - "rev": "d513f59da5856978c363d2f82103f708f4a6024d", + "rev": "c424b22396c5e40d2513ce03f94d0aa6d9cdd38f", "type": "github" }, "original": { @@ -1351,6 +1412,21 @@ "type": "github" } }, + "systems_8": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "tinted-foot": { "flake": false, "locked": { @@ -1385,6 +1461,22 @@ "type": "github" } }, + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 1737565458, + "narHash": "sha256-y+9cvOA6BLKT0WfebDsyUpUa/YxKow9hTjBp6HpQv68=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "ae31625ba47aeaa4bf6a98cf11a8d4886f9463d9", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, "tinted-tmux": { "flake": false, "locked": { @@ -1486,7 +1578,7 @@ "winapps": { "inputs": { "flake-compat": "flake-compat_4", - "flake-utils": "flake-utils_4", + "flake-utils": "flake-utils_5", "nixpkgs": [ "oskars-dotfiles", "nixpkgs" @@ -1526,11 +1618,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1737837494, - "narHash": "sha256-wIMowP8Juas4ZwMRcpc+58sZ0kKTDu8fm13THPmv/F8=", + "lastModified": 1739246919, + "narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "3944c9a0e40e5629f16ad023bbc90dac80d35a0f", + "rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d", "type": "github" }, "original": { @@ -1544,18 +1636,21 @@ "flake-compat": [ "ghostty" ], - "flake-utils": "flake-utils_2", + "flake-utils": [ + "ghostty", + "flake-utils" + ], "nixpkgs": [ "ghostty", "nixpkgs-stable" ] }, "locked": { - "lastModified": 1717848532, - "narHash": "sha256-d+xIUvSTreHl8pAmU1fnmkfDTGQYCn2Rb/zOwByxS2M=", + "lastModified": 1738239110, + "narHash": "sha256-Y5i9mQ++dyIQr+zEPNy+KIbc5wjPmfllBrag3cHZgcE=", "owner": "mitchellh", "repo": "zig-overlay", - "rev": "02fc5cc555fc14fda40c42d7c3250efa43812b43", + "rev": "1a8fb6f3a04724519436355564b95fce5e272504", "type": "github" }, "original": { @@ -1563,6 +1658,32 @@ "repo": "zig-overlay", "type": "github" } + }, + "zig2nix": { + "inputs": { + "flake-utils": [ + "ghostty", + "flake-utils" + ], + "nixpkgs": [ + "ghostty", + "nixpkgs-stable" + ] + }, + "locked": { + "lastModified": 1738263917, + "narHash": "sha256-j/3fwe2pEOquHabP/puljOKwAZFjIE9gXZqA91sC48M=", + "owner": "jcollie", + "repo": "zig2nix", + "rev": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a", + "type": "github" + }, + "original": { + "owner": "jcollie", + "repo": "zig2nix", + "rev": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index d4fbbb4..52bf7b3 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,13 @@ description = "A simple NixOS flakes"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + # nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + nixpkgs.follows = "nixos-cosmic/nixpkgs"; + + lix-module = { + url = "git+https://git.lix.systems/lix-project/nixos-module"; + inputs.nixpkgs.follows = "nixpkgs"; + }; helix = { url = "github:helix-editor/helix/master"; @@ -183,15 +189,15 @@ pkgs = nixpkgs.legacyPackages."${system}"; modules = [ - (./home + "/${unixName}/configurations/${hostName}") + "${toString ./home}/${unixName}/configurations/${hostName}" ] ++ (with outputs.homeManagerModules; [ default - "${unixName}" + extra ]) - ++ (with inputs; [ - stylix.homeManagerModules.stylix - ]); + ++ [ + outputs.homeManagerModules."${unixName}" + ]; extraSpecialArgs = { inherit inputs @@ -220,18 +226,26 @@ homeManagerModules = { default = import ./home/modules; + extra = import ./home/extra; } // ( let allEntries = builtins.readDir ./home; allUsers = nixpkgs.lib.filterAttrs ( - key: value: value == "directory" && key != "modules" + key: value: + value == "directory" + && ( + !builtins.elem key [ + "modules" + "extra" + ] + ) ) allEntries; in builtins.listToAttrs ( map (name: { name = name; - value = import (./home + "/${name}/modules"); + value = import "${toString ./home}/${name}/modules"; }) (builtins.attrNames allUsers) ) ); @@ -251,10 +265,6 @@ hostname = "${sshName}"; sshUser = "${unixName}"; interactiveSudo = true; - sshOpts = [ - "-i" - "/home/david/.ssh/id_ed25519_deploy" - ]; profiles = { system = { user = "${unixName}"; diff --git a/home/david/configurations/Tytonidae/default.nix b/home/david/configurations/Tytonidae/default.nix index 9ed9af6..5f85b46 100644 --- a/home/david/configurations/Tytonidae/default.nix +++ b/home/david/configurations/Tytonidae/default.nix @@ -15,6 +15,7 @@ youthlic = { xdg-dirs.enable = true; programs = { + zed-editor.enable = true; rustypaste-cli.enable = true; firefox.enable = true; fuzzel.enable = true; diff --git a/home/extra/default.nix b/home/extra/default.nix new file mode 100644 index 0000000..fb437ca --- /dev/null +++ b/home/extra/default.nix @@ -0,0 +1,11 @@ +{ inputs, ... }: +{ + imports = + (with inputs; [ + niri-flake.homeModules.niri + stylix.homeManagerModules.stylix + ]) + ++ [ + ./nix.nix + ]; +} diff --git a/home/extra/nix.nix b/home/extra/nix.nix new file mode 100644 index 0000000..16fea1c --- /dev/null +++ b/home/extra/nix.nix @@ -0,0 +1,46 @@ +{ + outputs, + lib, + pkgs, + inputs, + ... +}: +{ + config = { + nixpkgs = { + config = { + allowUnfree = true; + allowUnfreePredicate = (_: true); + }; + overlays = [ + outputs.overlays.modifications + outputs.overlays.additions + ]; + }; + nix = { + package = pkgs.nix; + settings = { + inherit (outputs.nix.settings) substituters; + trusted-public-keys = [ + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" + ]; + auto-optimise-store = lib.mkDefault true; + experimental-features = [ + "nix-command" + "flakes" + ]; + warn-dirty = false; + use-xdg-base-directories = true; + }; + registry.home = lib.mkDefault { + from = { + type = "indirect"; + id = "home"; + }; + flake = inputs.nixpkgs; + }; + }; + }; +} diff --git a/home/modules/default.nix b/home/modules/default.nix index a2aa712..d4fca85 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -1,6 +1,5 @@ { inputs, - lib, ... }: { @@ -9,21 +8,10 @@ sops-nix.homeManagerModules.sops ]) ++ [ - ./nix.nix ./programs ./xdg-dirs.nix ]; - options = { - youthlic.nixos.enable = lib.mkOption { - type = lib.types.bool; - default = false; - example = true; - description = '' - whether the os is nixos - ''; - }; - }; config = { programs.direnv = { enable = true; diff --git a/home/modules/nix.nix b/home/modules/nix.nix deleted file mode 100644 index 86a2de8..0000000 --- a/home/modules/nix.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ - inputs, - lib, - config, - pkgs, - outputs, - ... -}: -{ - config = - let - cfg = config.youthlic.nixos; - in - (lib.mkIf (!cfg.enable) { - nixpkgs = { - config = { - allowUnfree = true; - allowUnfreePredicate = (_: true); - }; - overlays = [ - outputs.overlays.modifications - outputs.overlays.additions - ]; - }; - nix = { - package = pkgs.nix; - settings = { - inherit (outputs.nix.settings) substituters; - trusted-public-keys = [ - "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" - ]; - auto-optimise-store = lib.mkDefault true; - experimental-features = [ - "nix-command" - "flakes" - ]; - warn-dirty = false; - use-xdg-base-directories = true; - }; - registry.home = lib.mkDefault { - from = { - type = "indirect"; - id = "home"; - }; - flake = inputs.nixpkgs; - }; - }; - }); -} diff --git a/home/modules/programs/default.nix b/home/modules/programs/default.nix index 35c726a..3b19bf9 100644 --- a/home/modules/programs/default.nix +++ b/home/modules/programs/default.nix @@ -1,6 +1,7 @@ { ... }: { imports = [ + ./zed.nix ./rustypaste-cli.nix ./atuin.nix ./firefox.nix diff --git a/home/modules/programs/firefox.nix b/home/modules/programs/firefox.nix index 746c0d3..c847557 100644 --- a/home/modules/programs/firefox.nix +++ b/home/modules/programs/firefox.nix @@ -25,7 +25,7 @@ in profiles.default = { name = "default"; isDefault = true; - extensions = with outputs.packages."${system}"; [ + extensions.packages = with outputs.packages."${system}"; [ immersive-translate tridactyl ]; diff --git a/home/modules/programs/git.nix b/home/modules/programs/git.nix index 85769f1..42e0cea 100644 --- a/home/modules/programs/git.nix +++ b/home/modules/programs/git.nix @@ -66,6 +66,7 @@ programs.git.signing = { signByDefault = true; key = cfg.signKey; + format = "openpgp"; }; }) (lib.mkIf cfg.encrypt-credential { diff --git a/home/modules/programs/zed.nix b/home/modules/programs/zed.nix new file mode 100644 index 0000000..a23785a --- /dev/null +++ b/home/modules/programs/zed.nix @@ -0,0 +1,31 @@ +{ + pkgs, + config, + lib, + ... +}: +let + cfg = config.youthlic.programs.zed-editor; +in +{ + options = { + youthlic.programs.zed-editor = { + enable = lib.mkEnableOption "zed-editor"; + }; + }; + config = lib.mkIf cfg.enable { + programs.zed-editor = { + enable = true; + extensions = [ + "nix" + ]; + extraPackages = with pkgs; [ + nixd + nil + ]; + userSettings = { + vim_mode = true; + }; + }; + }; +} diff --git a/nixos/configurations/Cape/default.nix b/nixos/configurations/Cape/default.nix index 20a8c50..f91dba4 100644 --- a/nixos/configurations/Cape/default.nix +++ b/nixos/configurations/Cape/default.nix @@ -20,6 +20,7 @@ }; users.deploy.enable = true; programs = { + transfer-sh.enable = true; rustypaste = { enable = true; url = "https://paste.youthlic.fun"; diff --git a/nixos/modules/default.nix b/nixos/modules/default.nix index 4584228..aaa71ca 100644 --- a/nixos/modules/default.nix +++ b/nixos/modules/default.nix @@ -14,6 +14,7 @@ sops-nix.nixosModules.sops stylix.nixosModules.stylix disko.nixosModules.disko + lix-module.nixosModules.default ]) ++ [ ./containers diff --git a/nixos/modules/gui/kde.nix b/nixos/modules/gui/kde.nix index 9f5024a..bf3b78d 100644 --- a/nixos/modules/gui/kde.nix +++ b/nixos/modules/gui/kde.nix @@ -8,6 +8,7 @@ let in { config = lib.mkIf (cfg.enabled == "kde") { + stylix.targets.qt.platform = "kde"; services = { desktopManager.plasma6.enable = true; displayManager.sddm.enable = true; diff --git a/nixos/modules/home.nix b/nixos/modules/home.nix index 644ee18..638c072 100644 --- a/nixos/modules/home.nix +++ b/nixos/modules/home.nix @@ -50,10 +50,6 @@ outputs.homeManagerModules."${unixName}" (rootPath + "/home/${unixName}/configurations/${hostName}") ]; - - config = { - youthlic.nixos.enable = true; - }; } ); extraSpecialArgs = { diff --git a/nixos/modules/programs/default.nix b/nixos/modules/programs/default.nix index 0356117..98433b2 100644 --- a/nixos/modules/programs/default.nix +++ b/nixos/modules/programs/default.nix @@ -1,6 +1,7 @@ { config, lib, ... }: { imports = [ + ./transfer-sh.nix ./rustypaste ./mautrix-telegram.nix ./caddy.nix diff --git a/nixos/modules/programs/transfer-sh.nix b/nixos/modules/programs/transfer-sh.nix new file mode 100644 index 0000000..a861fe3 --- /dev/null +++ b/nixos/modules/programs/transfer-sh.nix @@ -0,0 +1,33 @@ +{ lib, config, ... }: +let + cfg = config.youthlic.programs.transfer-sh; +in +{ + options = { + youthlic.programs.transfer-sh = { + enable = lib.mkEnableOption "transfer.sh"; + }; + }; + config = lib.mkMerge [ + (lib.mkIf cfg.enable { + services.transfer-sh = { + enable = true; + provider = "local"; + settings = { + BASEDIR = "/var/lib/transfer.sh"; + LISTENER = ":8484"; + TLS_LISTENER_ONLY = false; + }; + }; + }) + (lib.mkIf (cfg.enable && config.youthlic.programs.caddy.enable) { + services.caddy.virtualHosts = { + "transfer.${config.youthlic.programs.caddy.baseDomain}" = { + extraConfig = '' + reverse_proxy 127.0.0.1:8484 + ''; + }; + }; + }) + ]; +} diff --git a/pkgs/helix/default.nix b/pkgs/helix/default.nix index b01dcea..2ce91b0 100644 --- a/pkgs/helix/default.nix +++ b/pkgs/helix/default.nix @@ -53,7 +53,8 @@ let ); in pkgs.symlinkJoin { - name = "helix-wrapped"; + pname = "helix-wrapped"; + version = helix-wrapped.version; paths = [ helix-wrapped ]; inherit (helix-wrapped) meta; buildInputs = [