diff --git a/.github/workflows/build-and-cache.yml b/.github/workflows/build-and-cache.yml deleted file mode 100644 index 8e5aaa3..0000000 --- a/.github/workflows/build-and-cache.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: build and cache random stuff -on: - workflow_dispatch: - push: -jobs: - build: - strategy: - matrix: - package: - - .#attic-client - - .#attic-server - - .#conduwuit - - "github:cything/nixpkgs/9a35d495d2f49eee003b57265228844bb48c933e#nixosTests.garage.with-3node-replication1_x" - runs-on: ubuntu-latest - steps: - - uses: DeterminateSystems/nix-installer-action@main - with: - logger: pretty - - uses: DeterminateSystems/magic-nix-cache-action@main - - uses: cachix/cachix-action@v15 - with: - name: cything - authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - - name: Setup Attic cache - uses: ryanccn/attic-action@v0 - with: - endpoint: ${{ vars.ATTIC_ENDPOINT }} - cache: ${{ vars.ATTIC_CACHE }} - token: ${{ secrets.ATTIC_TOKEN }} - - uses: actions/checkout@v4 - - run: nix build '${{ matrix.package }}' diff --git a/.github/workflows/build-machines-and-homes.yml b/.github/workflows/build-machines-and-homes.yml new file mode 100644 index 0000000..f5de126 --- /dev/null +++ b/.github/workflows/build-machines-and-homes.yml @@ -0,0 +1,122 @@ +name: build and cache machines and homes +on: + workflow_dispatch: + push: + pull_request: +jobs: + build-machines: + strategy: + matrix: + machine: + - chunk + - ytnix + - titan + os: + - ubuntu-latest + runs-on: ${{ matrix.os }} + continue-on-error: true + steps: + - name: Maximize build disk space + uses: easimon/maximize-build-space@v10 + with: + overprovision-lvm: true + swap-size-mb: 1024 + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + remove-docker-images: 'true' + build-mount-path: /nix + - uses: nixbuild/nix-quick-install-action@master + - name: Sync repository + uses: actions/checkout@v4 + with: + persist-credentials: false + - uses: cachix/cachix-action@v14 + with: + name: cything + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + useDaemon: false + installCommand: nix profile install nixpkgs#cachix + - name: Setup Attic cache + uses: ryanccn/attic-action@v0 + with: + endpoint: ${{ vars.ATTIC_ENDPOINT }} + cache: ${{ vars.ATTIC_CACHE }} + token: ${{ secrets.ATTIC_TOKEN }} + - name: Restore and cache Nix store + uses: nix-community/cache-nix-action@v5.1.0 + with: + # restore and save a cache using this key + primary-key: nix-${{ runner.os }}-${{ matrix.machine }}-${{ hashFiles('**/*.nix', 'flake.lock') }} + # if there's no cache hit, restore a cache by this prefix + restore-prefixes-first-match: nix-${{ runner.os }}-${{ matrix.machine }}- + # do purge caches + purge: true + # purge all versions of the cache + purge-prefixes: nix-${{ runner.os }}- + # created more than this number of seconds ago relative to the start of the `Post Restore` phase + purge-last-accessed: 86400 + # except the version with the `primary-key`, if it exists + purge-primary-key: never + # always save the cache + save-always: true + - run: nix build -L .#nixosConfigurations.${{ matrix.machine }}.config.system.build.toplevel + build-homes: + strategy: + matrix: + home: + - yt@ytnix + - yt@chunk + os: + - ubuntu-latest + # - macos-latest + runs-on: ${{ matrix.os }} + continue-on-error: true + steps: + - name: Maximize build disk space + uses: easimon/maximize-build-space@v10 + with: + overprovision-lvm: true + swap-size-mb: 1024 + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + remove-docker-images: 'true' + build-mount-path: /nix + - uses: nixbuild/nix-quick-install-action@master + - name: Sync repository + uses: actions/checkout@v4 + with: + persist-credentials: false + - uses: cachix/cachix-action@v14 + with: + name: cything + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + useDaemon: false + installCommand: nix profile install nixpkgs#cachix + - name: Setup Attic cache + uses: ryanccn/attic-action@v0 + with: + endpoint: ${{ vars.ATTIC_ENDPOINT }} + cache: ${{ vars.ATTIC_CACHE }} + token: ${{ secrets.ATTIC_TOKEN }} + - name: Restore and cache Nix store + uses: nix-community/cache-nix-action@v5.1.0 + with: + # restore and save a cache using this key + primary-key: nix-${{ runner.os }}-${{ matrix.home }}-${{ hashFiles('**/*.nix', 'flake.lock') }} + # if there's no cache hit, restore a cache by this prefix + restore-prefixes-first-match: nix-${{ runner.os }}-${{ matrix.home }}- + # do purge caches + purge: true + # purge all versions of the cache + purge-prefixes: nix-${{ runner.os }}- + # created more than this number of seconds ago relative to the start of the `Post Restore` phase + purge-last-accessed: 86400 + # except the version with the `primary-key`, if it exists + purge-primary-key: never + # always save the cache + save-always: true + - run: nix build -L .#homeConfigurations."${{ matrix.home }}".activationPackage diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml new file mode 100644 index 0000000..4408d30 --- /dev/null +++ b/.github/workflows/build-packages.yml @@ -0,0 +1,59 @@ +name: build and cache packages +on: + workflow_dispatch: + inputs: + package: + description: "package to build" + required: false + type: string +jobs: + build-packages: + strategy: + matrix: + package: + - github:cything/nixpkgs/928e0c6874ab3e759305e93f806a4cf559645677#alvr + - github:cything/nixpkgs/8929e1256ceec677dd57fce405cdaca23176399b#lact + - ${{ inputs.package }} + os: + - ubuntu-latest + - macos-latest + - ubuntu-24.04-arm + runs-on: ${{ matrix.os }} + continue-on-error: true + steps: + - name: Install Nix + uses: cachix/install-nix-action@v30 + - name: Sync repository + uses: actions/checkout@v4 + with: + persist-credentials: false + - uses: cachix/cachix-action@v14 + with: + name: cything + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + useDaemon: false + installCommand: nix profile install nixpkgs#cachix + - name: Setup Attic cache + uses: ryanccn/attic-action@v0 + with: + endpoint: ${{ vars.ATTIC_ENDPOINT }} + cache: ${{ vars.ATTIC_CACHE }} + token: ${{ secrets.ATTIC_TOKEN }} + - name: Restore and cache Nix store + uses: nix-community/cache-nix-action@v5.1.0 + with: + # restore and save a cache using this key + primary-key: nix-${{ runner.os }}-${{ matrix.package }}-${{ hashFiles('**/*.nix', 'flake.lock') }} + # if there's no cache hit, restore a cache by this prefix + restore-prefixes-first-match: nix-${{ runner.os }}-${{ matrix.package }}- + # do purge caches + purge: true + # purge all versions of the cache + purge-prefixes: nix-${{ runner.os }}- + # created more than this number of seconds ago relative to the start of the `Post Restore` phase + purge-last-accessed: 86400 + # except the version with the `primary-key`, if it exists + purge-primary-key: never + # always save the cache + save-always: true + - run: nix build -L ${{ matrix.package }} diff --git a/flake.lock b/flake.lock index cd5c828..2e9a7dd 100644 --- a/flake.lock +++ b/flake.lock @@ -1,18 +1,144 @@ { "nodes": { + "attic": { + "inputs": { + "crane": "crane", + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "nix-github-actions": "nix-github-actions", + "nixpkgs": "nixpkgs", + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1731270564, + "narHash": "sha256-6KMC/NH/VWP5Eb+hA56hz0urel3jP6Y6cF2PX6xaTkk=", + "owner": "zhaofengli", + "repo": "attic", + "rev": "47752427561f1c34debb16728a210d378f0ece36", + "type": "github" + }, + "original": { + "owner": "zhaofengli", + "ref": "main", + "repo": "attic", + "type": "github" + } + }, + "cachix": { + "inputs": { + "devenv": "devenv", + "flake-compat": "flake-compat_2", + "git-hooks": "git-hooks", + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1733424942, + "narHash": "sha256-5t7Sl6EkOaoP4FvzLmH7HFDbdl9SizmLh53RjDQCbWQ=", + "owner": "cachix", + "repo": "cachix", + "rev": "8b6b0e4694b9aa78b2ea4c93bff6e1a222dc7e4a", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "master", + "repo": "cachix", + "type": "github" + } + }, + "cachix_2": { + "inputs": { + "devenv": [ + "conduwuit", + "cachix", + "devenv" + ], + "flake-compat": [ + "conduwuit", + "cachix", + "devenv" + ], + "git-hooks": [ + "conduwuit", + "cachix", + "devenv" + ], + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1728672398, + "narHash": "sha256-KxuGSoVUFnQLB2ZcYODW7AVPAh9JqRlD5BrfsC/Q4qs=", + "owner": "cachix", + "repo": "cachix", + "rev": "aac51f698309fd0f381149214b7eee213c66ef0a", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "latest", + "repo": "cachix", + "type": "github" + } + }, + "complement": { + "flake": false, + "locked": { + "lastModified": 1734303596, + "narHash": "sha256-HjDRyLR4MBqQ3IjfMM6eE+8ayztXlbz3gXdyDmFla68=", + "owner": "girlbossceo", + "repo": "complement", + "rev": "14cc5be797b774f1a2b9f826f38181066d4952b8", + "type": "github" + }, + "original": { + "owner": "girlbossceo", + "ref": "main", + "repo": "complement", + "type": "github" + } + }, + "conduwuit": { + "inputs": { + "attic": "attic", + "cachix": "cachix", + "complement": "complement", + "crane": "crane_2", + "fenix": "fenix", + "flake-compat": "flake-compat_3", + "flake-utils": "flake-utils", + "liburing": "liburing", + "nix-filter": "nix-filter", + "nixpkgs": "nixpkgs_5", + "rocksdb": "rocksdb" + }, + "locked": { + "lastModified": 1737153653, + "narHash": "sha256-yNdxoVZX13QUDJYM6zTMY9ExvacTqB+f0MLvDreSW8U=", + "owner": "girlbossceo", + "repo": "conduwuit", + "rev": "5b8464252c2c03edf65e43153be026dbb768a12a", + "type": "github" + }, + "original": { + "owner": "girlbossceo", + "repo": "conduwuit", + "type": "github" + } + }, "crane": { "inputs": { "nixpkgs": [ - "lanzaboote", + "conduwuit", + "attic", "nixpkgs" ] }, "locked": { - "lastModified": 1717535930, - "narHash": "sha256-1hZ/txnbd/RmiBPNUs7i8UQw2N89uAK3UzrGAWdnFfU=", + "lastModified": 1722960479, + "narHash": "sha256-NhCkJJQhD5GUib8zN9JrmYGMwt4lCRp6ZVNzIiYCl0Y=", "owner": "ipetkov", "repo": "crane", - "rev": "55e7754ec31dac78980c8be45f8a28e80e370946", + "rev": "4c6c77920b8d44cd6660c1621dea6b3fc4b4c4f4", "type": "github" }, "original": { @@ -21,6 +147,71 @@ "type": "github" } }, + "crane_2": { + "locked": { + "lastModified": 1736566337, + "narHash": "sha256-SC0eDcZPqISVt6R0UfGPyQLrI0+BppjjtQ3wcSlk0oI=", + "owner": "ipetkov", + "repo": "crane", + "rev": "9172acc1ee6c7e1cbafc3044ff850c568c75a5a3", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "ref": "master", + "repo": "crane", + "type": "github" + } + }, + "crane_3": { + "locked": { + "lastModified": 1731098351, + "narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=", + "owner": "ipetkov", + "repo": "crane", + "rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "devenv": { + "inputs": { + "cachix": "cachix_2", + "flake-compat": [ + "conduwuit", + "cachix", + "flake-compat" + ], + "git-hooks": [ + "conduwuit", + "cachix", + "git-hooks" + ], + "nix": "nix", + "nixpkgs": [ + "conduwuit", + "cachix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733323168, + "narHash": "sha256-d5DwB4MZvlaQpN6OQ4SLYxb5jA4UH5EtV5t5WOtjLPU=", + "owner": "cachix", + "repo": "devenv", + "rev": "efa9010b8b1cfd5dd3c7ed1e172a470c3b84a064", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, "devshell": { "inputs": { "nixpkgs": [ @@ -49,11 +240,11 @@ ] }, "locked": { - "lastModified": 1734088167, - "narHash": "sha256-snPBgTqwn3FPZVdFC5yt7Bnk3squim1vZOZ8CObWykk=", + "lastModified": 1736864502, + "narHash": "sha256-ItkIZyebGvNH2dK9jVGzJHGPtb6BSWLN8Gmef16NeY0=", "owner": "nix-community", "repo": "disko", - "rev": "65a441502c9382d41ada1adbc9bd31d6c9b00fe2", + "rev": "0141aabed359f063de7413f80d906e1d98c0c123", "type": "github" }, "original": { @@ -63,6 +254,29 @@ "type": "github" } }, + "fenix": { + "inputs": { + "nixpkgs": [ + "conduwuit", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1736836313, + "narHash": "sha256-zdZ7/T6yG0/hzoVOiNpDiR/sW3zR6oSMrfIFJK2BrrE=", + "owner": "nix-community", + "repo": "fenix", + "rev": "056c9393c821a4df356df6ce7f14c722dc8717ec", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "main", + "repo": "fenix", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -80,6 +294,55 @@ } }, "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "type": "github" + }, + "original": { + "owner": "edolstra", + "ref": "master", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_4": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_5": { "locked": { "lastModified": 1696426674, "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", @@ -96,16 +359,17 @@ "flake-parts": { "inputs": { "nixpkgs-lib": [ - "lanzaboote", + "conduwuit", + "attic", "nixpkgs" ] }, "locked": { - "lastModified": 1717285511, - "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", + "lastModified": 1722555600, + "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", + "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", "type": "github" }, "original": { @@ -115,6 +379,69 @@ } }, "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "conduwuit", + "cachix", + "devenv", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1712014858, + "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1736143030, + "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_4": { + "inputs": { + "nixpkgs-lib": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1730504689, + "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "506278e768c2a08bec68eb62932193e341f55c90", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_5": { "inputs": { "nixpkgs-lib": [ "nixvim", @@ -140,15 +467,16 @@ "systems": "systems" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { "owner": "numtide", + "ref": "main", "repo": "flake-utils", "type": "github" } @@ -172,23 +500,52 @@ } }, "git-hooks": { + "inputs": { + "flake-compat": [ + "conduwuit", + "cachix", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "conduwuit", + "cachix", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable_2" + }, + "locked": { + "lastModified": 1733318908, + "narHash": "sha256-SVQVsbafSM1dJ4fpgyBqLZ+Lft+jcQuMtEL3lQWx2Sk=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "6f4e2a2112050951a314d2733a994fbab94864c6", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "git-hooks_2": { "inputs": { "flake-compat": [ "nixvim", "flake-compat" ], - "gitignore": "gitignore_2", + "gitignore": "gitignore_3", "nixpkgs": [ "nixvim", "nixpkgs" ] }, "locked": { - "lastModified": 1735882644, - "narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=", + "lastModified": 1737043064, + "narHash": "sha256-I/OuxGwXwRi5gnFPsyCvVR+IfFstA+QXEpHu1hvsgD8=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "a5a961387e75ae44cc20f0a57ae463da5e959656", + "rev": "94ee657f6032d913fe0ef49adaa743804635b0bb", "type": "github" }, "original": { @@ -198,6 +555,29 @@ } }, "gitignore": { + "inputs": { + "nixpkgs": [ + "conduwuit", + "cachix", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { "inputs": { "nixpkgs": [ "lanzaboote", @@ -219,7 +599,7 @@ "type": "github" } }, - "gitignore_2": { + "gitignore_3": { "inputs": { "nixpkgs": [ "nixvim", @@ -248,11 +628,11 @@ ] }, "locked": { - "lastModified": 1736508663, - "narHash": "sha256-ZOaGwa+WnB7Zn3YXimqjmIugAnHePdXCmNu+AHkq808=", + "lastModified": 1737480538, + "narHash": "sha256-rk/cmrvq3In0TegW9qaAxw+5YpJhRWt2p74/6JStrw0=", "owner": "nix-community", "repo": "home-manager", - "rev": "2532b500c3ed2b8940e831039dcec5a5ea093afc", + "rev": "4481a16d1ac5bff4a77c608cefe08c9b9efe840d", "type": "github" }, "original": { @@ -269,11 +649,11 @@ ] }, "locked": { - "lastModified": 1736508663, - "narHash": "sha256-ZOaGwa+WnB7Zn3YXimqjmIugAnHePdXCmNu+AHkq808=", + "lastModified": 1737075266, + "narHash": "sha256-u1gk5I1an975FOAMMdS6oBKnSIsZza5ZKhaeBZAskVo=", "owner": "nix-community", "repo": "home-manager", - "rev": "2532b500c3ed2b8940e831039dcec5a5ea093afc", + "rev": "12851ae7467bad8ef422b20806ab4d6d81e12d29", "type": "github" }, "original": { @@ -312,10 +692,9 @@ }, "lanzaboote": { "inputs": { - "crane": "crane", - "flake-compat": "flake-compat", - "flake-parts": "flake-parts", - "flake-utils": "flake-utils", + "crane": "crane_3", + "flake-compat": "flake-compat_4", + "flake-parts": "flake-parts_4", "nixpkgs": [ "nixpkgs" ], @@ -323,20 +702,152 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1718178907, - "narHash": "sha256-eSZyrQ9uoPB9iPQ8Y5H7gAmAgAvCw3InStmU3oEjqsE=", + "lastModified": 1737299073, + "narHash": "sha256-hOydnO9trHDo3qURqLSDdmE/pHNWDzlhkmyZ/gcBX2s=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "b627ccd97d0159214cee5c7db1412b75e4be6086", + "rev": "64d20cb2afaad8b73f4e38de41d27fb30a782bb5", "type": "github" }, "original": { "owner": "nix-community", - "ref": "v0.4.1", + "ref": "master", "repo": "lanzaboote", "type": "github" } }, + "libgit2": { + "flake": false, + "locked": { + "lastModified": 1697646580, + "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=", + "owner": "libgit2", + "repo": "libgit2", + "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5", + "type": "github" + }, + "original": { + "owner": "libgit2", + "repo": "libgit2", + "type": "github" + } + }, + "liburing": { + "flake": false, + "locked": { + "lastModified": 1736719310, + "narHash": "sha256-Turvx60THwzTiUHb49WV3upUgsPuktr7tVy2Lwu2xJg=", + "owner": "axboe", + "repo": "liburing", + "rev": "3124a4619e4daf26b06d48ccf0186a947070c415", + "type": "github" + }, + "original": { + "owner": "axboe", + "ref": "master", + "repo": "liburing", + "type": "github" + } + }, + "niri": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable_4", + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": "xwayland-satellite-unstable" + }, + "locked": { + "lastModified": 1737516423, + "narHash": "sha256-S3vmlekDRKgXsOreMMxLwJgvH313x1zU/wYtC8YThLg=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "8370d2475f0eac1b5dab31a107ee118d96692e31", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1736614405, + "narHash": "sha256-AJ1rlgNOPb3/+DbS5hkhm21t6Oz8IgqLllwmZt0lyzk=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "e05bc269e678ecf828b96ae79c991c13b00b38a5", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v25.01", + "repo": "niri", + "type": "github" + } + }, + "niri-unstable": { + "flake": false, + "locked": { + "lastModified": 1737449786, + "narHash": "sha256-G/AK0T41PpxU9hjkK/tnjODigzKcpRayo1o4pi9glqI=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "b01b8afa8c8f9070300243050d9790e38fd19145", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, + "nix": { + "inputs": { + "flake-compat": [ + "conduwuit", + "cachix", + "devenv" + ], + "flake-parts": "flake-parts_2", + "libgit2": "libgit2", + "nixpkgs": "nixpkgs_3", + "nixpkgs-23-11": [ + "conduwuit", + "cachix", + "devenv" + ], + "nixpkgs-regression": [ + "conduwuit", + "cachix", + "devenv" + ], + "pre-commit-hooks": [ + "conduwuit", + "cachix", + "devenv" + ] + }, + "locked": { + "lastModified": 1727438425, + "narHash": "sha256-X8ES7I1cfNhR9oKp06F6ir4Np70WGZU5sfCOuNBEwMg=", + "owner": "domenkozar", + "repo": "nix", + "rev": "f6c5ae4c1b2e411e6b1e6a8181cc84363d6a7546", + "type": "github" + }, + "original": { + "owner": "domenkozar", + "ref": "devenv-2.24", + "repo": "nix", + "type": "github" + } + }, "nix-darwin": { "inputs": { "nixpkgs": [ @@ -345,11 +856,11 @@ ] }, "locked": { - "lastModified": 1736370755, - "narHash": "sha256-iWcjToBpx4PUd74uqvIGAfqqVfyrvRLRauC/SxEKIF0=", + "lastModified": 1736819234, + "narHash": "sha256-deQVtIH4UJueELJqluAICUtX7OosD9paTP+5FgbiSwI=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "57733bd1dc81900e13438e5b4439239f1b29db0e", + "rev": "bd921223ba7cdac346477d7ea5204d6f4736fcc6", "type": "github" }, "original": { @@ -358,45 +869,67 @@ "type": "github" } }, + "nix-filter": { + "locked": { + "lastModified": 1731533336, + "narHash": "sha256-oRam5PS1vcrr5UPgALW0eo1m/5/pls27Z/pabHNy2Ms=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "f7653272fd234696ae94229839a99b73c9ab7de0", + "type": "github" + }, + "original": { + "owner": "numtide", + "ref": "main", + "repo": "nix-filter", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "conduwuit", + "attic", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729742964, + "narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "e04df33f62cdcf93d73e9a04142464753a16db67", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1736523798, - "narHash": "sha256-Xb8mke6UCYjge9kPR9o4P1nVrhk7QBbKv3xQ9cj7h2s=", - "owner": "nixos", + "lastModified": 1726042813, + "narHash": "sha256-LnNKCCxnwgF+575y0pxUdlGZBO/ru1CtGHIqQVfvjlA=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "130595eba61081acde9001f43de3248d8888ac4a", + "rev": "159be5db480d1df880a0135ca0bfed84c2f88353", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-btrbk": { - "locked": { - "lastModified": 1735945390, - "narHash": "sha256-isFSp8EsqnFJE7o07XdT/eia0Rtzvz6NqLt4tCdFido=", - "owner": "cything", - "repo": "nixpkgs", - "rev": "acf701b49a7687e23b4b18701d4ab62285dec029", - "type": "github" - }, - "original": { - "owner": "cything", - "ref": "btrbk", + "owner": "NixOS", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs-garage": { "locked": { - "lastModified": 1736657901, - "narHash": "sha256-KpbFF8d5cqcBF7+m5fXDcPn+ADg3kURbX49JGx18NXU=", + "lastModified": 1736921030, + "narHash": "sha256-A7knAvBOwoM5X7oNdIOKvuXYtXJpuR4O8iKHIk8EwOI=", "owner": "cything", "repo": "nixpkgs", - "rev": "616be0a7b830a10d0874d569aabd40034c9151aa", + "rev": "97f27249297bf5fbc563014ae9d4884dee27f1e0", "type": "github" }, "original": { @@ -406,18 +939,158 @@ "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1735774519, + "narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" + } + }, "nixpkgs-stable": { "locked": { - "lastModified": 1710695816, - "narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=", + "lastModified": 1724316499, + "narHash": "sha256-Qb9MhKBUTCfWg/wqqaxt89Xfi6qTD3XpTzQ9eXi3JmE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "614b4613980a522ba49f0d194531beddbb7220d3", + "rev": "797f7dc49e0bc7fab4b57c021cdf68f595e47841", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-23.11", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1730741070, + "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_3": { + "locked": { + "lastModified": 1730741070, + "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_4": { + "locked": { + "lastModified": 1737299813, + "narHash": "sha256-Qw2PwmkXDK8sPQ5YQ/y/icbQ+TYgbxfjhgnkNJyT1X8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "107d5ef05c0b1119749e381451389eded30fb0d5", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1730531603, + "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1717432640, + "narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "88269ab3044128b7c2f4c7d68448b2fb50456870", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1733212471, + "narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "55d15ad12a74eb7d4646254e13638ad0c4128776", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1736817698, + "narHash": "sha256-1m+JP9RUsbeLVv/tF1DX3Ew9Vl/fatXnlh/g5k3jcSk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2b1fca3296ddd1602d2c4f104a4050e006f4b0cb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1737469477, + "narHash": "sha256-GG0myEzULU7uiwoNGnwqiclki+Jg8dPG6nv7yKo7lMc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "2582766522e754520bf3f883f06560f89870a5ba", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable-small", "repo": "nixpkgs", "type": "github" } @@ -425,9 +1098,9 @@ "nixvim": { "inputs": { "devshell": "devshell", - "flake-compat": "flake-compat_2", - "flake-parts": "flake-parts_2", - "git-hooks": "git-hooks", + "flake-compat": "flake-compat_5", + "flake-parts": "flake-parts_5", + "git-hooks": "git-hooks_2", "home-manager": "home-manager_2", "nix-darwin": "nix-darwin", "nixpkgs": [ @@ -437,11 +1110,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1736715511, - "narHash": "sha256-5YAiZ3wrEJ/fzFoCwNf14xqfRTvgdcnl/+y0vye3Y6A=", + "lastModified": 1737484173, + "narHash": "sha256-bE9pTDqnSIMAwJeIu0MzA8ZR7LEwRbhnRpnImWIBejc=", "owner": "nix-community", "repo": "nixvim", - "rev": "35d6c12626f9895cd5d8ccf5d19c3d00de394334", + "rev": "342161bf525dd64eb53fea295a2180f71ed06de1", "type": "github" }, "original": { @@ -473,25 +1146,41 @@ "type": "github" } }, + "nvim-github-theme": { + "flake": false, + "locked": { + "lastModified": 1735641120, + "narHash": "sha256-/A4hkKTzjzeoR1SuwwklraAyI8oMkhxrwBBV9xb59PA=", + "owner": "projekt0n", + "repo": "github-nvim-theme", + "rev": "c106c9472154d6b2c74b74565616b877ae8ed31d", + "type": "github" + }, + "original": { + "owner": "projekt0n", + "repo": "github-nvim-theme", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ "lanzaboote", "flake-compat" ], - "gitignore": "gitignore", + "gitignore": "gitignore_2", "nixpkgs": [ "lanzaboote", "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable" + "nixpkgs-stable": "nixpkgs-stable_3" }, "locked": { - "lastModified": 1717664902, - "narHash": "sha256-7XfBuLULizXjXfBYy/VV+SpYMHreNRHk9nKMsm1bgb4=", + "lastModified": 1731363552, + "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "cc4d466cb1254af050ff7bdf47f6d404a7c646d1", + "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", "type": "github" }, "original": { @@ -500,36 +1189,90 @@ "type": "github" } }, + "rocksdb": { + "flake": false, + "locked": { + "lastModified": 1734469478, + "narHash": "sha256-IcQ4N8xADYal79K+ONmNq4RLlIwdgUqgrVzgNgiIaG8=", + "owner": "girlbossceo", + "repo": "rocksdb", + "rev": "8b4808e7de2fbb5d119d8d72cdca76d8ab84bc47", + "type": "github" + }, + "original": { + "owner": "girlbossceo", + "ref": "v9.9.3", + "repo": "rocksdb", + "type": "github" + } + }, "root": { "inputs": { + "conduwuit": "conduwuit", "disko": "disko", + "flake-parts": "flake-parts_3", "home-manager": "home-manager", "lanzaboote": "lanzaboote", - "nixpkgs": "nixpkgs", - "nixpkgs-btrbk": "nixpkgs-btrbk", + "niri": "niri", + "nixpkgs": "nixpkgs_6", "nixpkgs-garage": "nixpkgs-garage", "nixvim": "nixvim", + "nvim-github-theme": "nvim-github-theme", + "rust-overlay": "rust-overlay_2", "sops-nix": "sops-nix", "treefmt": "treefmt" } }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1736690231, + "narHash": "sha256-g9gyxX+F6CrkT5gRIMKPnCPom0o9ZDzYnzzeNF86D6Q=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "8364ef299790cb6ec22b9e09e873c97dbe9f2cb5", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, "rust-overlay": { "inputs": { - "flake-utils": [ - "lanzaboote", - "flake-utils" - ], "nixpkgs": [ "lanzaboote", "nixpkgs" ] }, "locked": { - "lastModified": 1717813066, - "narHash": "sha256-wqbRwq3i7g5EHIui0bIi84mdqZ/It1AXBSLJ5tafD28=", + "lastModified": 1731897198, + "narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "6dc3e45fe4aee36efeed24d64fc68b1f989d5465", + "rev": "0be641045af6d8666c11c2c40e45ffc9667839b5", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_2": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1737512878, + "narHash": "sha256-dgF6htdmfNnZzVInifks6npnCAyVsIHWSpWNs10RSW0=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "06b8ed0eee289fe94c66f1202ced9a6a2c59a14c", "type": "github" }, "original": { @@ -545,11 +1288,11 @@ ] }, "locked": { - "lastModified": 1736515725, - "narHash": "sha256-4P99yL8vGehwzytkpP87eklBePt6aqeEC5JFsIzhfUs=", + "lastModified": 1737411508, + "narHash": "sha256-j9IdflJwRtqo9WpM0OfAZml47eBblUHGNQTe62OUqTw=", "owner": "Mic92", "repo": "sops-nix", - "rev": "f214c1b76c347a4e9c8fb68c73d4293a6820d125", + "rev": "015d461c16678fc02a2f405eb453abb509d4e1d4", "type": "github" }, "original": { @@ -595,11 +1338,11 @@ ] }, "locked": { - "lastModified": 1736154270, - "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=", + "lastModified": 1737483750, + "narHash": "sha256-5An1wq5U8sNycOBBg3nsDDgpwBmR9liOpDGlhliA6Xo=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b", + "rev": "f2cc121df15418d028a59c9737d38e3a90fbaf8f", "type": "github" }, "original": { @@ -616,11 +1359,11 @@ ] }, "locked": { - "lastModified": 1736154270, - "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=", + "lastModified": 1737054102, + "narHash": "sha256-saLiCRQ5RtdTnznT/fja7GxcYRAzeY3k8S+IF/2s/2A=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b", + "rev": "97871d416166803134ba64597a1006f3f670fbde", "type": "github" }, "original": { @@ -628,6 +1371,39 @@ "repo": "treefmt-nix", "type": "github" } + }, + "xwayland-satellite-stable": { + "flake": false, + "locked": { + "lastModified": 1730166465, + "narHash": "sha256-nq7bouXQXaaPPo/E+Jbq+wNHnatD4dY8OxSrRqzvy6s=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "a713cf46cb7db84a0d1b57c3a397c610cad3cf98", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "ref": "v0.5", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "xwayland-satellite-unstable": { + "flake": false, + "locked": { + "lastModified": 1736487362, + "narHash": "sha256-4kGoOA7FgK9N2mzS+TFEn41kUUNY6KwdiA/0rqlr868=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "8f55e27f63a749881c4bbfbb6b1da028342a91d1", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 66f65c4..f683266 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "cy's flake"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small"; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -20,28 +20,46 @@ inputs.nixpkgs.follows = "nixpkgs"; }; lanzaboote = { - url = "github:nix-community/lanzaboote/v0.4.1"; + url = "github:nix-community/lanzaboote/master"; inputs.nixpkgs.follows = "nixpkgs"; }; nixvim = { url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; + flake-parts.url = "github:hercules-ci/flake-parts"; + niri = { + url = "github:sodiboo/niri-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + conduwuit.url = "github:girlbossceo/conduwuit"; - nixpkgs-btrbk.url = "github:cything/nixpkgs/btrbk"; # unmerged PR nixpkgs-garage.url = "github:cything/nixpkgs/garage-module"; # unmerged PR + + nvim-github-theme = { + url = "github:projekt0n/github-nvim-theme"; + flake = false; + }; }; nixConfig = { extra-substituters = [ "https://cache.cything.io/central" - "https://cache.cything.io/infra-ci" - "https://cache.cything.io/attic" + "https://niri.cachix.org" + "https://nix-community.cachix.org" + "https://cache.garnix.io" + "https://cything.cachix.org" ]; extra-trusted-public-keys = [ "central:uWhjva6m6dhC2hqNisjn2hXGvdGBs19vPkA1dPEuwFg=" - "infra-ci:xG5f5tddUBcvToYjlpHD5OY/puYQkKmgKeIQCshNs38=" - "attic:HL3hVpqXxwcF7Q1R+IvU2i0+YxIjQA2xxKM5EJMXLLs=" + "niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" + "cything.cachix.org-1:xqW1W5NNL+wrM9wfSELb0MLj/harD2ZyB4HbdaMyvPI=" ]; builders-use-substitutes = true; }; @@ -51,120 +69,142 @@ self, nixpkgs, home-manager, - treefmt, disko, + flake-parts, ... }@inputs: - let - lib = nixpkgs.lib; - inherit (self) outputs; + flake-parts.lib.mkFlake { inherit inputs; } ( + { ... }: + { + imports = [ + inputs.treefmt.flakeModule + ]; + debug = true; + systems = [ + "x86_64-linux" + ]; + perSystem = + { + system, + ... + }: + { + # make pkgs available to `perSystem` + _module.args.pkgs = import inputs.nixpkgs { + inherit system; + config = { + allowUnfree = true; + }; + }; - systems = [ "x86_64-linux" ]; - forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system}); - overlays = [ - # (overlayPkgsFromFlake inputs.eza [ - # ]) - ] ++ import ./overlay; + treefmt = { + projectRootFile = "flake.nix"; + programs.nixfmt.enable = true; + programs.stylua.enable = true; + programs.yamlfmt.enable = true; + programs.typos.enable = true; + programs.shellcheck.enable = true; - pkgsFor = lib.genAttrs systems ( - system: - import nixpkgs { - inherit system overlays; - config = { - allowUnfree = true; + settings.global.excludes = [ + "secrets/*" + "**/*.png" # tries to format a png file?? + ]; + }; }; - } - ); - treefmtEval = forEachSystem ( - pkgs: - treefmt.lib.evalModule pkgs { - projectRootFile = "flake.nix"; - programs.nixfmt.enable = true; - programs.stylua.enable = true; - programs.yamlfmt.enable = true; - programs.typos.enable = true; - programs.shellcheck.enable = true; - programs.deadnix.enable = true; - - settings.global.excludes = [ "secrets/*" ]; - } - ); - in - { - formatter = forEachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper); - checks = forEachSystem (pkgs: { - formatting = treefmtEval.${pkgs.system}.config.build.check self; - }); - # lets us build overlaid packages with `nix build .#` - packages = pkgsFor; - - nixosConfigurations = - let - pkgs = pkgsFor.x86_64-linux; - in - { - ytnix = lib.nixosSystem { - specialArgs = { inherit inputs outputs; }; - modules = [ + flake = + let + pkgs = import nixpkgs { + config.allowUnfree = true; + system = "x86_64-linux"; + overlays = [ + inputs.niri.overlays.niri + inputs.rust-overlay.overlays.default + ] ++ import ./overlay; + }; + in + { + nixosConfigurations = + let + lib = nixpkgs.lib; + in { - nixpkgs = { inherit pkgs; }; - } - ./hosts/ytnix - inputs.sops-nix.nixosModules.sops - ./modules - inputs.lanzaboote.nixosModules.lanzaboote - ]; - }; + ytnix = lib.nixosSystem { + specialArgs = { inherit inputs; }; + modules = [ + { + nixpkgs = { inherit pkgs; }; + } + ./hosts/ytnix + inputs.sops-nix.nixosModules.sops + ./modules + inputs.lanzaboote.nixosModules.lanzaboote + inputs.niri.nixosModules.niri + ]; + }; + chunk = lib.nixosSystem { + specialArgs = { inherit inputs; }; + modules = [ + { + nixpkgs = { inherit pkgs; }; + disabledModules = [ + "services/web-servers/garage.nix" + ]; + } + ./hosts/chunk + inputs.sops-nix.nixosModules.sops + ./modules + (inputs.nixpkgs-garage + "/nixos/modules/services/web-servers/garage.nix") + ]; + }; - chunk = lib.nixosSystem { - specialArgs = { inherit inputs outputs; }; - modules = [ + titan = lib.nixosSystem { + specialArgs = { inherit inputs; }; + modules = [ + { + nixpkgs = { inherit pkgs; }; + } + ./hosts/titan + disko.nixosModules.disko + inputs.sops-nix.nixosModules.sops + ./modules + ]; + }; + }; + homeConfigurations = + let + lib = home-manager.lib; + in { - nixpkgs = { inherit pkgs; }; - disabledModules = [ - "services/web-servers/garage.nix" - ]; - } - ./hosts/chunk - inputs.sops-nix.nixosModules.sops - ./modules - (inputs.nixpkgs-garage + "/nixos/modules/services/web-servers/garage.nix") - ]; + "yt@ytnix" = lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = { inherit inputs; }; + modules = [ + ./home/yt/ytnix.nix + inputs.nixvim.homeManagerModules.nixvim + inputs.niri.homeModules.config + ]; + }; + + "yt@chunk" = lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = { inherit inputs; }; + modules = [ + ./home/yt/chunk.nix + inputs.nixvim.homeManagerModules.nixvim + ]; + }; + + "codespace@codespace" = lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = { inherit inputs; }; + modules = [ + ./home/yt/codespace.nix + inputs.nixvim.homeManagerModules.nixvim + ]; + }; + }; }; - - titan = lib.nixosSystem { - specialArgs = { inherit inputs outputs; }; - modules = [ - { - nixpkgs = { inherit pkgs; }; - } - ./hosts/titan - disko.nixosModules.disko - inputs.sops-nix.nixosModules.sops - ./modules - ]; - }; - }; - - homeConfigurations = { - "yt@ytnix" = home-manager.lib.homeManagerConfiguration { - pkgs = pkgsFor.x86_64-linux; - extraSpecialArgs = { inherit inputs outputs; }; - modules = [ - ./home/yt/ytnix.nix - inputs.nixvim.homeManagerModules.nixvim - ]; - }; - - "yt@chunk" = home-manager.lib.homeManagerConfiguration { - pkgs = pkgsFor.x86_64-linux; - extraSpecialArgs = { inherit inputs outputs; }; - modules = [ - ./home/yt/chunk.nix - inputs.nixvim.homeManagerModules.nixvim - ]; - }; - }; - }; + } + ); } diff --git a/garnix.yaml b/garnix.yaml new file mode 100644 index 0000000..c189664 --- /dev/null +++ b/garnix.yaml @@ -0,0 +1,6 @@ +builds: + include: + - 'nixosConfigurations.*' + - 'homeConfigurations.*' + - '*.aarch64-linux.*' + - '*.x86_64-linux.*' diff --git a/home/foot.nix b/home/foot.nix index 2df77bc..ce7cb0c 100644 --- a/home/foot.nix +++ b/home/foot.nix @@ -17,40 +17,32 @@ blink = "yes"; blink-rate = 500; beam-thickness = 1.5; + color = "161821 c6c8d1"; }; mouse = { hide-when-typing = "yes"; }; colors = { - background = "161821"; foreground = "c6c8d1"; - - selection-background = "1e2132"; - selection-foreground = "c6c8d1"; - - regular0 = "161821"; - bright0 = "6b7089"; - + background = "161821"; + regular0 = "1e2132"; regular1 = "e27878"; - bright1 = "e98989"; - regular2 = "b4be82"; - bright2 = "c0ca8e"; - regular3 = "e2a478"; - bright3 = "e9b189"; - regular4 = "84a0c6"; - bright4 = "91acd1"; - regular5 = "a093c7"; - bright5 = "ada0d3"; - regular6 = "89b8c2"; - bright6 = "95c4ce"; - regular7 = "c6c8d1"; + bright0 = "6b7089"; + bright1 = "e98989"; + bright2 = "c0ca8e"; + bright3 = "e9b189"; + bright4 = "91acd1"; + bright5 = "ada0d3"; + bright6 = "95c4ce"; bright7 = "d2d4de"; + selection-foreground = "161821"; + selection-background = "c6c8d1"; }; key-bindings = { diff --git a/home/ghostty.nix b/home/ghostty.nix new file mode 100644 index 0000000..9a08a74 --- /dev/null +++ b/home/ghostty.nix @@ -0,0 +1,19 @@ +{ ... }: { + programs.ghostty = { + enable = true; + enableZshIntegration = true; + clearDefaultKeybinds = true; + settings = { + theme = "iceberg-dark"; + font-family = "IBM Plex Mono"; + font-size = "12"; + window-decoration = false; + confirm-close-surface = false; + keybind = [ + "ctrl+q=quit" + "ctrl+shift+c=copy_to_clipboard" + "ctrl+shift+v=paste_from_clipboard" + ]; + }; + }; +} diff --git a/home/irssi.nix b/home/irssi.nix new file mode 100644 index 0000000..91ba914 --- /dev/null +++ b/home/irssi.nix @@ -0,0 +1,21 @@ +{...}: { + programs.irssi = { + enable = true; + networks.liberachat = { + nick = "cy7"; + server = { + address = "irc.libera.chat"; + port = 6697; + autoConnect = true; + }; + channels = { + nixos.autoJoin = true; + linux.autoJoin = true; + rust.autoJoin = true; + }; + }; + extraConfig = '' + ignores = ( { level = "JOINS PARTS QUITS MODES NICKS"; } ) + ''; + }; +} diff --git a/home/kitty.nix b/home/kitty.nix new file mode 100644 index 0000000..fc0b577 --- /dev/null +++ b/home/kitty.nix @@ -0,0 +1,67 @@ +{pkgs, ...}: { + programs.kitty = { + enable = true; + font = { + name = "IBM Plex Mono"; + package = pkgs.ibm-plex; + size = 12; + }; + themeFile = "GitHub_Dark"; + settings = { + enable_audio_bell = false; + # how many windows should be open before kitty asks + # for confirmation + confirm_os_window_close = 0; + clear_all_shortcuts = true; + + # will probably lower this later but the max allowed is actually 4GB + # this is NOT stored in memory and can only be viewed wth scrollback_pager + "scrollback_pager_history_size" = "1024"; + # see https://github.com/sharkdp/bat/issues/1077#issuecomment-652785399 + "scrollback_pager" = "bat --pager='less -FR +G'"; + }; + keybindings = { + # kitty_mod is ctrl+shift by default + "kitty_mod+c" = "copy_to_clipboard"; + "kitty_mod+v" = "paste_from_clipboard"; + # "ctrl+q" = "quit"; + + "kitty_mod+m" = "show_scrollback"; + + # windows + "kitty_mod+h" = "neighboring_window left"; + "kitty_mod+alt+h" = "move_window left"; + "kitty_mod+l" = "neighboring_window right"; + "kitty_mod+alt+l" = "move_window right"; + "kitty_mod+j" = "neighboring_window down"; + "kitty_mod+alt+j" = "move_window down"; + "kitty_mod+k" = "neighboring_window up"; + "kitty_mod+alt+k" = "move_window up"; + "ctrl+f3" = "detach_window new-tab"; + "ctrl+f4" = "detach_window tab-left"; + "ctrl+f5" = "load_config_file"; + "ctrl+alt+l" = "next_layout"; + "ctrl+alt+t" = "goto_layout tall"; + "ctrl+alt+s" = "goto_layout stack"; + "kitty_mod+enter" = "new_window_with_cwd"; + "kitty_mod+r" = "resize_window"; + + # tabs + "kitty_mod+n" = "next_tab"; + "kitty_mod+p" = "previous_tab"; + "kitty_mod+alt+n" = "move_tab_forward"; + "kitty_mod+alt+p" = "move_tab_backward"; + "kitty_mod+w" = "close_tab"; + "kitty_mod+t" = "new_tab_with_cwd"; + "ctrl+f2" = "detach_tab"; + + # hints + "kitty_mod+o>o" = "open_url_with_hints"; + "kitty_mod+o>p" = "kitten hints --type path --program -"; + "kitty_mod+o>n" = "kitten hints --type line --program -"; + "kitty_mod+o>w" = "kitten hints --type word --program -"; + "kitty_mod+o>h" = "kitten hints --type hash --program -"; + "kitty_mod+o>l" = "kitten hints --type linenum"; + }; + }; +} diff --git a/home/niri/default.nix b/home/niri/default.nix new file mode 100644 index 0000000..92f5701 --- /dev/null +++ b/home/niri/default.nix @@ -0,0 +1,200 @@ +{ + config, + pkgs, + lib, + ... +}: +let + wallpaper = "${./nixos-c-book.png}"; + terminal = "kitty"; + menu = [ + "fuzzel" + "-w" + "100" + ]; + browser = "librewolf"; + file-manager = "thunar"; + clipboard = "cliphist list | ${lib.concatStringsSep " " menu} --dmenu | cliphist decode | wl-copy"; +in +{ + programs.niri.settings = { + prefer-no-csd = true; + input.keyboard.xkb.options = "ctrl:nocaps"; + spawn-at-startup = [ + { command = [ "${lib.getExe pkgs.waybar}" ]; } + { + command = [ + "${lib.getExe pkgs.swaybg}" + "-m" + "fill" + "-i" + wallpaper + ]; + } + { command = [ "${lib.getExe pkgs.xwayland-satellite}" ]; } + { + command = [ + "wl-paste" + "--watch" + "cliphist" + "store" + ]; + } + ]; + hotkey-overlay.skip-at-startup = true; + + input = { + touchpad = { + tap = true; + dwt = true; + natural-scroll = true; + click-method = "clickfinger"; + }; + warp-mouse-to-focus = true; + focus-follows-mouse.enable = false; + }; + + environment = { + DISPLAY = ":0"; # for xwayland-satellite + ANKI_WAYLAND = "1"; + }; + + layout = { + gaps = 0; + focus-ring = { + width = 4; + active.color = "#4c7899"; + inactive.color = "#333333"; + }; + always-center-single-column = true; + border.enable = false; + }; + + window-rules = [ + { + matches = [ + { + app-id = "anki"; + title = "Add"; + } + { app-id = "mpv"; } + { app-id = "Bitwarden"; } + ]; + open-floating = true; + } + { + matches = [ { app-id = "anki"; } ]; + default-column-width.proportion = .25; + } + { + matches = [ + { app-id = "foot"; } + { + app-id = "anki"; + title = "^Browse"; + } + { app-id = "com.mitchellh.ghostt"; } + { app-id = "org.kde.okular"; } + { app-id = "kitty"; } + ]; + default-column-width.proportion = .5; + } + { + matches = [ { app-id = "librewolf"; } ]; + default-column-width.proportion = .75; + } + ]; + }; + + programs.niri.settings.binds = + with config.lib.niri.actions; + let + sh = spawn "sh" "-c"; + in + { + "Mod+Return".action = spawn terminal; + "Mod+D".action = spawn menu; + + "Mod+Shift+E".action = quit; + "Mod+Equal".action = set-column-width "+10%"; + "Mod+Minus".action = set-column-width "-10%"; + "Mod+Shift+Equal".action = set-window-height "+10%"; + "Mod+Shift+Minus".action = set-window-height "-10%"; + "Super+Alt+L".action = spawn "swaylock"; + "Mod+Ctrl+Q".action = close-window; + "Mod+H".action = focus-column-left; + "Mod+L".action = focus-column-right; + "Mod+K".action = focus-window-up; + "Mod+J".action = focus-window-down; + "Mod+Shift+H".action = move-column-left; + "Mod+Shift+L".action = move-column-right; + "Mod+Shift+K".action = move-window-up; + "Mod+Shift+J".action = move-window-down; + "Mod+U".action = focus-workspace-up; + "Mod+I".action = focus-workspace-down; + "Mod+Shift+U".action = move-window-to-workspace-up; + "Mod+Shift+I".action = move-window-to-workspace-down; + "Mod+W".action = maximize-column; + "Mod+C".action = center-column; + "Mod+Shift+Space".action = toggle-window-floating; + "Mod+Space".action = switch-focus-between-floating-and-tiling; + "Print".action = screenshot; + "Alt+Print".action = screenshot-window; + "Ctrl+Print".action = screenshot-screen; + "Mod+R".action = switch-preset-column-width; + "Mod+Shift+R".action = switch-preset-window-height; + "Mod+Ctrl+R".action = reset-window-height; + "Mod+F".action = fullscreen-window; + "Mod+WheelScrollDown" = { + cooldown-ms = 150; + action = focus-column-right; + }; + "Mod+WheelScrollUp" = { + cooldown-ms = 150; + action = focus-column-left; + }; + "Mod+Shift+WheelScrollDown" = { + cooldown-ms = 150; + action = focus-workspace-down; + }; + "Mod+Shift+WheelScrollUp" = { + cooldown-ms = 150; + action = focus-workspace-up; + }; + + "XF86AudioRaiseVolume".action = sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+"; + "XF86AudioLowerVolume".action = sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-"; + "XF86AudioMute".action = sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; + "XF86MonBrightnessUp".action = sh "brightnessctl set 1%+"; + "XF86MonBrightnessDown".action = sh "brightnessctl set 1%-"; + + "Mod+1".action = focus-workspace 1; + "Mod+2".action = focus-workspace 2; + "Mod+3".action = focus-workspace 3; + "Mod+4".action = focus-workspace 4; + "Mod+5".action = focus-workspace 5; + "Mod+6".action = focus-workspace 6; + "Mod+7".action = focus-workspace 7; + "Mod+8".action = focus-workspace 8; + "Mod+9".action = focus-workspace 9; + "Mod+Shift+1".action = move-column-to-workspace 1; + "Mod+Shift+2".action = move-column-to-workspace 2; + "Mod+Shift+3".action = move-column-to-workspace 3; + "Mod+Shift+4".action = move-column-to-workspace 4; + "Mod+Shift+5".action = move-column-to-workspace 5; + "Mod+Shift+6".action = move-column-to-workspace 6; + "Mod+Shift+7".action = move-column-to-workspace 7; + "Mod+Shift+8".action = move-column-to-workspace 8; + "Mod+Shift+9".action = move-column-to-workspace 9; + + "Mod+Alt+B".action = spawn browser; + "Mod+Alt+A".action = spawn "anki"; + "Mod+Alt+F".action = spawn file-manager; + "Mod+Alt+E".action = spawn "evolution"; + "Mod+P".action = spawn "bitwarden"; + "Mod+Comma".action = sh clipboard; + + "MouseForward".action = spawn "sh" "${./scripts/remote.sh}" "btn1"; + "MouseBack".action = spawn "sh" "${./scripts/remote.sh}"; + }; +} diff --git a/home/niri/nixos-c-book.png b/home/niri/nixos-c-book.png new file mode 100644 index 0000000..96abf8f Binary files /dev/null and b/home/niri/nixos-c-book.png differ diff --git a/home/niri/scripts/remote.sh b/home/niri/scripts/remote.sh new file mode 100755 index 0000000..0ef7c0d --- /dev/null +++ b/home/niri/scripts/remote.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +active_window=$(niri msg --json focused-window |jq -r .app_id) + +if [ "$1" = "btn1" ]; then + if [ "$active_window" = "anki" ]; then + wtype " " + elif [ "$active_window" = "kitty" ]; then + wtype -M ctrl -M shift -k c -m ctrl -m shift + elif [ "$active_window" = "chromium-browser" ] || [ "$active_window" = "librewolf" ]; then + wtype -M alt -P right -p right -m alt + else + wtype -M ctrl -k c -m ctrl + fi +else + if [ "$active_window" = "anki" ]; then + wtype "1" + elif [ "$active_window" = "kitty" ]; then + wtype -M ctrl -M shift -k v -m ctrl + elif [ "$active_window" = "chromium-browser" ] || [ "$active_window" = "librewolf" ]; then + wtype -M alt -P left -p left -m alt + else + wtype -M ctrl -k v -m ctrl + fi +fi diff --git a/home/nixvim/default.nix b/home/nixvim/default.nix index 6d453f8..8a302b0 100644 --- a/home/nixvim/default.nix +++ b/home/nixvim/default.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ pkgs, inputs, ... }: { programs.nixvim = { enable = true; @@ -15,15 +15,18 @@ incsearch = true; smartcase = true; }; - colorscheme = "iceberg"; - clipboard.register = "unnamedplus"; + colorscheme = "github_dark_tritanopia"; + clipboard.register = "unnamed"; globals = { mapleader = ","; }; - extraPlugins = with pkgs.vimPlugins; [ - iceberg-vim + extraPlugins = [ + (pkgs.vimUtils.buildVimPlugin { + name = "gitub-theme"; + src = inputs.nvim-github-theme; + }) ]; keymaps = [ @@ -95,8 +98,8 @@ "" = "cmp.mapping.abort()"; "" = "cmp.mapping.select_next_item()"; "" = "cmp.mapping.select_prev_item()"; - "" = "cmp.mapping.scroll_docs(-4)"; - "" = "cmp.mapping.scroll_docs(4)"; + "" = "cmp.mapping.scroll_docs(-4)"; + "" = "cmp.mapping.scroll_docs(4)"; "" = '' cmp.mapping(function(fallback) if cmp.visible() then @@ -147,7 +150,16 @@ servers = { bashls.enable = true; lua_ls.enable = true; - nil_ls.enable = true; + nil_ls = { + enable = true; + settings = { + formatting.command = [ + "nix" + "fmt" + ]; + nix.flake.autoArchive = true; + }; + }; rust_analyzer = { enable = true; installRustc = true; @@ -163,14 +175,20 @@ plugins.fzf-lua = { enable = true; keymaps = { - "ff" = "git_files"; + "ff" = "files"; "fg" = "live_grep"; }; }; plugins.neo-tree = { enable = true; - closeIfLastWindow = true; + buffers.followCurrentFile.enabled = true; + window.width = 30; + }; + + plugins.gitsigns = { + enable = true; + settings.current_line_blame = true; }; plugins.cmp-buffer.enable = true; @@ -182,6 +200,8 @@ plugins.nvim-autopairs.enable = true; plugins.rainbow-delimiters.enable = true; plugins.web-devicons.enable = true; - plugins.gitsigns.enable = true; + plugins.auto-save.enable = true; + plugins.indent-blankline.enable = true; + plugins.undotree.enable = true; }; } diff --git a/home/vscode.nix b/home/vscode.nix new file mode 100644 index 0000000..d2b7bb0 --- /dev/null +++ b/home/vscode.nix @@ -0,0 +1,18 @@ +{ pkgs, ... }: +{ + programs.vscode = { + enable = true; + package = pkgs.vscodium; + enableUpdateCheck = false; + enableExtensionUpdateCheck = false; + mutableExtensionsDir = false; + extensions = with pkgs.vscode-extensions; [ + vscodevim.vim + jnoortheen.nix-ide # nix language support + editorconfig.editorconfig # editorconfig + dracula-theme.theme-dracula # color scheme + tomoki1207.pdf # pdf viewer + yzhang.markdown-all-in-one # markdown tools + ]; + }; +} diff --git a/home/waybar/config b/home/waybar/config index 13b7819..6038a44 100644 --- a/home/waybar/config +++ b/home/waybar/config @@ -6,8 +6,8 @@ "margin-left": 0, "margin-right": 0, "margin-top": 0, - "modules-left": ["sway/workspaces", "clock#time", "clock#date", "battery"], // Sets modules for the left of the bar - "modules-center": ["sway/window"], // Set modules for the center of the bar + "modules-left": ["niri/workspaces", "clock#time", "clock#date", "battery"], // Sets modules for the left of the bar + "modules-center": ["niri/window"], // Set modules for the center of the bar "modules-right": ["tray", "temperature", "cpu", "memory", "wireplumber"], // Set modules for the right of the bar "clock#time": { "format": "{:%H:%M:%S}", @@ -71,7 +71,7 @@ "on-click": "pavucontrol", "interval": 4, }, - "sway/window": { + "niri/window": { "max-length": 64, }, "tray": { diff --git a/home/yt/codespace.nix b/home/yt/codespace.nix new file mode 100644 index 0000000..6720c17 --- /dev/null +++ b/home/yt/codespace.nix @@ -0,0 +1,22 @@ +{ + pkgs, + ... +}: +{ + imports = [ + ./common.nix + ]; + home = { + username = "codespace"; + homeDirectory = "/home/codespace"; + stateVersion = "24.05"; + }; + programs.home-manager.enable = true; + + systemd.user.startServices = "sd-switch"; + + home.packages = with pkgs; [ + foot.terminfo + attic-client + ]; +} diff --git a/home/yt/common.nix b/home/yt/common.nix index b4894d5..77c98fe 100644 --- a/home/yt/common.nix +++ b/home/yt/common.nix @@ -30,7 +30,7 @@ programs.git = { enable = true; userName = "cy"; - userEmail = "hi@cything.io"; + userEmail = "cy@cy7.sh"; delta = { enable = true; options = { diff --git a/home/yt/ytnix.nix b/home/yt/ytnix.nix index 67f448d..b150993 100644 --- a/home/yt/ytnix.nix +++ b/home/yt/ytnix.nix @@ -6,6 +6,9 @@ imports = [ ./common.nix ../foot.nix + ../niri + ../irssi.nix + ../kitty.nix ]; home = { username = "yt"; @@ -18,9 +21,9 @@ qt = { enable = true; - platformTheme.name = "gtk"; - style.name = "adwaita-dark"; - style.package = pkgs.adwaita-qt; + platformTheme.name = "kde"; + style.name = "breeze-dark"; + style.package = pkgs.kdePackages.breeze; }; gtk = { @@ -39,8 +42,17 @@ }; }; - home.sessionVariables = { - ANKI_WAYLAND = "1"; + home.pointerCursor = { + package = pkgs.bibata-cursors; + name = "Bibata-Modern"; + gtk.enable = true; + x11.enable = true; + }; + + dconf.settings = { + "org/gnome/desktop/interface" = { + cursor-theme = "Bibata-Modern"; + }; }; home.packages = with pkgs; [ @@ -50,7 +62,6 @@ bitwarden-desktop bitwarden-cli fastfetch - discord nwg-look kdePackages.gwenview kdePackages.okular @@ -99,6 +110,8 @@ clang seahorse github-cli + fuzzel + nixpkgs-review ]; programs.waybar.enable = true; @@ -121,7 +134,6 @@ }; xdg.configFile = { - sway.source = ../sway; rofi.source = ../rofi; waybar.source = ../waybar; mpv.source = ../mpv; @@ -138,4 +150,9 @@ }; services.gnome-keyring.enable = true; + + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; } diff --git a/home/zsh/default.nix b/home/zsh/default.nix index 2dd2a84..994fa1f 100644 --- a/home/zsh/default.nix +++ b/home/zsh/default.nix @@ -87,9 +87,9 @@ "ta" = "tmux new-session -A -s"; "se" = "sudoedit"; "s" = "sudo"; - "nrs" = "sudo nixos-rebuild switch --flake ."; - "nrt" = "sudo nixos-rebuild test --flake ."; - "hrs" = "home-manager switch --flake ."; + "nrs" = "sudo nixos-rebuild switch -L --flake ."; + "nrt" = "sudo nixos-rebuild test -L --flake ."; + "hrs" = "home-manager switch -L --flake ."; "g" = "git"; "ga" = "git add"; "gaa" = "git add --all"; @@ -116,4 +116,5 @@ programs.zoxide.enableZshIntegration = true; programs.eza.enableZshIntegration = true; programs.nix-index.enableZshIntegration = false; + programs.direnv.enableZshIntegration = false; } diff --git a/hosts/chunk/Caddyfile b/hosts/chunk/Caddyfile index d9a069d..5e56278 100644 --- a/hosts/chunk/Caddyfile +++ b/hosts/chunk/Caddyfile @@ -28,7 +28,7 @@ git.cy7.sh { reverse_proxy localhost:3000 } -rss.cything.io { +rss.cy7.sh { import common reverse_proxy localhost:8080 } diff --git a/hosts/chunk/conduwuit.nix b/hosts/chunk/conduwuit.nix index 6bada8e..7fa1852 100644 --- a/hosts/chunk/conduwuit.nix +++ b/hosts/chunk/conduwuit.nix @@ -1,7 +1,8 @@ -{ ... }: +{ inputs, ... }: { services.conduwuit = { enable = true; + package = inputs.conduwuit.packages.x86_64-linux.static-x86_64-linux-musl-all-features-x86_64-haswell-optimised; settings.global = { port = [ 8448 ]; server_name = "cything.io"; diff --git a/hosts/chunk/element.nix b/hosts/chunk/element.nix index 958666e..81ab246 100644 --- a/hosts/chunk/element.nix +++ b/hosts/chunk/element.nix @@ -7,9 +7,12 @@ virtualisation.oci-containers.containers.element = { image = "vectorim/element-web"; autoStart = true; - ports = [ "127.0.0.1:8089:80" ]; + ports = [ "127.0.0.1:8089:8089" ]; pull = "newer"; networks = [ "element-net" ]; + environment = { + ELEMENT_WEB_PORT = "8089"; + }; }; systemd.services.create-element-net = { diff --git a/hosts/chunk/forgejo.nix b/hosts/chunk/forgejo.nix index 5b8ad1d..07d0e69 100644 --- a/hosts/chunk/forgejo.nix +++ b/hosts/chunk/forgejo.nix @@ -10,7 +10,7 @@ HTTP_PORT = 3000; HTTP_ADDR = "127.0.0.1"; DOMAIN = "git.cy7.sh"; - LANDING_PAGE = "/cy"; + LANDING_PAGE = "explore"; }; session.COOKIE_SECURE = true; service.DISABLE_REGISTRATION = true; @@ -20,6 +20,7 @@ }; actions.ENABLED = false; repository.ENABLE_PUSH_CREATE_USER = true; + indexer.REPO_INDEXER_ENABLED = true; }; database = { type = "postgres"; diff --git a/hosts/chunk/miniflux.nix b/hosts/chunk/miniflux.nix index 9376ca6..f40b2b6 100644 --- a/hosts/chunk/miniflux.nix +++ b/hosts/chunk/miniflux.nix @@ -5,7 +5,7 @@ adminCredentialsFile = config.sops.secrets."miniflux/env".path; config = { PORT = 8080; - BASE_URL = "https://rss.cything.io"; + BASE_URL = "https://rss.cy7.sh"; FORCE_REFRESH_INTERVAL = 0; # don't rate limit me }; }; diff --git a/hosts/ytnix/default.nix b/hosts/ytnix/default.nix index 016582b..0024c40 100644 --- a/hosts/ytnix/default.nix +++ b/hosts/ytnix/default.nix @@ -1,7 +1,6 @@ { config, pkgs, - inputs, lib, ... }: @@ -10,12 +9,6 @@ ./hardware-configuration.nix ../common.nix ../zsh.nix - { - disabledModules = [ - "services/backup/btrbk.nix" - ]; - } - (inputs.nixpkgs-btrbk + "/nixos/modules/services/backup/btrbk.nix") ]; sops.age.keyFile = "/root/.config/sops/age/keys.txt"; @@ -48,7 +41,7 @@ efi.canTouchEfiVariables = false; # toggle when installing }; tmp.cleanOnBoot = true; - kernelPackages = pkgs.linuxPackages_latest; + kernelPackages = pkgs.linuxKernel.packages.linux_zen; extraModulePackages = with config.boot.kernelPackages; [ rtl8821ce ]; @@ -195,11 +188,6 @@ }; services.blueman.enable = true; - programs.sway = { - enable = true; - wrapperFeatures.gtk = true; - }; - my.backup = { enable = true; jobName = "ytnixRsync"; @@ -322,4 +310,9 @@ }; services.trezord.enable = true; + + my.niri = { + enable = true; + package = pkgs.niri-unstable; + }; } diff --git a/modules/default.nix b/modules/default.nix index 2155137..bde6e96 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -2,5 +2,6 @@ { imports = [ ./backup.nix + ./niri.nix ]; } diff --git a/modules/niri.nix b/modules/niri.nix new file mode 100644 index 0000000..b5a6ef4 --- /dev/null +++ b/modules/niri.nix @@ -0,0 +1,21 @@ +{ + pkgs, + config, + lib, + ... +}: +let + cfg = config.my.niri; +in +{ + options.my.niri = { + enable = lib.mkEnableOption "niri"; + package = lib.mkPackageOption pkgs "niri" { }; + }; + + config = lib.mkIf cfg.enable { + programs.niri.package = cfg.package; + programs.niri.enable = true; + programs.xwayland.enable = true; + }; +} diff --git a/overlay/conduwuit/default.nix b/overlay/conduwuit/default.nix index 6ce6e72..1222c83 100644 --- a/overlay/conduwuit/default.nix +++ b/overlay/conduwuit/default.nix @@ -1,23 +1,28 @@ -final: prev: { +final: prev: +let + newRust = final.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; + newRustPlatform = final.makeRustPlatform { + cargo = newRust; + rustc = newRust; + }; +in +{ conduwuit = prev.conduwuit.override (old: { - rustPlatform = old.rustPlatform // { + rustPlatform = newRustPlatform // { buildRustPackage = args: - old.rustPlatform.buildRustPackage ( + newRustPlatform.buildRustPackage ( args // { version = "0.5.0-rc2"; src = final.fetchFromGitHub { owner = "girlbossceo"; repo = "conduwuit"; - rev = "8c74e35e7640a041c1f3496d82585e5240294352"; - hash = "sha256-/2YD3TXT9pQ7oPEm9wDrq35afU88qukMIWqrBX5JyXg="; + rev = "5b8464252c2c03edf65e43153be026dbb768a12a"; + hash = "sha256-yNdxoVZX13QUDJYM6zTMY9ExvacTqB+f0MLvDreSW8U="; }; doCheck = false; - cargoHash = "sha256-ZenMTCEJrALKQnW7/eXqrhFj+BedE9i/rQZMsPHl8K0="; - cargoPatches = [ - ./fix-lint.patch - ]; + cargoHash = "sha256-g19UujLI9d4aw+1273gfC17LDLOciqBvuLhe/VCsh80="; # unstable has this set to "conduit" meta.mainProgram = "conduwuit"; diff --git a/overlay/conduwuit/fix-lint.patch b/overlay/conduwuit/fix-lint.patch deleted file mode 100644 index 120ec8a..0000000 --- a/overlay/conduwuit/fix-lint.patch +++ /dev/null @@ -1,74 +0,0 @@ -diff --git a/Cargo.lock b/Cargo.lock -index 3f900a114..0d30a3fec 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -4493,7 +4493,7 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - [[package]] - name = "tracing" - version = "0.1.41" --source = "git+https://github.com/girlbossceo/tracing?rev=ccc4fbd8238c2d5ba354e61ec17ac610af11401d#ccc4fbd8238c2d5ba354e61ec17ac610af11401d" -+source = "git+https://github.com/girlbossceo/tracing?rev=3cf1c991e3660785d3855a34245949557db33209#3cf1c991e3660785d3855a34245949557db33209" - dependencies = [ - "log", - "pin-project-lite", -@@ -4504,7 +4504,7 @@ dependencies = [ - [[package]] - name = "tracing-attributes" - version = "0.1.28" --source = "git+https://github.com/girlbossceo/tracing?rev=ccc4fbd8238c2d5ba354e61ec17ac610af11401d#ccc4fbd8238c2d5ba354e61ec17ac610af11401d" -+source = "git+https://github.com/girlbossceo/tracing?rev=3cf1c991e3660785d3855a34245949557db33209#3cf1c991e3660785d3855a34245949557db33209" - dependencies = [ - "proc-macro2", - "quote", -@@ -4514,7 +4514,7 @@ dependencies = [ - [[package]] - name = "tracing-core" - version = "0.1.33" --source = "git+https://github.com/girlbossceo/tracing?rev=ccc4fbd8238c2d5ba354e61ec17ac610af11401d#ccc4fbd8238c2d5ba354e61ec17ac610af11401d" -+source = "git+https://github.com/girlbossceo/tracing?rev=3cf1c991e3660785d3855a34245949557db33209#3cf1c991e3660785d3855a34245949557db33209" - dependencies = [ - "once_cell", - "valuable", -@@ -4534,7 +4534,7 @@ dependencies = [ - [[package]] - name = "tracing-log" - version = "0.2.0" --source = "git+https://github.com/girlbossceo/tracing?rev=ccc4fbd8238c2d5ba354e61ec17ac610af11401d#ccc4fbd8238c2d5ba354e61ec17ac610af11401d" -+source = "git+https://github.com/girlbossceo/tracing?rev=3cf1c991e3660785d3855a34245949557db33209#3cf1c991e3660785d3855a34245949557db33209" - dependencies = [ - "log", - "once_cell", -@@ -4562,7 +4562,7 @@ dependencies = [ - [[package]] - name = "tracing-subscriber" - version = "0.3.18" --source = "git+https://github.com/girlbossceo/tracing?rev=ccc4fbd8238c2d5ba354e61ec17ac610af11401d#ccc4fbd8238c2d5ba354e61ec17ac610af11401d" -+source = "git+https://github.com/girlbossceo/tracing?rev=3cf1c991e3660785d3855a34245949557db33209#3cf1c991e3660785d3855a34245949557db33209" - dependencies = [ - "matchers", - "nu-ansi-term", -diff --git a/Cargo.toml b/Cargo.toml -index 76acda807..a2916a6aa 100644 ---- a/Cargo.toml -+++ b/Cargo.toml -@@ -513,16 +513,16 @@ version = "0.2" - # https://github.com/girlbossceo/tracing/commit/b348dca742af641c47bc390261f60711c2af573c - [patch.crates-io.tracing-subscriber] - git = "https://github.com/girlbossceo/tracing" --rev = "ccc4fbd8238c2d5ba354e61ec17ac610af11401d" -+rev = "3cf1c991e3660785d3855a34245949557db33209" - [patch.crates-io.tracing] - git = "https://github.com/girlbossceo/tracing" --rev = "ccc4fbd8238c2d5ba354e61ec17ac610af11401d" -+rev = "3cf1c991e3660785d3855a34245949557db33209" - [patch.crates-io.tracing-core] - git = "https://github.com/girlbossceo/tracing" --rev = "ccc4fbd8238c2d5ba354e61ec17ac610af11401d" -+rev = "3cf1c991e3660785d3855a34245949557db33209" - [patch.crates-io.tracing-log] - git = "https://github.com/girlbossceo/tracing" --rev = "ccc4fbd8238c2d5ba354e61ec17ac610af11401d" -+rev = "3cf1c991e3660785d3855a34245949557db33209" - - # adds a tab completion callback: https://github.com/girlbossceo/rustyline-async/commit/de26100b0db03e419a3d8e1dd26895d170d1fe50 - # adds event for CTRL+\: https://github.com/girlbossceo/rustyline-async/commit/67d8c49aeac03a5ef4e818f663eaa94dd7bf339b diff --git a/overlay/conduwuit/rust-toolchain.toml b/overlay/conduwuit/rust-toolchain.toml new file mode 100644 index 0000000..97e33c9 --- /dev/null +++ b/overlay/conduwuit/rust-toolchain.toml @@ -0,0 +1,28 @@ +# This is the authoritiative configuration of this project's Rust toolchain. +# +# Other files that need upkeep when this changes: +# +# * `Cargo.toml` +# * `flake.nix` +# +# Search in those files for `rust-toolchain.toml` to find the relevant places. +# If you're having trouble making the relevant changes, bug a maintainer. + +[toolchain] +channel = "1.84.0" +profile = "minimal" +components = [ + # For rust-analyzer + "rust-src", + "rust-analyzer", + # For CI and editors + "rustfmt", + "clippy", +] +targets = [ + #"x86_64-apple-darwin", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl", + "aarch64-unknown-linux-musl", + #"aarch64-apple-darwin", +] diff --git a/overlay/default.nix b/overlay/default.nix index 99fc17b..123e1f2 100644 --- a/overlay/default.nix +++ b/overlay/default.nix @@ -2,6 +2,7 @@ let overlays = [ ./conduwuit ./attic + ./kernel.nix ]; importedOverlays = map (m: import m) overlays; in diff --git a/overlay/kernel.nix b/overlay/kernel.nix new file mode 100644 index 0000000..be2404e --- /dev/null +++ b/overlay/kernel.nix @@ -0,0 +1,11 @@ +final: prev: +let + inherit (prev) lib; +in +{ + linuxKernels.kernels.linux_zen = prev.linuxKernels.kernels.linux_zen.override (old: { + extraStructuredConfig = with lib.kernel; { + CONFIG_SCHED_MUQSS = yes; + }; + }); +}