Compare commits

..

No commits in common. "main" and "blueprint" have entirely different histories.

45 changed files with 495 additions and 991 deletions

View file

@ -27,11 +27,7 @@ jobs:
remove-codeql: 'true' remove-codeql: 'true'
remove-docker-images: 'true' remove-docker-images: 'true'
build-mount-path: /nix build-mount-path: /nix
- name: Install Nix - uses: nixbuild/nix-quick-install-action@master
uses: cachix/install-nix-action@v30
with:
install_url: https://releases.nixos.org/nix/nix-2.25.4/install
extra_nix_config: 'accept-flake-config = true'
- name: Sync repository - name: Sync repository
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:

View file

@ -103,13 +103,3 @@ creation_rules:
- age: - age:
- *chunk - *chunk
- *cy - *cy
- path_regex: secrets/services/tailscale.yaml
key_groups:
- age:
- *chunk
- *cy
- path_regex: secrets/yt/(.*).yaml$
key_groups:
- age:
- *yt
- *cy

534
flake.lock generated
View file

@ -32,11 +32,11 @@
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1737621947, "lastModified": 1733424942,
"narHash": "sha256-8HFvG7fvIFbgtaYAY2628Tb89fA55nPm2jSiNs0/Cws=", "narHash": "sha256-5t7Sl6EkOaoP4FvzLmH7HFDbdl9SizmLh53RjDQCbWQ=",
"owner": "cachix", "owner": "cachix",
"repo": "cachix", "repo": "cachix",
"rev": "f65a3cd5e339c223471e64c051434616e18cc4f5", "rev": "8b6b0e4694b9aa78b2ea4c93bff6e1a222dc7e4a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -102,29 +102,21 @@
"attic": "attic", "attic": "attic",
"cachix": "cachix", "cachix": "cachix",
"complement": "complement", "complement": "complement",
"crane": [ "crane": "crane_2",
"crane"
],
"fenix": "fenix", "fenix": "fenix",
"flake-compat": [ "flake-compat": "flake-compat_3",
"flake-compat" "flake-utils": "flake-utils",
],
"flake-utils": [
"flake-utils"
],
"liburing": "liburing", "liburing": "liburing",
"nix-filter": "nix-filter", "nix-filter": "nix-filter",
"nixpkgs": [ "nixpkgs": "nixpkgs_5",
"nixpkgs"
],
"rocksdb": "rocksdb" "rocksdb": "rocksdb"
}, },
"locked": { "locked": {
"lastModified": 1738132650, "lastModified": 1737153653,
"narHash": "sha256-ryebu2VoopIpr5+DuHIs2/x60u+3EzRJexYRWVJn2AE=", "narHash": "sha256-yNdxoVZX13QUDJYM6zTMY9ExvacTqB+f0MLvDreSW8U=",
"owner": "girlbossceo", "owner": "girlbossceo",
"repo": "conduwuit", "repo": "conduwuit",
"rev": "eb7d893c8675f955fa770c8ae6f1c32a2394284c", "rev": "5b8464252c2c03edf65e43153be026dbb768a12a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -157,11 +149,27 @@
}, },
"crane_2": { "crane_2": {
"locked": { "locked": {
"lastModified": 1737689766, "lastModified": 1736566337,
"narHash": "sha256-ivVXYaYlShxYoKfSo5+y5930qMKKJ8CLcAoIBPQfJ6s=", "narHash": "sha256-SC0eDcZPqISVt6R0UfGPyQLrI0+BppjjtQ3wcSlk0oI=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "6fe74265bbb6d016d663b1091f015e2976c4a527", "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" "type": "github"
}, },
"original": { "original": {
@ -255,11 +263,11 @@
"rust-analyzer-src": "rust-analyzer-src" "rust-analyzer-src": "rust-analyzer-src"
}, },
"locked": { "locked": {
"lastModified": 1737786656, "lastModified": 1736836313,
"narHash": "sha256-ubCW9Jy7ZUOF354bWxTgLDpVnTvIpNr6qR4H/j7I0oo=", "narHash": "sha256-zdZ7/T6yG0/hzoVOiNpDiR/sW3zR6oSMrfIFJK2BrrE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "fenix", "repo": "fenix",
"rev": "2f721f527886f801403f389a9cabafda8f1e3b7f", "rev": "056c9393c821a4df356df6ce7f14c722dc8717ec",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -302,6 +310,7 @@
} }
}, },
"flake-compat_3": { "flake-compat_3": {
"flake": false,
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
@ -312,10 +321,41 @@
}, },
"original": { "original": {
"owner": "edolstra", "owner": "edolstra",
"ref": "master",
"repo": "flake-compat", "repo": "flake-compat",
"type": "github" "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=",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"revCount": 57,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
@ -363,17 +403,57 @@
} }
}, },
"flake-parts_3": { "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": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"lanzaboote",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1738453229, "lastModified": 1730504689,
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", "rev": "506278e768c2a08bec68eb62932193e341f55c90",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_5": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1736143030,
"narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -396,6 +476,7 @@
}, },
"original": { "original": {
"owner": "numtide", "owner": "numtide",
"ref": "main",
"repo": "flake-utils", "repo": "flake-utils",
"type": "github" "type": "github"
} }
@ -418,21 +499,6 @@
"type": "github" "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"
}
},
"git-hooks": { "git-hooks": {
"inputs": { "inputs": {
"flake-compat": [ "flake-compat": [
@ -475,11 +541,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737465171, "lastModified": 1737043064,
"narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", "narHash": "sha256-I/OuxGwXwRi5gnFPsyCvVR+IfFstA+QXEpHu1hvsgD8=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", "rev": "94ee657f6032d913fe0ef49adaa743804635b0bb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -562,11 +628,32 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1738448366, "lastModified": 1737480538,
"narHash": "sha256-4ATtQqBlgsGqkHTemta0ydY6f7JBRXz4Hf574NHQpkg=", "narHash": "sha256-rk/cmrvq3In0TegW9qaAxw+5YpJhRWt2p74/6JStrw0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "18fa9f323d8adbb0b7b8b98a8488db308210ed93", "rev": "4481a16d1ac5bff4a77c608cefe08c9b9efe840d",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1737075266,
"narHash": "sha256-u1gk5I1an975FOAMMdS6oBKnSIsZza5ZKhaeBZAskVo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "12851ae7467bad8ef422b20806ab4d6d81e12d29",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -605,29 +692,21 @@
}, },
"lanzaboote": { "lanzaboote": {
"inputs": { "inputs": {
"crane": [ "crane": "crane_3",
"crane" "flake-compat": "flake-compat_4",
], "flake-parts": "flake-parts_4",
"flake-compat": [
"flake-compat"
],
"flake-parts": [
"flake-parts"
],
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"pre-commit-hooks-nix": "pre-commit-hooks-nix", "pre-commit-hooks-nix": "pre-commit-hooks-nix",
"rust-overlay": [ "rust-overlay": "rust-overlay"
"rust-overlay"
]
}, },
"locked": { "locked": {
"lastModified": 1737639419, "lastModified": 1737299073,
"narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=", "narHash": "sha256-hOydnO9trHDo3qURqLSDdmE/pHNWDzlhkmyZ/gcBX2s=",
"owner": "nix-community", "owner": "nix-community",
"repo": "lanzaboote", "repo": "lanzaboote",
"rev": "a65905a09e2c43ff63be8c0e86a93712361f871e", "rev": "64d20cb2afaad8b73f4e38de41d27fb30a782bb5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -656,11 +735,11 @@
"liburing": { "liburing": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737600516, "lastModified": 1736719310,
"narHash": "sha256-EKyLQ3pbcjoU5jH5atge59F4fzuhTsb6yalUj6Ve2t8=", "narHash": "sha256-Turvx60THwzTiUHb49WV3upUgsPuktr7tVy2Lwu2xJg=",
"owner": "axboe", "owner": "axboe",
"repo": "liburing", "repo": "liburing",
"rev": "6c509e2b0c881a13b83b259a221bf15fc9b3f681", "rev": "3124a4619e4daf26b06d48ccf0186a947070c415",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -670,59 +749,6 @@
"type": "github" "type": "github"
} }
}, },
"lix": {
"inputs": {
"flake-compat": [
"flake-compat"
],
"nix2container": "nix2container",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-regression": "nixpkgs-regression",
"pre-commit-hooks": "pre-commit-hooks"
},
"locked": {
"lastModified": 1738446528,
"narHash": "sha256-NYL/r7EXSyYP7nXuYGvGYMI9QtztGjVaKKofBt/pCv8=",
"ref": "refs/heads/main",
"rev": "a51380645f61b33d37a536b596d16c481f7b84a6",
"revCount": 17342,
"type": "git",
"url": "https://git.lix.systems/lix-project/lix"
},
"original": {
"type": "git",
"url": "https://git.lix.systems/lix-project/lix"
}
},
"lix-module": {
"inputs": {
"flake-utils": [
"flake-utils"
],
"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": { "niri": {
"inputs": { "inputs": {
"niri-stable": "niri-stable", "niri-stable": "niri-stable",
@ -730,18 +756,16 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-stable": [ "nixpkgs-stable": "nixpkgs-stable_4",
"nixpkgs"
],
"xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
"locked": { "locked": {
"lastModified": 1738502867, "lastModified": 1737516423,
"narHash": "sha256-92cVHcxV7j00BquLo5I4G8EwKzrq2AlHuD3AQV9r+T8=", "narHash": "sha256-S3vmlekDRKgXsOreMMxLwJgvH313x1zU/wYtC8YThLg=",
"owner": "sodiboo", "owner": "sodiboo",
"repo": "niri-flake", "repo": "niri-flake",
"rev": "cf0be7affb15e21727d137c029146fe7df2bc6d0", "rev": "8370d2475f0eac1b5dab31a107ee118d96692e31",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -770,11 +794,11 @@
"niri-unstable": { "niri-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1738479340, "lastModified": 1737449786,
"narHash": "sha256-sutel7RKfu9eIJsjswSzptCIvKELbXQCSldt0PtwSd0=", "narHash": "sha256-G/AK0T41PpxU9hjkK/tnjODigzKcpRayo1o4pi9glqI=",
"owner": "YaLTeR", "owner": "YaLTeR",
"repo": "niri", "repo": "niri",
"rev": "d5592743cb04cef3fe50c987b7ba9349c5090dbd", "rev": "b01b8afa8c8f9070300243050d9790e38fd19145",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -832,11 +856,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1738277753, "lastModified": 1736819234,
"narHash": "sha256-iyFcCOk0mmDiv4ut9mBEuMxMZIym3++0qN1rQBg8FW0=", "narHash": "sha256-deQVtIH4UJueELJqluAICUtX7OosD9paTP+5FgbiSwI=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "49b807fa7c37568d7fbe2aeaafb9255c185412f9", "rev": "bd921223ba7cdac346477d7ea5204d6f4736fcc6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -883,42 +907,6 @@
"type": "github" "type": "github"
} }
}, },
"nix-ld": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1737361468,
"narHash": "sha256-+CtIrQZ22MOAOHcpg1zbhX/fVkmEc8A8lYVpXAbXElQ=",
"owner": "nix-community",
"repo": "nix-ld",
"rev": "7f15f8622b63b907fef137689f4528a9447d9377",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-ld",
"type": "github"
}
},
"nix2container": {
"flake": false,
"locked": {
"lastModified": 1724996935,
"narHash": "sha256-njRK9vvZ1JJsP8oV2OgkBrpJhgQezI03S7gzskCcHos=",
"owner": "nlewo",
"repo": "nix2container",
"rev": "fa6bb0a1159f55d071ba99331355955ae30b3401",
"type": "github"
},
"original": {
"owner": "nlewo",
"repo": "nix2container",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1726042813, "lastModified": 1726042813,
@ -951,20 +939,16 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-regression": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1643052045, "lastModified": 1735774519,
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=",
"owner": "NixOS", "type": "tarball",
"repo": "nixpkgs", "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz"
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "type": "tarball",
"repo": "nixpkgs", "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz"
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
} }
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
@ -1015,6 +999,22 @@
"type": "github" "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": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1730531603, "lastModified": 1730531603,
@ -1065,11 +1065,27 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1738487426, "lastModified": 1736817698,
"narHash": "sha256-hnB0V0R/aKASnTBeTthFvW60uydv1xswWD4weqSuSfg=", "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", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8ed1fafea6a613d962f6a84c1153d34dc8b06d83", "rev": "2582766522e754520bf3f883f06560f89870a5ba",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1082,31 +1098,23 @@
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"devshell": "devshell", "devshell": "devshell",
"flake-compat": [ "flake-compat": "flake-compat_5",
"flake-compat" "flake-parts": "flake-parts_5",
],
"flake-parts": [
"flake-parts"
],
"git-hooks": "git-hooks_2", "git-hooks": "git-hooks_2",
"home-manager": [ "home-manager": "home-manager_2",
"home-manager"
],
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nuschtosSearch": "nuschtosSearch", "nuschtosSearch": "nuschtosSearch",
"treefmt-nix": [ "treefmt-nix": "treefmt-nix"
"treefmt"
]
}, },
"locked": { "locked": {
"lastModified": 1738517265, "lastModified": 1737484173,
"narHash": "sha256-ZzulGUIHZhvcSHx+1ucCJkIcn27r9H+cSzCCpKxJcls=", "narHash": "sha256-bE9pTDqnSIMAwJeIu0MzA8ZR7LEwRbhnRpnImWIBejc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "56d0c4579e022b44a3e324f722fa23a6f4295798", "rev": "342161bf525dd64eb53fea295a2180f71ed06de1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1125,11 +1133,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1738445998, "lastModified": 1735854821,
"narHash": "sha256-wF2ZcRKF37re161jrXtNyjGMBDsIFtPeDvmIVfp8f7w=", "narHash": "sha256-Iv59gMDZajNfezTO0Fw6LHE7uKAShxbvMidmZREit7c=",
"owner": "NuschtOS", "owner": "NuschtOS",
"repo": "search", "repo": "search",
"rev": "381d84a7422a4dbfef6a9c7703dbaf42036ae1c3", "rev": "836908e3bddd837ae0f13e215dd48767aee355f0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1154,45 +1162,6 @@
"type": "github" "type": "github"
} }
}, },
"plasma-manager": {
"inputs": {
"home-manager": [
"home-manager"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1736549395,
"narHash": "sha256-XzwkB62Tt5UYoL1jXiHzgk/qz2fUpGHExcSIbyGTtI0=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "a53af7f1514ef4cce8620a9d6a50f238cdedec8b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "plasma-manager",
"type": "github"
}
},
"pre-commit-hooks": {
"flake": false,
"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"
}
},
"pre-commit-hooks-nix": { "pre-commit-hooks-nix": {
"inputs": { "inputs": {
"flake-compat": [ "flake-compat": [
@ -1223,11 +1192,11 @@
"rocksdb": { "rocksdb": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737828695, "lastModified": 1734469478,
"narHash": "sha256-8Ev6zzhNPU798JNvU27a7gj5X+6SDG3jBweUkQ59DbA=", "narHash": "sha256-IcQ4N8xADYal79K+ONmNq4RLlIwdgUqgrVzgNgiIaG8=",
"owner": "girlbossceo", "owner": "girlbossceo",
"repo": "rocksdb", "repo": "rocksdb",
"rev": "a4d9230dcc9d03be428b9a728133f8f646c0065c", "rev": "8b4808e7de2fbb5d119d8d72cdca76d8ab84bc47",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1240,23 +1209,16 @@
"root": { "root": {
"inputs": { "inputs": {
"conduwuit": "conduwuit", "conduwuit": "conduwuit",
"crane": "crane_2",
"disko": "disko", "disko": "disko",
"flake-compat": "flake-compat_3",
"flake-parts": "flake-parts_3", "flake-parts": "flake-parts_3",
"flake-utils": "flake-utils",
"home-manager": "home-manager", "home-manager": "home-manager",
"lanzaboote": "lanzaboote", "lanzaboote": "lanzaboote",
"lix": "lix",
"lix-module": "lix-module",
"niri": "niri", "niri": "niri",
"nix-ld": "nix-ld", "nixpkgs": "nixpkgs_6",
"nixpkgs": "nixpkgs_5",
"nixpkgs-garage": "nixpkgs-garage", "nixpkgs-garage": "nixpkgs-garage",
"nixvim": "nixvim", "nixvim": "nixvim",
"nvim-github-theme": "nvim-github-theme", "nvim-github-theme": "nvim-github-theme",
"plasma-manager": "plasma-manager", "rust-overlay": "rust-overlay_2",
"rust-overlay": "rust-overlay",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"treefmt": "treefmt" "treefmt": "treefmt"
} }
@ -1264,11 +1226,11 @@
"rust-analyzer-src": { "rust-analyzer-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737728869, "lastModified": 1736690231,
"narHash": "sha256-U4pl3Hi0lT6GP4ecN3q9wdD2sdaKMbmD/5NJ1NdJ9AM=", "narHash": "sha256-g9gyxX+F6CrkT5gRIMKPnCPom0o9ZDzYnzzeNF86D6Q=",
"owner": "rust-lang", "owner": "rust-lang",
"repo": "rust-analyzer", "repo": "rust-analyzer",
"rev": "6e4c29f7ce18cea7d3d31237a4661ab932eab636", "rev": "8364ef299790cb6ec22b9e09e873c97dbe9f2cb5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1281,15 +1243,36 @@
"rust-overlay": { "rust-overlay": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"lanzaboote",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1738463259, "lastModified": 1731897198,
"narHash": "sha256-+5QJpiRpkh1ALvKcMEpPyGwkPZfaynsYF4SFdNW5UfQ=", "narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "e2bb8c205a069514535f083742c7da8dfb6e02b9", "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" "type": "github"
}, },
"original": { "original": {
@ -1305,11 +1288,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1738291974, "lastModified": 1737411508,
"narHash": "sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320=", "narHash": "sha256-j9IdflJwRtqo9WpM0OfAZml47eBblUHGNQTe62OUqTw=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "4c1251904d8a08c86ac6bc0d72cc09975e89aef7", "rev": "015d461c16678fc02a2f405eb453abb509d4e1d4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1355,11 +1338,32 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1738070913, "lastModified": 1737483750,
"narHash": "sha256-j6jC12vCFsTGDmY2u1H12lMr62fnclNjuCtAdF1a4Nk=", "narHash": "sha256-5An1wq5U8sNycOBBg3nsDDgpwBmR9liOpDGlhliA6Xo=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "bebf27d00f7d10ba75332a0541ac43676985dea3", "rev": "f2cc121df15418d028a59c9737d38e3a90fbaf8f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1737054102,
"narHash": "sha256-saLiCRQ5RtdTnznT/fja7GxcYRAzeY3k8S+IF/2s/2A=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "97871d416166803134ba64597a1006f3f670fbde",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1388,11 +1392,11 @@
"xwayland-satellite-unstable": { "xwayland-satellite-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737837494, "lastModified": 1736487362,
"narHash": "sha256-wIMowP8Juas4ZwMRcpc+58sZ0kKTDu8fm13THPmv/F8=", "narHash": "sha256-4kGoOA7FgK9N2mzS+TFEn41kUUNY6KwdiA/0rqlr868=",
"owner": "Supreeeme", "owner": "Supreeeme",
"repo": "xwayland-satellite", "repo": "xwayland-satellite",
"rev": "3944c9a0e40e5629f16ad023bbc90dac80d35a0f", "rev": "8f55e27f63a749881c4bbfbb6b1da028342a91d1",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -22,61 +22,21 @@
lanzaboote = { lanzaboote = {
url = "github:nix-community/lanzaboote/master"; url = "github:nix-community/lanzaboote/master";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.crane.follows = "crane";
inputs.flake-compat.follows = "flake-compat";
inputs.flake-parts.follows = "flake-parts";
inputs.rust-overlay.follows = "rust-overlay";
}; };
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-parts.follows = "flake-parts";
inputs.flake-compat.follows = "flake-compat";
inputs.home-manager.follows = "home-manager";
inputs.treefmt-nix.follows = "treefmt";
};
flake-parts = {
url = "github:hercules-ci/flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs";
}; };
flake-parts.url = "github:hercules-ci/flake-parts";
niri = { niri = {
url = "github:sodiboo/niri-flake"; url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs-stable.follows = "nixpkgs";
}; };
rust-overlay = { rust-overlay = {
url = "github:oxalica/rust-overlay"; url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
conduwuit = { conduwuit.url = "github:girlbossceo/conduwuit";
url = "github:girlbossceo/conduwuit";
inputs = {
nixpkgs.follows = "nixpkgs";
crane.follows = "crane";
flake-compat.follows = "flake-compat";
flake-utils.follows = "flake-utils";
};
};
lix-module = {
url = "git+https://git.lix.systems/lix-project/nixos-module";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
inputs.lix.follows = "lix";
};
lix = {
url = "git+https://git.lix.systems/lix-project/lix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-compat.follows = "flake-compat";
};
nix-ld = {
url = "github:nix-community/nix-ld";
inputs.nixpkgs.follows = "nixpkgs";
};
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
nixpkgs-garage.url = "github:cything/nixpkgs/garage-module"; # unmerged PR nixpkgs-garage.url = "github:cything/nixpkgs/garage-module"; # unmerged PR
@ -84,11 +44,6 @@
url = "github:projekt0n/github-nvim-theme"; url = "github:projekt0n/github-nvim-theme";
flake = false; flake = false;
}; };
# deduplication
flake-utils.url = "github:numtide/flake-utils";
crane.url = "github:ipetkov/crane";
flake-compat.url = "github:edolstra/flake-compat";
}; };
nixConfig = { nixConfig = {
@ -98,7 +53,6 @@
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://cache.garnix.io" "https://cache.garnix.io"
"https://cything.cachix.org" "https://cything.cachix.org"
"https://aseipp-nix-cache.global.ssl.fastly.net"
]; ];
extra-trusted-public-keys = [ extra-trusted-public-keys = [
"central:uWhjva6m6dhC2hqNisjn2hXGvdGBs19vPkA1dPEuwFg=" "central:uWhjva6m6dhC2hqNisjn2hXGvdGBs19vPkA1dPEuwFg="
@ -131,10 +85,18 @@
]; ];
perSystem = perSystem =
{ {
inputs', system,
... ...
}: }:
{ {
# make pkgs available to `perSystem`
_module.args.pkgs = import inputs.nixpkgs {
inherit system;
config = {
allowUnfree = true;
};
};
treefmt = { treefmt = {
projectRootFile = "flake.nix"; projectRootFile = "flake.nix";
programs.nixfmt.enable = true; programs.nixfmt.enable = true;
@ -145,7 +107,7 @@
settings.global.excludes = [ settings.global.excludes = [
"secrets/*" "secrets/*"
"**/*.png" # tries to format a png file "**/*.png" # tries to format a png file??
]; ];
}; };
}; };
@ -178,8 +140,6 @@
./modules ./modules
inputs.lanzaboote.nixosModules.lanzaboote inputs.lanzaboote.nixosModules.lanzaboote
inputs.niri.nixosModules.niri inputs.niri.nixosModules.niri
inputs.lix-module.nixosModules.default
inputs.nix-ld.nixosModules.nix-ld
]; ];
}; };
chunk = lib.nixosSystem { chunk = lib.nixosSystem {
@ -223,7 +183,6 @@
./home/yt/ytnix.nix ./home/yt/ytnix.nix
inputs.nixvim.homeManagerModules.nixvim inputs.nixvim.homeManagerModules.nixvim
inputs.niri.homeModules.config inputs.niri.homeModules.config
inputs.plasma-manager.homeManagerModules.plasma-manager
]; ];
}; };

View file

@ -1,5 +1,4 @@
{ ... }: { ... }: {
{
programs.ghostty = { programs.ghostty = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;

View file

@ -1,5 +1,4 @@
{ ... }: {...}: {
{
programs.irssi = { programs.irssi = {
enable = true; enable = true;
networks.liberachat = { networks.liberachat = {

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
programs.kitty = { programs.kitty = {
enable = true; enable = true;
font = { font = {
@ -9,18 +8,17 @@
}; };
themeFile = "GitHub_Dark"; themeFile = "GitHub_Dark";
settings = { settings = {
enable_audio_bell = true; enable_audio_bell = false;
# how many windows should be open before kitty asks # how many windows should be open before kitty asks
# for confirmation # for confirmation
confirm_os_window_close = 0; confirm_os_window_close = 0;
clear_all_shortcuts = true; clear_all_shortcuts = true;
# will probably lower this later but the max allowed is actually 4GB # will probably lower this later but the max allowed is actually 4GB
# this is NOT stored in memory and can only be viewed with scrollback_pager # this is NOT stored in memory and can only be viewed wth scrollback_pager
"scrollback_pager_history_size" = "1024"; "scrollback_pager_history_size" = "1024";
# see https://github.com/sharkdp/bat/issues/1077#issuecomment-652785399 # see https://github.com/sharkdp/bat/issues/1077#issuecomment-652785399
"scrollback_pager" = "bat --pager='less -FR +G'"; "scrollback_pager" = "bat --pager='less -FR +G'";
"scrollback_lines" = 20000;
}; };
keybindings = { keybindings = {
# kitty_mod is ctrl+shift by default # kitty_mod is ctrl+shift by default
@ -58,7 +56,6 @@
"ctrl+f2" = "detach_tab"; "ctrl+f2" = "detach_tab";
# hints # hints
# > basically means the preceding key is a prefix (think tmux)
"kitty_mod+o>o" = "open_url_with_hints"; "kitty_mod+o>o" = "open_url_with_hints";
"kitty_mod+o>p" = "kitten hints --type path --program -"; "kitty_mod+o>p" = "kitten hints --type path --program -";
"kitty_mod+o>n" = "kitten hints --type line --program -"; "kitty_mod+o>n" = "kitten hints --type line --program -";
@ -67,6 +64,4 @@
"kitty_mod+o>l" = "kitten hints --type linenum"; "kitty_mod+o>l" = "kitten hints --type linenum";
}; };
}; };
programs.zsh.shellAliases."ssh" = "kitten ssh";
} }

View file

@ -50,7 +50,7 @@ in
natural-scroll = true; natural-scroll = true;
click-method = "clickfinger"; click-method = "clickfinger";
}; };
warp-mouse-to-focus = false; warp-mouse-to-focus = true;
focus-follows-mouse.enable = false; focus-follows-mouse.enable = false;
}; };
@ -71,25 +71,19 @@ in
}; };
window-rules = [ window-rules = [
{
matches = [
{ app-id = "mpv"; }
{ app-id = "Bitwarden"; }
{
app-id = "ghidra-Ghidra";
# pop-up windows
title = "^win(.*)";
}
];
open-floating = true;
}
{ {
matches = [ matches = [
{ {
app-id = "anki"; app-id = "anki";
title = "Add"; title = "Add";
} }
{ app-id = "mpv"; }
{ app-id = "Bitwarden"; }
]; ];
open-floating = true;
}
{
matches = [ { app-id = "anki"; } ];
default-column-width.proportion = .25; default-column-width.proportion = .25;
} }
{ {
@ -102,7 +96,6 @@ in
{ app-id = "com.mitchellh.ghostt"; } { app-id = "com.mitchellh.ghostt"; }
{ app-id = "org.kde.okular"; } { app-id = "org.kde.okular"; }
{ app-id = "kitty"; } { app-id = "kitty"; }
{ app-id = "VSCodium"; }
]; ];
default-column-width.proportion = .5; default-column-width.proportion = .5;
} }
@ -142,16 +135,13 @@ in
"Mod+Shift+U".action = move-window-to-workspace-up; "Mod+Shift+U".action = move-window-to-workspace-up;
"Mod+Shift+I".action = move-window-to-workspace-down; "Mod+Shift+I".action = move-window-to-workspace-down;
"Mod+W".action = maximize-column; "Mod+W".action = maximize-column;
"Mod+E".action = set-column-width "50%";
"Mod+R".action = set-column-width "75%";
"Mod+Q".action = set-column-width "25%";
"Mod+C".action = center-column; "Mod+C".action = center-column;
"Mod+Shift+Space".action = toggle-window-floating; "Mod+Shift+Space".action = toggle-window-floating;
"Mod+Space".action = switch-focus-between-floating-and-tiling; "Mod+Space".action = switch-focus-between-floating-and-tiling;
"Print".action = screenshot; "Print".action = screenshot;
"Alt+Print".action = screenshot-window; "Alt+Print".action = screenshot-window;
"Ctrl+Print".action = screenshot-screen; "Ctrl+Print".action = screenshot-screen;
# "Mod+R".action = switch-preset-column-width; "Mod+R".action = switch-preset-column-width;
"Mod+Shift+R".action = switch-preset-window-height; "Mod+Shift+R".action = switch-preset-window-height;
"Mod+Ctrl+R".action = reset-window-height; "Mod+Ctrl+R".action = reset-window-height;
"Mod+F".action = fullscreen-window; "Mod+F".action = fullscreen-window;

View file

@ -24,7 +24,7 @@
extraPlugins = [ extraPlugins = [
(pkgs.vimUtils.buildVimPlugin { (pkgs.vimUtils.buildVimPlugin {
name = "github-theme"; name = "gitub-theme";
src = inputs.nvim-github-theme; src = inputs.nvim-github-theme;
}) })
]; ];
@ -71,41 +71,6 @@
key = "<C-e>"; key = "<C-e>";
mode = "i"; mode = "i";
} }
# quick chat with copilot
{
key = "<leader>ccq";
action.__raw = ''
function()
local input = vim.fn.input("Quick chat: ")
if input ~= "" then
require("CopilotChat").ask(input, { selection = require("CopilotChat.select").buffer })
end
end
'';
mode = [
"n"
"v"
];
}
# ask perplexity a quick question
{
key = "<leader>ccs";
action.__raw = ''
function()
local input = vim.fn.input("Perplexity: ")
if input ~= "" then
require("CopilotChat").ask(input, {
agent = "perplexityai",
selection = false,
})
end
end
'';
mode = [
"n"
"v"
];
}
]; ];
plugins.cmp = { plugins.cmp = {
@ -150,8 +115,7 @@
end end
end) end)
''; '';
# plain tab conflicts with i try to indent "<Tab>" = ''
"<C-Tab>" = ''
cmp.mapping(function(fallback) cmp.mapping(function(fallback)
if require("luasnip").jumpable(1) then if require("luasnip").jumpable(1) then
require("luasnip").jump(1) require("luasnip").jump(1)
@ -206,15 +170,10 @@
plugins.treesitter = { plugins.treesitter = {
enable = true; enable = true;
nixGrammars = true; nixGrammars = true;
settings = { settings.indent.enable = true;
indent.enable = true;
auto_install = true;
highlight.enable = true;
};
}; };
plugins.fzf-lua = { plugins.fzf-lua = {
enable = true; enable = true;
profile = "fzf-native";
keymaps = { keymaps = {
"<leader>ff" = "files"; "<leader>ff" = "files";
"<leader>fg" = "live_grep"; "<leader>fg" = "live_grep";
@ -232,13 +191,6 @@
settings.current_line_blame = true; settings.current_line_blame = true;
}; };
plugins.copilot-chat = {
enable = true;
settings = {
model = "claude-3.5-sonnet";
};
};
plugins.cmp-buffer.enable = true; plugins.cmp-buffer.enable = true;
plugins.cmp-emoji.enable = true; plugins.cmp-emoji.enable = true;
plugins.cmp-nvim-lsp.enable = true; plugins.cmp-nvim-lsp.enable = true;

View file

@ -1,80 +0,0 @@
{ ... }:
{
programs.plasma = {
enable = true;
overrideConfig = true;
immutableByDefault = true;
workspace = {
lookAndFeel = "org.ide.breezedark.desktop";
cursor = {
theme = "Bibata-Modern-Classic";
size = 23;
};
};
fonts = {
general = {
family = "IBM Plex Mono";
pointSize = 12;
};
};
input.keyboard = {
numlockOnStartup = "on";
options = [ "ctrl:nocaps" ];
};
# Meta key is actually the Super key in KDE
hotkeys.commands = {
"launch-terminal" = {
name = "launch terminal";
key = "Meta+Return";
command = "kitty";
};
"launch-browser" = {
name = "launch browser";
key = "Meta+B";
command = "librewolf";
};
};
shortcuts = {
kwin = {
"Switch Window Down" = "Meta+J";
"Switch Window Left" = "Meta+H";
"Switch Window Right" = "Meta+L";
"Switch Window Up" = "Meta+K";
"Window Quick Tile Down" = "Meta+Shift+J";
"Window Quick Tile Left" = "Meta+Shift+H";
"Window Quick Tile Right" = "Meta+Shift+L";
"Window Quick Tile Up" = "Meta+Shift+K";
"Window Close" = "Meta+Ctrl+Q";
"Window Maximize" = "Meta+W";
"Window Minimize" = "Meta+Shift+-";
"Window Fullscreen" = "Meta+F";
"Window Shrink Horizontal" = "Meta+-";
};
ksmserver = {
"Lock Session" = [
"Screensaver"
"Meta+Ctrl+L"
];
};
};
configFile = {
# save RAM
baloofilerc."Basic Settings"."Indexing-Enabled" = false;
};
# looks like KDE overrides services.logind settings
powerdevil.AC = {
whenLaptopLidClosed = "hibernate";
};
powerdevil.battery = {
whenLaptopLidClosed = "hibernate";
};
};
}

View file

@ -8,33 +8,11 @@
mutableExtensionsDir = false; mutableExtensionsDir = false;
extensions = with pkgs.vscode-extensions; [ extensions = with pkgs.vscode-extensions; [
vscodevim.vim vscodevim.vim
jnoortheen.nix-ide jnoortheen.nix-ide # nix language support
editorconfig.editorconfig editorconfig.editorconfig # editorconfig
github.github-vscode-theme dracula-theme.theme-dracula # color scheme
github.copilot tomoki1207.pdf # pdf viewer
rust-lang.rust-analyzer yzhang.markdown-all-in-one # markdown tools
]; ];
userSettings = {
"workbench.colorTheme" = "GitHub Dark Default";
"files.autoSave" = "afterDelay";
"nix.enableLanguageServer" = true;
"nix.serverPath" = "nixd";
"editor.fontFamily" = "IBM Plex Mono";
"editor.fontSize" = 16;
"editor.wordWrap" = "on";
# vim mode settings
"vim.handleKeys" = {
"<C-b>" = false; # file tree toggle
};
"vim.normalModeKeyBindings" = [
{
"before" = [ ";" ];
"after" = [ ":" ];
"silent" = true;
}
];
"workbench.startupEditor" = "none";
};
}; };
} }

View file

@ -16,6 +16,7 @@
systemd.user.startServices = "sd-switch"; systemd.user.startServices = "sd-switch";
home.packages = with pkgs; [ home.packages = with pkgs; [
foot.terminfo
attic-server attic-server
]; ];
} }

View file

@ -44,11 +44,7 @@
rebase = true; rebase = true;
autostash = true; autostash = true;
}; };
merge = { merge.tool = "vimdiff";
tool = "vimdiff";
keepBackup = false;
prompt = false;
};
rebase = { rebase = {
stat = true; stat = true;
autoStash = true; autoStash = true;
@ -56,10 +52,12 @@
updateRefs = true; updateRefs = true;
}; };
help.autocorrect = 1; help.autocorrect = 1;
"mergetool \"vimdiff\"".cmd = "nvim -d $LOCAL $REMOTE $MERGED -c '$wincmd w' -c 'wincmd J'"; mergetool = {
prompt = false;
path = "nvim-open";
};
}; };
}; };
programs.ripgrep.enable = true; programs.ripgrep.enable = true;
programs.man.generateCaches = true; programs.man.generateCaches = true;
programs.fd.enable = true;
} }

View file

@ -1,6 +1,5 @@
{ {
pkgs, pkgs,
lib,
... ...
}: }:
{ {
@ -10,8 +9,6 @@
../niri ../niri
../irssi.nix ../irssi.nix
../kitty.nix ../kitty.nix
../vscode.nix
../plasma.nix
]; ];
home = { home = {
username = "yt"; username = "yt";
@ -22,36 +19,42 @@
systemd.user.startServices = "sd-switch"; systemd.user.startServices = "sd-switch";
# keep this commented when using plasma qt = {
# otherwise "system settings" in KDE will not function enable = true;
# qt = { platformTheme.name = "kde";
# enable = true; style.name = "breeze-dark";
# platformTheme.name = "kde"; style.package = pkgs.kdePackages.breeze;
# style.name = "breeze-dark"; };
# style.package = pkgs.kdePackages.breeze;
# };
# this one too gtk = {
# gtk = { enable = true;
# enable = true; cursorTheme = {
# theme = { package = pkgs.bibata-cursors;
# package = pkgs.adw-gtk3; name = "Bibata-Modern";
# name = "adw-gtk3-dark"; };
# }; theme = {
# iconTheme = { package = pkgs.adw-gtk3;
# package = pkgs.adwaita-icon-theme; name = "adw-gtk3-dark";
# name = "Adwaita"; };
# }; iconTheme = {
# }; package = pkgs.adwaita-icon-theme;
name = "Adwaita";
};
};
home.pointerCursor = { home.pointerCursor = {
package = pkgs.bibata-cursors; package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic"; name = "Bibata-Modern";
size = 23;
gtk.enable = true; gtk.enable = true;
x11.enable = true; x11.enable = true;
}; };
dconf.settings = {
"org/gnome/desktop/interface" = {
cursor-theme = "Bibata-Modern";
};
};
home.packages = with pkgs; [ home.packages = with pkgs; [
firefox firefox
ungoogled-chromium ungoogled-chromium
@ -109,21 +112,6 @@
github-cli github-cli
fuzzel fuzzel
nixpkgs-review nixpkgs-review
just
hugo
ghidra-bin
sequoia
sccache
awscli2
lldb
(cutter.withPlugins (p: with p; [
rz-ghidra
jsdec
sigdb
]))
ida-free
patchelf
radare2
]; ];
programs.waybar.enable = true; programs.waybar.enable = true;
@ -161,36 +149,10 @@
''; '';
}; };
services.gnome-keyring.enable = true;
programs.direnv = { programs.direnv = {
enable = true; enable = true;
nix-direnv.enable = true; nix-direnv.enable = true;
}; };
programs.git.extraConfig = {
user = {
signingKey = "~/.ssh/id.key";
};
gpg.format = "ssh";
commit.gpgsign = true;
core.sshCommand = "ssh -i ~/.ssh/id.key";
};
home.sessionVariables = {
# to make ghidra work on xwayland
_JAVA_AWT_WM_NONREPARENTING = 1;
# sccache stuff
RUSTC_WRAPPER = "${lib.getExe pkgs.sccache}";
SCCACHE_BUCKET = "sccache";
SCCACHE_REGION = "earth";
SCCACHE_ENDPOINT = "https://sccache.s3.cy7.sh";
SCCACHE_ALLOW_CORE_DUMPS = "true";
SCCACHE_S3_USE_SSL = "true";
SCCACHE_CACHE_MULTIARCH = "true";
SCCACHE_LOG_LEVEL = "warn";
AWS_DEFAULT_REGION = "earth";
AWS_ENDPOINT_URL = "https://s3.cy7.sh";
AWS_ACCESS_KEY_ID = "$(cat /run/secrets/aws/key_id)";
AWS_SECRET_ACCESS_KEY = "$(cat /run/secrets/aws/key_secret)";
};
} }

View file

@ -39,6 +39,11 @@
initExtra = '' initExtra = ''
# disable control+s to pause terminal # disable control+s to pause terminal
unsetopt FLOW_CONTROL unsetopt FLOW_CONTROL
# manually integrate fzf cause we need to make sure zsh-vi-mode
# won't override C-r
function zvm_after_init() {
eval "$(${pkgs.fzf}/bin/fzf --zsh)"
}
# useful emacs mode bindings # useful emacs mode bindings
bindkey -M viins "^E" end-of-line bindkey -M viins "^E" end-of-line

89
hosts/chunk/Caddyfile Normal file
View file

@ -0,0 +1,89 @@
{
acme_ca https://acme.zerossl.com/v2/DV90
acme_eab {
key_id {$EAB_KEY_ID}
mac_key {$EAB_MAC_KEY}
}
}
(common) {
encode zstd gzip
header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
}
git.cything.io {
import common
# wrap in route so things are evaluated in the order written
route {
# rewrite gitlab URIs to make it work with forgejo
uri path_regexp /-/ /
uri replace /blob/ /src/
redir https://git.cy7.sh{uri} permanent
}
}
git.cy7.sh {
import common
reverse_proxy localhost:3000
}
rss.cy7.sh {
import common
reverse_proxy localhost:8080
}
photos.cy7.sh {
import common
reverse_proxy localhost:2283
}
chat.cything.io {
import common
reverse_proxy localhost:8448
}
pass.cy7.sh {
import common
reverse_proxy localhost:8081
}
dns.cything.io {
import common
reverse_proxy localhost:8082
}
pad.cything.io {
import common
reverse_proxy localhost:8085
}
red.cything.io {
import common
reverse_proxy localhost:8087
}
grafana.cything.io {
import common
reverse_proxy localhost:8088
}
element.cything.io {
import common
reverse_proxy localhost:8089
}
cache.cything.io {
import common
reverse_proxy localhost:8090
}
s3.cy7.sh {
import common
reverse_proxy localhost:3900
}
admin.s3.cy7.sh {
import common
reverse_proxy localhost:3903
}

View file

@ -21,9 +21,4 @@
]; ];
}; };
}; };
services.caddy.virtualHosts."dns.cything.io".extraConfig = ''
import common
reverse_proxy localhost:8082
'';
} }

View file

@ -31,9 +31,4 @@
}; };
}; };
}; };
services.caddy.virtualHosts."cache.cything.io".extraConfig = ''
import common
reverse_proxy localhost:8090
'';
} }

View file

@ -2,17 +2,11 @@
{ {
services.conduwuit = { services.conduwuit = {
enable = true; enable = true;
package = package = inputs.conduwuit.packages.x86_64-linux.static-x86_64-linux-musl-all-features-x86_64-haswell-optimised;
inputs.conduwuit.packages.x86_64-linux.static-x86_64-linux-musl-all-features-x86_64-haswell-optimised;
settings.global = { settings.global = {
port = [ 8448 ]; port = [ 8448 ];
server_name = "cything.io"; server_name = "cything.io";
allow_check_for_updates = true; allow_check_for_updates = true;
}; };
}; };
services.caddy.virtualHosts."chat.cything.io".extraConfig = ''
import common
reverse_proxy localhost:8448
'';
} }

View file

@ -1,4 +1,6 @@
{ {
config,
lib,
pkgs, pkgs,
... ...
}: }:
@ -24,7 +26,6 @@
./attic.nix ./attic.nix
./forgejo.nix ./forgejo.nix
./garage.nix ./garage.nix
./tailscale.nix
]; ];
sops.age.keyFile = "/root/.config/sops/age/keys.txt"; sops.age.keyFile = "/root/.config/sops/age/keys.txt";
@ -65,19 +66,14 @@
"attic/env" = { "attic/env" = {
sopsFile = ../../secrets/services/attic.yaml; sopsFile = ../../secrets/services/attic.yaml;
}; };
"garage/env" = { "garage/env" = {
sopsFile = ../../secrets/services/garage.yaml; sopsFile = ../../secrets/services/garage.yaml;
}; };
"tailscale/auth" = {
sopsFile = ../../secrets/services/tailscale.yaml;
};
}; };
boot = { boot.loader.grub.enable = true;
loader.grub.enable = true; boot.loader.grub.device = "/dev/vda";
loader.grub.device = "/dev/vda";
kernelPackages = pkgs.linuxPackages_latest;
};
system.stateVersion = "24.05"; system.stateVersion = "24.05";
@ -181,13 +177,11 @@
programs.gnupg.agent.enable = true; programs.gnupg.agent.enable = true;
programs.git.enable = true; programs.git.enable = true;
my.caddy.enable = true; services.caddy = {
services.caddy.virtualHosts."cy7.sh" = { enable = true;
serverAliases = [ "www.cy7.sh" ]; configFile = ./Caddyfile;
extraConfig = '' environmentFile = config.sops.secrets."caddy/env".path;
import common logFormat = lib.mkForce "level INFO";
redir https://cything.io temporary
'';
}; };
# container stuff # container stuff
@ -203,5 +197,4 @@
}; };
}; };
virtualisation.oci-containers.backend = "podman"; virtualisation.oci-containers.backend = "podman";
environment.enableAllTerminfo = true;
} }

View file

@ -7,9 +7,4 @@
port = 8112; port = 8112;
}; };
}; };
services.caddy.virtualHosts."t.cy7.sh".extraConfig = ''
import common
reverse_proxy localhost:8112
'';
} }

View file

@ -25,9 +25,4 @@
${pkgs.podman}/bin/podman network create element-net ${pkgs.podman}/bin/podman network create element-net
''; '';
}; };
services.caddy.virtualHosts."element.cy7.sh".extraConfig = ''
import common
reverse_proxy localhost:8089
'';
} }

View file

@ -1,8 +1,7 @@
{ pkgs, ... }: { ... }:
{ {
services.forgejo = { services.forgejo = {
enable = true; enable = true;
package = pkgs.forgejo; # uses forgejo-lts by default
user = "git"; user = "git";
group = "git"; group = "git";
settings = { settings = {
@ -17,7 +16,7 @@
service.DISABLE_REGISTRATION = true; service.DISABLE_REGISTRATION = true;
ui = { ui = {
AMBIGUOUS_UNICODE_DETECTION = false; AMBIGUOUS_UNICODE_DETECTION = false;
DEFAULT_THEME = "forgejo-dark"; DEFAULT_THEME = "gitea-dark";
}; };
actions.ENABLED = false; actions.ENABLED = false;
repository.ENABLE_PUSH_CREATE_USER = true; repository.ENABLE_PUSH_CREATE_USER = true;
@ -30,24 +29,4 @@
name = "git"; name = "git";
}; };
}; };
services.caddy.virtualHosts."git.cy7.sh".extraConfig = ''
import common
# renamed repo
uri replace /cy/infra /cy/nixos-config
reverse_proxy localhost:3000
'';
services.caddy.virtualHosts."git.cything.io".extraConfig = ''
import common
# wrap in route so things are evaluated in the order written
route {
# rewrite gitlab URIs to make it work with forgejo
uri path_regexp /-/ /
uri replace /blob/ /src/
redir https://git.cy7.sh{uri} permanent
}
'';
} }

View file

@ -8,12 +8,6 @@
s3_api = { s3_api = {
s3_region = "earth"; s3_region = "earth";
api_bind_addr = "[::]:3900"; api_bind_addr = "[::]:3900";
root_domain = ".s3.cy7.sh";
};
s3_web = {
bind_addr = "[::]:3902";
root_domain = ".web.s3.cy7.sh";
index = "index.html";
}; };
admin.api_bind_addr = "[::]:3903"; admin.api_bind_addr = "[::]:3903";
rpc_bind_addr = "[::]:3901"; rpc_bind_addr = "[::]:3901";
@ -22,22 +16,4 @@
}; };
environmentFile = config.sops.secrets."garage/env".path; environmentFile = config.sops.secrets."garage/env".path;
}; };
services.caddy.virtualHosts = {
"s3.cy7.sh" = {
serverAliases = [ "*.s3.cy7.sh" ];
extraConfig = ''
import common
reverse_proxy localhost:3900
'';
};
"*.web.s3.cy7.sh".extraConfig = ''
import common
reverse_proxy localhost:3902
'';
"admin.s3.cy7.sh".extraConfig = ''
import common
reverse_proxy localhost:3903
'';
};
} }

View file

@ -31,9 +31,4 @@
} }
]; ];
}; };
services.caddy.virtualHosts."grafana.cy7.sh".extraConfig = ''
import common
reverse_proxy localhost:8088
'';
} }

View file

@ -16,9 +16,4 @@
protocolUseSSL = true; protocolUseSSL = true;
}; };
}; };
services.caddy.virtualHosts."pad.cy7.sh".extraConfig = ''
import common
reverse_proxy localhost:8085
'';
} }

View file

@ -95,9 +95,4 @@ in
${pkgs.podman}/bin/podman network create immich-net ${pkgs.podman}/bin/podman network create immich-net
''; '';
}; };
services.caddy.virtualHosts."photos.cy7.sh".extraConfig = ''
import common
reverse_proxy localhost:2283
'';
} }

View file

@ -9,9 +9,4 @@
FORCE_REFRESH_INTERVAL = 0; # don't rate limit me FORCE_REFRESH_INTERVAL = 0; # don't rate limit me
}; };
}; };
services.caddy.virtualHosts."rss.cy7.sh".extraConfig = ''
import common
reverse_proxy localhost:8080
'';
} }

View file

@ -10,9 +10,4 @@
REDLIB_ROBOTS_DISABLE_INDEXING = "on"; REDLIB_ROBOTS_DISABLE_INDEXING = "on";
}; };
}; };
services.caddy.virtualHosts."red.cy7.sh".extraConfig = ''
import common
reverse_proxy localhost:8087
'';
} }

View file

@ -1,13 +0,0 @@
{ config, ... }:
{
services.tailscale = {
enable = true;
authKeyFile = config.sops.secrets."tailscale/auth".path;
extraUpFlags = [
"--advertise-exit-node"
"--accept-dns=false"
];
useRoutingFeatures = "server";
openFirewall = true;
};
}

View file

@ -10,9 +10,4 @@
DATABASE_URL = "postgresql://vaultwarden:vaultwarden@127.0.0.1:5432/vaultwarden"; DATABASE_URL = "postgresql://vaultwarden:vaultwarden@127.0.0.1:5432/vaultwarden";
}; };
}; };
services.caddy.virtualHosts."pass.cy7.sh".extraConfig = ''
import common
reverse_proxy localhost:8081
'';
} }

View file

@ -1,4 +1,4 @@
{ inputs, ... }: { ... }:
{ {
nix = { nix = {
settings = { settings = {
@ -9,21 +9,8 @@
"root" "root"
"@wheel" "@wheel"
]; ];
trusted-public-keys = [ trusted-public-keys = [ "central:uWhjva6m6dhC2hqNisjn2hXGvdGBs19vPkA1dPEuwFg=" ];
"central:uWhjva6m6dhC2hqNisjn2hXGvdGBs19vPkA1dPEuwFg=" substituters = [ "https://cache.cything.io/central" ];
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
"cything.cachix.org-1:xqW1W5NNL+wrM9wfSELb0MLj/harD2ZyB4HbdaMyvPI="
];
substituters = [
"https://aseipp-nix-cache.global.ssl.fastly.net"
"https://cache.cything.io/central"
"https://niri.cachix.org"
"https://nix-community.cachix.org"
"https://cache.garnix.io"
"https://cything.cachix.org"
];
}; };
channel.enable = false; channel.enable = false;
optimise = { optimise = {
@ -37,9 +24,8 @@
options = "--delete-older-than 14d"; options = "--delete-older-than 14d";
}; };
extraOptions = '' extraOptions = ''
builders-use-substitutes = true builders-use-substitutes = true
''; '';
registry.nixpkgs.flake = inputs.nixpkgs;
}; };
time.timeZone = "America/Toronto"; time.timeZone = "America/Toronto";
networking.firewall.logRefusedConnections = false; networking.firewall.logRefusedConnections = false;

View file

@ -13,16 +13,14 @@
cything.io { cything.io {
import common import common
reverse_proxy localhost:8084
header /.well-known/matrix/* Content-Type application/json header /.well-known/matrix/* Content-Type application/json
header /.well-known/matrix/* Access-Control-Allow-Origin * header /.well-known/matrix/* Access-Control-Allow-Origin *
header /.well-known/matrix/* Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS,PATCH,HEAD header /.well-known/matrix/* Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS,PATCH,HEAD
header /.well-known/matrix/* Access-Control-Allow-Headers X-Requested-With,Content-Type,Authorization,Origin,Accept header /.well-known/matrix/* Access-Control-Allow-Headers X-Requested-With,Content-Type,Authorization,Origin,Accept
route { respond /.well-known/matrix/server {"m.server":"chat.cything.io:443"}
respond /.well-known/matrix/server {"m.server":"chat.cything.io:443"} respond /.well-known/matrix/client {"m.server":{"base_url":"https://chat.cything.io"},"m.homeserver":{"base_url":"https://chat.cything.io"},"org.matrix.msc3575.proxy":{"url":"https://chat.cything.io"}}
respond /.well-known/matrix/client {"m.server":{"base_url":"https://chat.cything.io"},"m.homeserver":{"base_url":"https://chat.cything.io"},"org.matrix.msc3575.proxy":{"url":"https://chat.cything.io"}}
redir https://cy7.sh/posts{uri} permanent
}
} }
www.cything.io { www.cything.io {

View file

@ -9,7 +9,6 @@
./hardware-configuration.nix ./hardware-configuration.nix
../common.nix ../common.nix
../zsh.nix ../zsh.nix
./tailscale.nix
]; ];
sops.age.keyFile = "/root/.config/sops/age/keys.txt"; sops.age.keyFile = "/root/.config/sops/age/keys.txt";
@ -33,17 +32,6 @@
sopsFile = ../../secrets/newsboat.yaml; sopsFile = ../../secrets/newsboat.yaml;
owner = "yt"; owner = "yt";
}; };
"tailscale/auth" = {
sopsFile = ../../secrets/services/tailscale.yaml;
};
"aws/key_id" = {
sopsFile = ../../secrets/yt/aws.yaml;
owner = "yt";
};
"aws/key_secret" = {
sopsFile = ../../secrets/yt/aws.yaml;
owner = "yt";
};
}; };
boot = { boot = {
@ -70,7 +58,6 @@
pkiBundle = "/var/lib/sbctl"; pkiBundle = "/var/lib/sbctl";
}; };
kernel.sysctl."kernel.sysrq" = 1; kernel.sysctl."kernel.sysrq" = 1;
binfmt.emulatedSystems = [ "aarch64-linux" ];
}; };
networking = { networking = {
@ -141,7 +128,6 @@
"wheel" "wheel"
"libvirtd" "libvirtd"
"docker" "docker"
"disk"
]; ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
@ -174,8 +160,6 @@
haskell-language-server haskell-language-server
ghc ghc
sbctl # secure boot sbctl # secure boot
wine-wayland
wine64
]; ];
environment.sessionVariables = { environment.sessionVariables = {
@ -189,12 +173,6 @@
services.displayManager = { services.displayManager = {
enable = true; enable = true;
autoLogin.user = "yt"; autoLogin.user = "yt";
defaultSession = "plasma";
sddm = {
enable = true;
wayland.enable = true;
autoNumlock = true;
};
}; };
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
@ -284,56 +262,12 @@
programs.virt-manager.enable = true; programs.virt-manager.enable = true;
services.usbmuxd.enable = true; services.usbmuxd.enable = true;
programs.nix-ld.dev = { programs.nix-ld.enable = true;
enable = true;
# nix run github:thiagokokada/nix-alien#nix-alien-find-libs ./<binary>
libraries = with pkgs; [
mesa
extest
stdenv.cc.cc
libGL
fontconfig
libxkbcommon
zlib
libxml2
dbus
freetype
egl-wayland
waylandpp
cairo
xcb-util-cursor
libplist
p11-kit
kdePackages.qtwayland
qt6.qtwayland
libsForQt5.qt5.qtwayland
xorg.libX11
xorg.libxcb
xorg.xcbutilwm
xorg.xcbutilimage
xorg.xcbutilkeysyms
xorg.xcbutilrenderutil
xorg.libXScrnSaver
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXtst
xorg.libxkbfile
xorg.libxshmfence
];
};
programs.evolution.enable = true; programs.evolution.enable = true;
xdg.portal = { xdg.portal = {
enable = true; enable = true;
wlr.enable = true; wlr.enable = true;
xdgOpenUsePortal = true;
extraPortals = with pkgs; [ xdg-desktop-portal-gtk xdg-desktop-portal-gnome ];
}; };
programs.obs-studio = { programs.obs-studio = {
@ -377,22 +311,8 @@
services.trezord.enable = true; services.trezord.enable = true;
programs.niri.enable = true; my.niri = {
programs.niri.package = pkgs.niri-unstable;
programs.xwayland.enable = true;
services.udev.extraHwdb = ''
SUBSYSTEM=="usb", SYSFS{idVendor}=="090c", SYSFS{idProduct}=="1000", ACTION=="add", GROUP="users", MODE="0664"
'';
programs.ssh = {
askPassword = "${pkgs.seahorse}/libexec/seahorse/ssh-askpass";
startAgent = true;
enableAskPassword = true;
};
services.desktopManager.plasma6 = {
enable = true; enable = true;
enableQt5Integration = true; package = pkgs.niri-unstable;
}; };
} }

View file

@ -1,13 +0,0 @@
{ config, ... }:
{
services.tailscale = {
enable = true;
authKeyFile = config.sops.secrets."tailscale/auth".path;
openFirewall = true;
useRoutingFeatures = "client";
extraUpFlags = [
"--exit-node=100.122.132.30"
"--accept-dns=false"
];
};
}

View file

@ -1,18 +0,0 @@
update:
git branch -D update || true
git switch -c update
nix flake update
git add flake.lock
git commit -s -m "flake update"
git push -f
git switch main
upgrade:
git switch update
sudo nixos-rebuild switch -L --flake . --use-substitutes
nixos-rebuild switch -L --flake .#chunk --target-host root@2a0f:85c1:840:2bfb::1 --use-substitutes
nixos-rebuild switch -L --flake .#titan --target-host root@www.cything.io --use-substitutes
home-manager -L switch --flake .
git switch main
git merge update
git branch -d update

View file

@ -1,40 +0,0 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.my.caddy;
in
{
options.my.caddy = {
enable = lib.mkEnableOption "caddy reverse proxy";
};
config = lib.mkIf cfg.enable {
services.caddy = {
enable = true;
package = pkgs.caddy.withPlugins {
plugins = [
# error message will tell you the correct version tag to use
# (still need the @ to pass nix config check)
"github.com/caddy-dns/cloudflare@v0.0.0-20240703190432-89f16b99c18e"
];
hash = "sha256-jCcSzenewQiW897GFHF9WAcVkGaS/oUu63crJu7AyyQ=";
};
logFormat = lib.mkForce "level INFO";
acmeCA = "https://acme-v02.api.letsencrypt.org/directory";
extraConfig = ''
(common) {
encode zstd gzip
header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
}
'';
globalConfig = ''
acme_dns cloudflare {$CLOUDFLARE_KEY}
'';
environmentFile = config.sops.secrets."caddy/env".path;
};
};
}

View file

@ -2,6 +2,6 @@
{ {
imports = [ imports = [
./backup.nix ./backup.nix
./caddy.nix ./niri.nix
]; ];
} }

21
modules/niri.nix Normal file
View file

@ -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;
};
}

View file

@ -2,7 +2,7 @@ let
overlays = [ overlays = [
./conduwuit ./conduwuit
./attic ./attic
./vscode.nix ./kernel.nix
]; ];
importedOverlays = map (m: import m) overlays; importedOverlays = map (m: import m) overlays;
in in

11
overlay/kernel.nix Normal file
View file

@ -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;
};
});
}

View file

@ -1,14 +0,0 @@
final: prev: {
vscode-extensions = prev.vscode-extensions // {
github = prev.vscode-extensions.github // {
codespaces = prev.vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "github";
name = "codespaces";
version = "1.17.3";
hash = "sha256-idJFYHJ4yeqpFZBX55Y0v1yfzgqyhS0MrC4yIto7i7w=";
};
};
};
};
}

View file

@ -1,5 +1,5 @@
caddy: caddy:
env: ENC[AES256_GCM,data:XyxcCVT+rwlS7A3xzUgGqpMoLwhfUJo2++zPTgoPt3q6Edt14bYQJsoSJXnKx/lGg/0ilNfEEg8AEnru/Mzx0bWedSdWuZ380l8wlLiucqQThhEBhEJlyd94BMNzhxFdj82w0ejp4oWb5By/WjkFNesvAyxPIo/Ir4S+fTgGpA1iO2Ms8Pdjp00qeXYsK1CfjaXOYlEP+8BxntN2JKLYb8Cgs7dLmHfUwP6gTFKlTukUTtQZYUw336q3TtGy,iv:Ab/E0ljUBxzWlXfAC2BXCYxlgo0ErvKFaubgVjFR3OU=,tag:Yr24/DofYS2lM6f2/1LQ3Q==,type:str] env: ENC[AES256_GCM,data:uVCkVky5MRRhN+g4f634nBjvpcI5Ldy+eOKXg7eGu9foswTHA1SXDs67+Wuvo/jaPw7Zg67xKZRHnoTon1udQzyfu0T6pmVKfsUPewITYCd+qLTanFz6uVRUHzpUVwjCZNqB8gxNr/BiZ70NG4vQXRjgd3zKFrQYQBr4zSaP2vK1pRdbuQ==,iv:dQBfX4X8huUp2dqY3tEGW+BPZ/XADT10ptt85R7X+AY=,tag:cvMbFjkRHoxxnNfz8dGv5g==,type:str]
sops: sops:
kms: [] kms: []
gcp_kms: [] gcp_kms: []
@ -33,8 +33,8 @@ sops:
Q2hBZE1FOHJ3aW5rVmoyK045eG11cmsKFOmP5iWONREZvxu0rM+fKMPQKgnYq5LH Q2hBZE1FOHJ3aW5rVmoyK045eG11cmsKFOmP5iWONREZvxu0rM+fKMPQKgnYq5LH
AKMZFsP7nnUxjdCXEA18sDg4Rf0qp8i3uQK3D6P7417j9ye/YZA4BQ== AKMZFsP7nnUxjdCXEA18sDg4Rf0qp8i3uQK3D6P7417j9ye/YZA4BQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-01-30T17:26:39Z" lastmodified: "2024-12-17T03:25:37Z"
mac: ENC[AES256_GCM,data:saoalvnwHsv0CTw/cRZqibnH9oGoZTNwGUT7RePKRa8OwNzbUEzQt+Z1WrmmWoqR+omQXLE+lpOPv6uNYxvAWnIelzCGeBBCMSBxtjlTUsjts7oFo7d9C5SdTIOkzotDxryvjRupb0P7hAmEqcSUKRZipJy5MVR7VXR1XZ4fIPM=,iv:VaP05zj8L2pygi1/M4BnOV3Inf0ssaWMu+aTBkdDMys=,tag:nuZT8GMB4F0T5dHnTvHOhA==,type:str] mac: ENC[AES256_GCM,data:bhFBLkT2q6HGtTPtHLVZkKZn00Lbm11/u3qSR19lU2E1SsQ7mpukvCqcTxNWtJ+HHth6yJJfgM6XABKq/9/598L2MgGuF3C/GGS3xpjwHh5RyV8t1lV8cqDaZGjGOMGx35lFQ6DoXOreQrtP/f7MKzf+nVNFr1NbTR8YhqR1xDU=,iv:+fjYlbyIyM9nLagrvE+PUhC2pT7QTsTSQX7ELZ7Wuhs=,tag:GWQv6VmIsWwFzb4bUr5CLg==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.4 version: 3.9.2

View file

@ -1,31 +0,0 @@
tailscale:
auth: ENC[AES256_GCM,data:7gGiUBRUK25Tp5y/5DDZKOTxKPFFfN1UUeBOdMLLQqobq643MKdJ9imxkKmKFg/FwgLYft/uzdxQGGlE7Q==,iv:HRmd+T1QuTYP8VrX/bZt8dWSwm5rcUvpEMqCMPfxjE4=,tag:PRZn2Pm6yydfEULrYGM6yg==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1eg6sxflw6l44fp20sl068sampwd95fm0mnh4ssegrhtktgm50ptqcuspyn
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2Z1JZZmZMaDQ3UHYvbXYr
c05RaEMxUGJXSGczUDBkL1UxT0hjQ0VNNkJNClFUNmJ5d3gyaHFwMTdNVW9GQ2ly
V3haMkx5Z1B5dmJ0SE4wY0UzMWswQ0EKLS0tIGNpZVo3UmtHcjFZVE5FMmdpOGMx
UFZGb3I1L3FJYVE2VjJ5aTVoZlo4bFUKwH2sPBwuLQXrHmiKYSu4Eut/H2j/2tUW
1y8Eph7l6w3kfhZRRbo6cZ8gcbZNHPSPeAvWf/TpYumiTt1WBt8SMw==
-----END AGE ENCRYPTED FILE-----
- recipient: age10h6pg5qdpc4t0rpmksfv788a57f04n83zgqaezkjjn65nkhv547s0vxfdn
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSVXBMTEMrY1NGa1NBSjZP
R04wYUsrdGlVa3FnL1NYVG4xdUdqeHNnM0ZJCmhMSzFoRVFSOFBrQlU3VUtwaU0r
TEtad1B5NGh3OW1oajNvckhJcExrU0kKLS0tIFc5K3JOVTUvSFU1dmQxMUFRZ1o3
em5IemlsM29zVy9GK3RmTlgzVnRpMDAKRatmFgCdoXcypQ+1EDedCuVctl0SFMf4
kjtHrTSpept/y9bpTUy656aPRQ1LvqvfPs7Co1ssC/YWFroDsLgv4w==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-01-24T05:26:20Z"
mac: ENC[AES256_GCM,data:GbQrLESUR/x+eLzukOR1FaJsd8zxlrz9dc/2kDBKUYAgI8L4QwLmwRuzpaIJgNLv2PdLTW83oSC8ekxR8fmsap40DpiygcrmPdPUeVFbEPaz7SSvU+DCgB0UX+qNQ9aOQ0BIbeKKOIj3r9enGv2o6DKY8I85n7VXjnGZAmCf1C8=,iv:UrtVqRGwvOpXOH3X3qF6ZF+VwqO0VGt+hFG7r6oUqCg=,tag:TD4mG3t5ORYgAS0GBmA7Eg==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.3

View file

@ -1,32 +0,0 @@
aws:
key_id: ENC[AES256_GCM,data:vxa8IS5zVOStsQaQNoPy36MeCw2KD2Th5tg=,iv:TrPukr/bpkGysf1YigBlXwaCu0H1FM6ivCVQEgnst6A=,tag:yrlcsDkLkH7U2i3JgjDaBA==,type:str]
key_secret: ENC[AES256_GCM,data:R9hFgtylEW1RphrP7/9Hi7HIb7gcQX1WDEVfnUTTzh+/0LM2Rb9CdkaleO8wNlcyYVE/jUKtqdqqrospAJ7+Zw==,iv:3+yCVqH441+oXFLI5usaQdhnE3GFhbJjMsYeRvk8xEw=,tag:STxA32cSdwPBikXyVEP5+Q==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1sy0at69err83qyml2vqu8xvwjccfws447aaadfvacj2qluw3p45s2mtrw8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKaUZKbTVjZ1NEWlE5RzZT
T1dKdkRQajEva0tpRXhxYUlYWmw1b3MwSFZvCmhteVJ2VGhVNnZTZkJlem1OT3dL
dGlQTWdOUlo3TXNOS0wvNlpqVWpZSFEKLS0tIC9DNjY3OW1zWUlRQ1ZEOGlBRk9R
azQxMGhQejQ5M0N1YjFtSW5uVnRCQ3MKtt26G2PxIry/lppOT/NUX8jebEb5NgqO
HuHj7WT51Gtotfgb22VfGeOCaw9+pPYSjdk9WV4z57r7Z/lylALKRw==
-----END AGE ENCRYPTED FILE-----
- recipient: age10h6pg5qdpc4t0rpmksfv788a57f04n83zgqaezkjjn65nkhv547s0vxfdn
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPaVIwbExDUjJiVFpHOFJu
dk1SUHc5UDRFUENsbkg2RmQvazdEZ1NKeEhvCjVCNzdwRFN0aUZJL0pVSTI1RUxv
Ymhhc0tsSENVa1VUKzRBZk5IcjEvNFUKLS0tIFpPNlRXOVYyVnpyUmtLMTFqNlZ0
UlYrTExEUVc0dURLR1czN3BnYzZ2VGMKCbAgM50jvs9VciA1Pb/VY+2I4x62LBGe
j7eHkfTFc8Gnk/rZA9/ZJDLFr/FUPMQWK/NVoz6oLjO6oVFXqN6OqA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-01-30T17:45:09Z"
mac: ENC[AES256_GCM,data:uXnJ8DCs1ZZ72PFAmSQpqvVH2UYvRX8AeUC00A6WsgNL9sz6H0b7PwXBn4SucHACwLwilMVKYpFGE1pPMsIgpHxU5coNhvTfth/ChY1KS73LAwrJUAyUoFI3mumPkklj7b/u1CbBfhuhA2QoZVl+d9BGQn5CQu3+BySUmcT+P9k=,iv:H/hUTBDNcsGBP5TA/7U1QMZogZvuoPuEAg/tBCpbf9w=,tag:W7rH84Na/tHPuJlA9tRXEQ==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.4