mirror of
https://github.com/tuxdotrs/nix-config.git
synced 2026-08-05 05:46:33 +05:30
Compare commits
1 Commits
dev
...
8d3e740614
| Author | SHA1 | Date | |
|---|---|---|---|
|
8d3e740614
|
20
.sops.yaml
20
.sops.yaml
@@ -3,10 +3,7 @@ keys:
|
|||||||
- &tux age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4
|
- &tux age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4
|
||||||
|
|
||||||
- &hosts
|
- &hosts
|
||||||
- &sirius age1maxsx5tq2h3d92rfyl8ekcdan5gu5cpch4qs3c56cu7qag02xgvs3h0gqc
|
- &sirius age18hepvvp3nw9ram6usxc8rvpxed2pye0knqx0zutqgxeu35k745vqyxfphz
|
||||||
- &canopus age1x36yr8h993srfj29sfpzt4wyz52nztvncpmhgmfs0j26qvfecq3qvcm0an
|
|
||||||
- &arcturus age1huqa3hc7wcxk4dpelrzny437nzrx4fnll3d8g9ahznzk268yju5qufapxy
|
|
||||||
- &alpha age1mzxxxzhy3us3rd960ufqv7vlxj5cnug86md6x69llg9ujzw2pqws057llf
|
|
||||||
|
|
||||||
creation_rules:
|
creation_rules:
|
||||||
- path_regex: hosts/sirius/secrets.yaml$
|
- path_regex: hosts/sirius/secrets.yaml$
|
||||||
@@ -14,18 +11,3 @@ creation_rules:
|
|||||||
- age:
|
- age:
|
||||||
- *tux
|
- *tux
|
||||||
- *sirius
|
- *sirius
|
||||||
- path_regex: hosts/canopus/secrets.yaml$
|
|
||||||
key_groups:
|
|
||||||
- age:
|
|
||||||
- *tux
|
|
||||||
- *canopus
|
|
||||||
- path_regex: hosts/arcturus/secrets.yaml$
|
|
||||||
key_groups:
|
|
||||||
- age:
|
|
||||||
- *tux
|
|
||||||
- *arcturus
|
|
||||||
- path_regex: hosts/alpha/secrets.yaml$
|
|
||||||
key_groups:
|
|
||||||
- age:
|
|
||||||
- *tux
|
|
||||||
- *alpha
|
|
||||||
|
|||||||
481
flake.lock
generated
481
flake.lock
generated
@@ -42,11 +42,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784368054,
|
"lastModified": 1777499565,
|
||||||
"narHash": "sha256-zF1iJkBQSDWmRO4/LEeHR1SpKY0lqZaxkoQJpPS9K9U=",
|
"narHash": "sha256-nU55VWk99Pn1QzQDDjFISocC4SgDZ3Xp+zb6ji3JclM=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "9b5f14d9483445e766294eb8fbe0b8f370269ed0",
|
"rev": "813c1e8981893c11e118b19c125d6bc282f51765",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -84,11 +84,11 @@
|
|||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784030954,
|
"lastModified": 1777136912,
|
||||||
"narHash": "sha256-MPMVSBhSEl+ShSrWVN5qH3FiX2gg8LbYA8L3nuQw5VE=",
|
"narHash": "sha256-owyQdC2vi0kYC119fzyVQp0J4G0t1n4xXUwryhlBbqA=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "25ea4fd7a42359379da9ddadedda1c477caa4ae0",
|
"rev": "f66e12a76dbc4c669b2f1375f78bce49f5b19d66",
|
||||||
"revCount": 1376,
|
"revCount": 1363,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://codeberg.org/LGFae/awww"
|
"url": "https://codeberg.org/LGFae/awww"
|
||||||
},
|
},
|
||||||
@@ -97,41 +97,6 @@
|
|||||||
"url": "https://codeberg.org/LGFae/awww"
|
"url": "https://codeberg.org/LGFae/awww"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"crane": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1781825982,
|
|
||||||
"narHash": "sha256-SlXKwIRIhrOSAcTjCB3ftPLzJWZStQIPS7J1FlZPnKk=",
|
|
||||||
"owner": "ipetkov",
|
|
||||||
"repo": "crane",
|
|
||||||
"rev": "469fd08d0bcf6926321fa973c6777fbc87785dd7",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ipetkov",
|
|
||||||
"repo": "crane",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"cyber-tux": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1739652548,
|
|
||||||
"narHash": "sha256-J4mL4DyRFTsEKlratZsbC9tm2i6Mzr6dEhetKk4jABM=",
|
|
||||||
"ref": "refs/heads/main",
|
|
||||||
"rev": "4ada9e2f0d3b6639627601d3f06128c953c2b446",
|
|
||||||
"revCount": 11,
|
|
||||||
"type": "git",
|
|
||||||
"url": "ssh://git@github.com/tuxdotrs/cyber-tux.git"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "ssh://git@github.com/tuxdotrs/cyber-tux.git"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"deploy-rs": {
|
"deploy-rs": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
@@ -139,11 +104,11 @@
|
|||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1781627888,
|
"lastModified": 1770019181,
|
||||||
"narHash": "sha256-5yHuAh9k7rT7rtf3uRaXkiUyYvQE9oaCgzhprLm2mr8=",
|
"narHash": "sha256-hwsYgDnby50JNVpTRYlF3UR/Rrpt01OrxVuryF40CFY=",
|
||||||
"owner": "serokell",
|
"owner": "serokell",
|
||||||
"repo": "deploy-rs",
|
"repo": "deploy-rs",
|
||||||
"rev": "6d3087eedff75a715b40c0e124ba15d2dd7bec28",
|
"rev": "77c906c0ba56aabdbc72041bf9111b565cdd6171",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -159,11 +124,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1781152676,
|
"lastModified": 1777713215,
|
||||||
"narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=",
|
"narHash": "sha256-8GzXDOXckDWwST8TY5DbwYFjdvQLlP7K9CLSVx6iTTo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1",
|
"rev": "63b4e7e6cf75307c1d26ac3762b886b5b0247267",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -221,22 +186,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_4": {
|
"flake-compat_4": {
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1767039857,
|
|
||||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat_5": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733328505,
|
"lastModified": 1733328505,
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
@@ -250,7 +199,7 @@
|
|||||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_6": {
|
"flake-compat_5": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767039857,
|
"lastModified": 1767039857,
|
||||||
@@ -273,11 +222,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1782949081,
|
"lastModified": 1777678872,
|
||||||
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
|
"narHash": "sha256-EPIFsulyon7Z1vLQq5Fk64GR8L7cQsT+IPhcsukVbgk=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
|
"rev": "5250617bffd85403b14dbf43c3870e7f255d2c16",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -291,11 +240,11 @@
|
|||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1782949081,
|
"lastModified": 1749398372,
|
||||||
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
|
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
|
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -309,11 +258,11 @@
|
|||||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1782949081,
|
"lastModified": 1777678872,
|
||||||
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
|
"narHash": "sha256-EPIFsulyon7Z1vLQq5Fk64GR8L7cQsT+IPhcsukVbgk=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
|
"rev": "5250617bffd85403b14dbf43c3870e7f255d2c16",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -345,29 +294,7 @@
|
|||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": [
|
"systems": "systems_4"
|
||||||
"mango",
|
|
||||||
"scenefx",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731533236,
|
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils_2": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_5"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
@@ -403,8 +330,8 @@
|
|||||||
"gitignore": {
|
"gitignore": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"lanzaboote",
|
"hyprland",
|
||||||
"pre-commit",
|
"pre-commit-hooks",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -446,11 +373,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784789275,
|
"lastModified": 1777846259,
|
||||||
"narHash": "sha256-cgRTWuG+u1tBPhm01JrId2k0Bni09phVJ1Q0BZlRd7M=",
|
"narHash": "sha256-jzln9xcpVcmEB1zfhJ+FIHd7/kaVHgGF+gQQHxj2fGI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "3b0e6bbd65869af1beadf5963a99befc179d209f",
|
"rev": "4625f26228f4f7ea3cf65eee3023359a8221fcff",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -525,11 +452,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1782566056,
|
"lastModified": 1776426399,
|
||||||
"narHash": "sha256-haEZcHzYrePnjFOYSWTbxm/Nrla0aPslJfmvdCvqtVc=",
|
"narHash": "sha256-RUESLKNikIeEq9ymGJ6nmcDXiSFQpUW1IhJ245nL3xM=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprgraphics",
|
"repo": "hyprgraphics",
|
||||||
"rev": "c6e7b9f673f4360bc813d3dc75028f75ee88d3f8",
|
"rev": "68d064434787cf1ed4a2fe257c03c5f52f33cf84",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -555,11 +482,11 @@
|
|||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784738137,
|
"lastModified": 1778072172,
|
||||||
"narHash": "sha256-+6Ei2gg7/ZdjieINcdNx/+BHgF+J59dOG8m65ZR0rnc=",
|
"narHash": "sha256-onx/6cN1tHDnMH0oCQCnpQPKv9VijeLtfOh7PStp2f0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "7d2ea270704c265dd100a7898e6186e49c6741a7",
|
"rev": "1681bea42dd2f11ba3fe6df05560d0b231de3c76",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -601,11 +528,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784196523,
|
"lastModified": 1776426575,
|
||||||
"narHash": "sha256-ahtKMGXFJdlQNhatQm1+BBU/pGfGYnAqQt3vWvq4p8s=",
|
"narHash": "sha256-KI6nIfVihn/DPaeB5Et46Xg3dkNHrrEtUd5LBBVomB0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-guiutils",
|
"repo": "hyprland-guiutils",
|
||||||
"rev": "a6ccb6cb112ed5a244c0191fb972347ecfa893e0",
|
"rev": "a968d211048e3ed538e47b84cb3649299578f19d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -707,11 +634,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1782554491,
|
"lastModified": 1772462885,
|
||||||
"narHash": "sha256-+p3MlyN/nqRefcf2IckPlGRUn9+hielqpS9XClbLleM=",
|
"narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprtoolkit",
|
"repo": "hyprtoolkit",
|
||||||
"rev": "bdba25ced39ea39ab004a8f31593ba0b0ff1ca35",
|
"rev": "9af245a69fa6b286b88ddfc340afd288e00a6998",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -732,11 +659,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784323413,
|
"lastModified": 1777492286,
|
||||||
"narHash": "sha256-XnAVV+H4f8Xdv0yZcSwJ5kCjLyE8fHxPeLX6a3HSrAU=",
|
"narHash": "sha256-PwuoEJQcjSKJNP5T55qhfDwIP0tw5zxEhfu8GDfKfeg=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "5f03477ab3a005ff27c527486f551883535aea2f",
|
"rev": "ec5c0c709706bad5b82f667fd8758eae442577ce",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -786,11 +713,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1778410714,
|
"lastModified": 1777388329,
|
||||||
"narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=",
|
"narHash": "sha256-40YxVGF2rA9iH3D7am5fy4EOSBbMgpJtJ9yhl0Cx+qI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwire",
|
"repo": "hyprwire",
|
||||||
"rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc",
|
"rev": "04be2897e05f9b271d532b5ae56ca088d2eeac02",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -820,11 +747,11 @@
|
|||||||
},
|
},
|
||||||
"import-tree": {
|
"import-tree": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784254960,
|
"lastModified": 1773693634,
|
||||||
"narHash": "sha256-iI88R3wHz8wTKQb5orvpc51L/Xr64AJyxid/0MKa/b8=",
|
"narHash": "sha256-BtZ2dtkBdSUnFPPFc+n0kcMbgaTxzFNPv2iaO326Ffg=",
|
||||||
"owner": "vic",
|
"owner": "vic",
|
||||||
"repo": "import-tree",
|
"repo": "import-tree",
|
||||||
"rev": "4ebb10ae17d5f1ad366e7aef5b92cb8eecf24f69",
|
"rev": "c41e7d58045f9057880b0d85e1152d6a4430dbf1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -839,11 +766,11 @@
|
|||||||
"rust-overlay": "rust-overlay_2"
|
"rust-overlay": "rust-overlay_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1782656559,
|
"lastModified": 1777496383,
|
||||||
"narHash": "sha256-i2xXiqLOnCNfwZnbrm1teVlTTA1HQ0IRVPXEiyiQtpU=",
|
"narHash": "sha256-mebY9G6bvaP7F312eZZh9CFlBxwj/LfeEXVuId85x/w=",
|
||||||
"owner": "feschber",
|
"owner": "feschber",
|
||||||
"repo": "lan-mouse",
|
"repo": "lan-mouse",
|
||||||
"rev": "392af44cbe06a7a591db86856ad6ed2aa83958d8",
|
"rev": "3e7b04c1848afb2d77f802c7ddf1f5f3720c1b47",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -852,28 +779,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lanzaboote": {
|
|
||||||
"inputs": {
|
|
||||||
"crane": "crane",
|
|
||||||
"nixpkgs": "nixpkgs_6",
|
|
||||||
"pre-commit": "pre-commit",
|
|
||||||
"rust-overlay": "rust-overlay_3"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1782141370,
|
|
||||||
"narHash": "sha256-hqijVSEETttmo8Okql9/LG0Ua34hdciKW1a5zzlj8mU=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "lanzaboote",
|
|
||||||
"rev": "7c9a54a7f87b4539ddbd8bda09a8a5f5f9361aa9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"ref": "v1.1.0",
|
|
||||||
"repo": "lanzaboote",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"libpng": {
|
"libpng": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -900,11 +805,11 @@
|
|||||||
"scenefx": "scenefx"
|
"scenefx": "scenefx"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784771949,
|
"lastModified": 1778073611,
|
||||||
"narHash": "sha256-ZsdV6ObmQtTupYJFKoyF/P0IL80mpLWwGHktWpi83iw=",
|
"narHash": "sha256-6rNTdQZq4x/F2bHQsk7qo4OhXs5Y0xsQrTR1hgKZOqw=",
|
||||||
"owner": "DreamMaoMao",
|
"owner": "DreamMaoMao",
|
||||||
"repo": "mango",
|
"repo": "mango",
|
||||||
"rev": "3a159f4bf8b479fa5626f37a30eba5335e699f53",
|
"rev": "42c02e3dc20eb09c0191b027e387c0268f8e0fb5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -915,17 +820,17 @@
|
|||||||
},
|
},
|
||||||
"nixcord": {
|
"nixcord": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_5",
|
"flake-compat": "flake-compat_4",
|
||||||
"flake-parts": "flake-parts_3",
|
"flake-parts": "flake-parts_3",
|
||||||
"nixpkgs": "nixpkgs_7",
|
"nixpkgs": "nixpkgs_6",
|
||||||
"nixpkgs-nixcord": "nixpkgs-nixcord"
|
"nixpkgs-nixcord": "nixpkgs-nixcord"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784802409,
|
"lastModified": 1778145028,
|
||||||
"narHash": "sha256-IkbeXL5pTJHW0pQbp0bjaa+DeRPsKMofB2cFf7G1qw0=",
|
"narHash": "sha256-tJHyzazrh9cnL72lPiDCnLDOOP95vDb37PprmgiqHtw=",
|
||||||
"owner": "kaylorben",
|
"owner": "kaylorben",
|
||||||
"repo": "nixcord",
|
"repo": "nixcord",
|
||||||
"rev": "8f18918faa85bf53656a3e9d5ef068e8ec6dc9e5",
|
"rev": "b53c871a9c3d4d450ffbcac71d54f3e0ca1bbafc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -935,15 +840,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs_8"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784723954,
|
"lastModified": 1777796046,
|
||||||
"narHash": "sha256-1CfD8ZUjCkTgjsneLZ/lxCHhgDfqxxE7/GX0MmsgiqA=",
|
"narHash": "sha256-bEJp/zaQApzynGRaAO62BZSz9tFikKtIHCn2yIA/s7Q=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "a017f5b72210026af5b3ac5949f08d94380a6fbd",
|
"rev": "eeb02f6e29fc8139c0b15af5ff0fdfdc6d0d3d90",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -971,11 +873,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1782614948,
|
"lastModified": 1748740939,
|
||||||
"narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=",
|
"narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c",
|
"rev": "656a64127e9d791a334452c6b6606d17539476e2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -986,11 +888,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-lib_2": {
|
"nixpkgs-lib_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1782614948,
|
"lastModified": 1777168982,
|
||||||
"narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=",
|
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c",
|
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1001,27 +903,27 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-nixcord": {
|
"nixpkgs-nixcord": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784432872,
|
"lastModified": 1777428379,
|
||||||
"narHash": "sha256-n3gKTBIV4ZA5VQpUakffBe3KGu4+mhPoA34rrqS0GkA=",
|
"narHash": "sha256-ypxFOeDz+CqADEQNL72haqGjvZQdBR5Vc7pyx2JDttI=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "fd1462031fdee08f65fd0b4c6b64e22239a77870",
|
"rev": "755f5aa91337890c432639c60b6064bb7fe67769",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-26.05",
|
"ref": "nixos-25.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1782841183,
|
"lastModified": 1777805331,
|
||||||
"narHash": "sha256-Ndt/5R7UN4rBdhFR1lxHZZZ42cD6vGlnuxC2VvvsKE4=",
|
"narHash": "sha256-jINoZUP2tJEBLuVoMEhJn9qWQgpriGorwlgnBc1QAPg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c9bfd86ed684d27e63b0ff9ebb18699f84f27a3b",
|
"rev": "8cbe20ad0f64f9f9619b871dfdf57022beccef65",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1032,38 +934,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_10": {
|
"nixpkgs_10": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1784497964,
|
|
||||||
"narHash": "sha256-vlHUuqAcbcH2RKmHbPiuQzbv1pnzzavXnI62RD0bqCU=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_11": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1782175435,
|
|
||||||
"narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "89570f24e97e614aa34aa9ab1c927b6578a43775",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_12": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770107345,
|
"lastModified": 1770107345,
|
||||||
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
|
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
|
||||||
@@ -1097,11 +967,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784356753,
|
"lastModified": 1777954456,
|
||||||
"narHash": "sha256-12KrbMiWLcf8m7pCvAtZh1ZrgF85ZXDXvfR/fWTKy84=",
|
"narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "61b7c44c4073f0b827768aff0049561b5110ea5a",
|
"rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1145,61 +1015,64 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
"nixpkgs_6": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1781577229,
|
"lastModified": 1777428379,
|
||||||
"narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
|
"narHash": "sha256-ypxFOeDz+CqADEQNL72haqGjvZQdBR5Vc7pyx2JDttI=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "567a49d1913ce81ac6e9582e3553dd90a955875f",
|
"rev": "755f5aa91337890c432639c60b6064bb7fe67769",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-25.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_7": {
|
"nixpkgs_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784432872,
|
"lastModified": 1777578337,
|
||||||
"narHash": "sha256-n3gKTBIV4ZA5VQpUakffBe3KGu4+mhPoA34rrqS0GkA=",
|
"narHash": "sha256-Ad49moKWeXtKBJNy2ebiTQUEgdLyvGmTeykAQ9xM+Z4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "fd1462031fdee08f65fd0b4c6b64e22239a77870",
|
"rev": "15f4ee454b1dce334612fa6843b3e05cf546efab",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-26.05",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_8": {
|
"nixpkgs_8": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767892417,
|
"lastModified": 1777954456,
|
||||||
"narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
|
"narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=",
|
||||||
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
|
"owner": "nixos",
|
||||||
"type": "tarball",
|
"repo": "nixpkgs",
|
||||||
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz"
|
"rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1",
|
||||||
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"owner": "nixos",
|
||||||
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_9": {
|
"nixpkgs_9": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784497964,
|
"lastModified": 1777918403,
|
||||||
"narHash": "sha256-vlHUuqAcbcH2RKmHbPiuQzbv1pnzzavXnI62RD0bqCU=",
|
"narHash": "sha256-7QiZv0LcW1yIOLo2LNuCQjWon1Z1r99FwK24hbtBOF4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163",
|
"rev": "afc5551119aae6eab73a95c1960891cfe63204f6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixpkgs-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -1207,14 +1080,14 @@
|
|||||||
"nur": {
|
"nur": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_4",
|
"flake-parts": "flake-parts_4",
|
||||||
"nixpkgs": "nixpkgs_10"
|
"nixpkgs": "nixpkgs_8"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784812182,
|
"lastModified": 1778156530,
|
||||||
"narHash": "sha256-EoQD/QSJspwQtOxPFbPccUCghTWAA3pof8elGaxOvOo=",
|
"narHash": "sha256-4VhPk2NQKyYptNw1x/HG23sFmR4iYTOTZhGhzzYDQOs=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nur",
|
"repo": "nur",
|
||||||
"rev": "acde88ba322d6ba922e5f6bae1dfecce703f31eb",
|
"rev": "1b24f43e7f25d9c297a2ed45c654a72fc68d3d29",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1223,43 +1096,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre-commit": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_4",
|
|
||||||
"gitignore": "gitignore",
|
|
||||||
"nixpkgs": [
|
|
||||||
"lanzaboote",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1781733627,
|
|
||||||
"narHash": "sha256-U3yTuGBnmXvXoQI3qkpfEDsn9RovQPAjN7ndRco+3u0=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "pre-commit-hooks.nix",
|
|
||||||
"rev": "3bbec39bc90eadfa031e6f3b77272f3f60803e39",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "pre-commit-hooks.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pre-commit-hooks": {
|
"pre-commit-hooks": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_3",
|
||||||
|
"gitignore": "gitignore",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"hyprland",
|
"hyprland",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784288435,
|
"lastModified": 1776796298,
|
||||||
"narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=",
|
"narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9",
|
"rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1271,7 +1122,6 @@
|
|||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"awww": "awww",
|
"awww": "awww",
|
||||||
"cyber-tux": "cyber-tux",
|
|
||||||
"deploy-rs": "deploy-rs",
|
"deploy-rs": "deploy-rs",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
@@ -1280,11 +1130,10 @@
|
|||||||
"impermanence": "impermanence",
|
"impermanence": "impermanence",
|
||||||
"import-tree": "import-tree",
|
"import-tree": "import-tree",
|
||||||
"lan-mouse": "lan-mouse",
|
"lan-mouse": "lan-mouse",
|
||||||
"lanzaboote": "lanzaboote",
|
|
||||||
"mango": "mango",
|
"mango": "mango",
|
||||||
"nixcord": "nixcord",
|
"nixcord": "nixcord",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_9",
|
"nixpkgs": "nixpkgs_7",
|
||||||
"nixpkgs-stable": "nixpkgs-stable",
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
@@ -1338,27 +1187,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay_3": {
|
"rust-overlay_3": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"lanzaboote",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1782012058,
|
|
||||||
"narHash": "sha256-9mWUnReOUXfKjZuJAL/bAFH3LUyECTRtXgSNVjRw3UY=",
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"rev": "8534567325bd8a8d2928e6afd81e0a87d19efd3c",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"rust-overlay_4": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"wezterm-flake",
|
"wezterm-flake",
|
||||||
@@ -1366,11 +1194,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1780715792,
|
"lastModified": 1764470739,
|
||||||
"narHash": "sha256-4+8gPeiPeud89mjo865RwpqmKwa1MThRsq2SvRxo7mg=",
|
"narHash": "sha256-sa9f81B1dWO16QtgDTWHX8DQbiHKzHndpaunY5EQtwE=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "27b7e78c6935293ee868469cc4172e9b8b17823b",
|
"rev": "3bfa664055e1a09c6aedab5533c5fc8d6ca5741a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1381,19 +1209,17 @@
|
|||||||
},
|
},
|
||||||
"scenefx": {
|
"scenefx": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"mango",
|
"mango",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
]
|
||||||
"systems": "systems_3"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1782624992,
|
"lastModified": 1750785057,
|
||||||
"narHash": "sha256-vUjLG6eubEhJJVa9LPygIcVmNoHwYbSUTJcWEcbxnU4=",
|
"narHash": "sha256-tGX6j4W91rcb+glXJo43sjPI9zQvPotonknG1BdihR4=",
|
||||||
"owner": "wlrfx",
|
"owner": "wlrfx",
|
||||||
"repo": "scenefx",
|
"repo": "scenefx",
|
||||||
"rev": "37ccd723bef49e6891156ffafce8f549f01446cc",
|
"rev": "3a6cfb12e4ba97b43326357d14f7b3e40897adfc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1404,14 +1230,14 @@
|
|||||||
},
|
},
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_11"
|
"nixpkgs": "nixpkgs_9"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1783174389,
|
"lastModified": 1777944972,
|
||||||
"narHash": "sha256-aCWC8ngycU7OdJrU2+Je3qf+1a2ykuBvpPhZT/9tXMc=",
|
"narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "f1406619a3884cd5c47992a70b8b35c9c0fcb4c9",
|
"rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1451,21 +1277,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_3": {
|
"systems_3": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1689347949,
|
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_4": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
@@ -1480,7 +1291,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_5": {
|
"systems_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
@@ -1523,11 +1334,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784904497,
|
"lastModified": 1771924703,
|
||||||
"narHash": "sha256-fd7YDkswyy5IlKUJ3aRcrtCSh7ubcW9uMGWOIxFBovI=",
|
"narHash": "sha256-FdXguczx6AcfEnEPhKm76CdjsvAKQ88H4CHt43bhO6s=",
|
||||||
"owner": "tuxdotrs",
|
"owner": "tuxdotrs",
|
||||||
"repo": "tpanel",
|
"repo": "tpanel",
|
||||||
"rev": "fd5a96c4e84c62ec28c5596a5d3775f9523a2a56",
|
"rev": "9b8c4df5961eb541fd60e8ea424266790c3969a1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1538,14 +1349,14 @@
|
|||||||
},
|
},
|
||||||
"treefmt-nix": {
|
"treefmt-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_12"
|
"nixpkgs": "nixpkgs_10"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784369104,
|
"lastModified": 1775636079,
|
||||||
"narHash": "sha256-47cxbcZODibHv3rELFQ9vZly0vUNkND/atn/U7HLeb0=",
|
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "df3c0640565d04a0261253cdd89fce78ec50168a",
|
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1584,11 +1395,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1780277152,
|
"lastModified": 1768856963,
|
||||||
"narHash": "sha256-P3YrDLnggsMsSoiX/ox3CS6GkZtY37XQVon/QR6Agw8=",
|
"narHash": "sha256-u5bWDuwk6oieTnvm1YjNotcYK8iJSddH5+S68+X4TSc=",
|
||||||
"owner": "vicinaehq",
|
"owner": "vicinaehq",
|
||||||
"repo": "vicinae",
|
"repo": "vicinae",
|
||||||
"rev": "67290dff5b2191a6cb6dd78b31d623eeef3acdec",
|
"rev": "934bc0ad47be6dbd6498a0dac655c4613fd0ab27",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1599,19 +1410,19 @@
|
|||||||
},
|
},
|
||||||
"vicinae-extensions": {
|
"vicinae-extensions": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_6",
|
"flake-compat": "flake-compat_5",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_4",
|
"systems": "systems_3",
|
||||||
"vicinae": "vicinae"
|
"vicinae": "vicinae"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784504910,
|
"lastModified": 1777930825,
|
||||||
"narHash": "sha256-fzPBEJZiRvc/FNMdpbdcfaZzF01U4IQenHW9IQFzhos=",
|
"narHash": "sha256-0hVf9yH+v+0YaCqmr0aX0nR4pfmXjW1XhJcJyblJqE0=",
|
||||||
"owner": "vicinaehq",
|
"owner": "vicinaehq",
|
||||||
"repo": "extensions",
|
"repo": "extensions",
|
||||||
"rev": "ca74eede9a778a9373c8f5fd221b0a5026dcd1ef",
|
"rev": "20d6a13d2a389e61619b8540b8af746705409322",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1622,23 +1433,23 @@
|
|||||||
},
|
},
|
||||||
"wezterm-flake": {
|
"wezterm-flake": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils",
|
||||||
"freetype2": "freetype2",
|
"freetype2": "freetype2",
|
||||||
"harfbuzz": "harfbuzz",
|
"harfbuzz": "harfbuzz",
|
||||||
"libpng": "libpng",
|
"libpng": "libpng",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"rust-overlay": "rust-overlay_4",
|
"rust-overlay": "rust-overlay_3",
|
||||||
"zlib": "zlib"
|
"zlib": "zlib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "nix",
|
"dir": "nix",
|
||||||
"lastModified": 1784224552,
|
"lastModified": 1774954828,
|
||||||
"narHash": "sha256-+u0IHNwYJPb26F8WzMgNvLfZBDsR/sc13H5tOaXiEjA=",
|
"narHash": "sha256-F6qDnwdVlX/JJhM7XYkgU2QtBfN1EQ9UysP2xVKAA6I=",
|
||||||
"owner": "wez",
|
"owner": "wez",
|
||||||
"repo": "wezterm",
|
"repo": "wezterm",
|
||||||
"rev": "76b606ec597a3c0263fa60321548637451c0a547",
|
"rev": "577474d89ee61aef4a48145cdec82a638d874751",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1677,11 +1488,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784371182,
|
"lastModified": 1777585783,
|
||||||
"narHash": "sha256-S8A1lezEalltWcCp3gAic5lssS0xTSISK6fKODefhOk=",
|
"narHash": "sha256-JTeWRy42VElroJ0rVdZuVXSoTLsx+NzQfGPKMbtn3SU=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"rev": "08d99f727944dd15e4740090305e31c5fb92a50a",
|
"rev": "fa50d6fbaff8f42c61071b87b034a90d82a33558",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -29,11 +29,6 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
cyber-tux = {
|
|
||||||
url = "git+ssh://git@github.com/tuxdotrs/cyber-tux.git";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
wezterm-flake = {
|
wezterm-flake = {
|
||||||
url = "github:wez/wezterm/main?dir=nix";
|
url = "github:wez/wezterm/main?dir=nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -62,6 +57,5 @@
|
|||||||
awww.url = "git+https://codeberg.org/LGFae/awww";
|
awww.url = "git+https://codeberg.org/LGFae/awww";
|
||||||
nixcord.url = "github:kaylorben/nixcord";
|
nixcord.url = "github:kaylorben/nixcord";
|
||||||
nur.url = "github:nix-community/nur";
|
nur.url = "github:nix-community/nur";
|
||||||
lanzaboote.url = "github:nix-community/lanzaboote/v1.1.0";
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
modifications = final: prev: {
|
modifications = final: prev: {
|
||||||
tnvim = inputs.tnvim.packages.${prev.stdenv.hostPlatform.system}.default;
|
tnvim = inputs.tnvim.packages.${prev.stdenv.hostPlatform.system}.default;
|
||||||
tpanel = inputs.tpanel.packages.${prev.stdenv.hostPlatform.system}.default;
|
tpanel = inputs.tpanel.packages.${prev.stdenv.hostPlatform.system}.default;
|
||||||
cyber-tux = inputs.cyber-tux.packages.${prev.stdenv.hostPlatform.system}.default;
|
|
||||||
ags = inputs.tpanel.packages.${prev.stdenv.hostPlatform.system}.ags.default;
|
ags = inputs.tpanel.packages.${prev.stdenv.hostPlatform.system}.ags.default;
|
||||||
wezterm-git = inputs.wezterm-flake.packages.${prev.stdenv.hostPlatform.system}.default;
|
wezterm-git = inputs.wezterm-flake.packages.${prev.stdenv.hostPlatform.system}.default;
|
||||||
hyprland-git = inputs.hyprland.packages.${prev.stdenv.hostPlatform.system};
|
hyprland-git = inputs.hyprland.packages.${prev.stdenv.hostPlatform.system};
|
||||||
|
|||||||
@@ -4,7 +4,14 @@
|
|||||||
inputs.treefmt-nix.flakeModule
|
inputs.treefmt-nix.flakeModule
|
||||||
];
|
];
|
||||||
|
|
||||||
perSystem = {
|
perSystem =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
treefmt.config = {
|
treefmt.config = {
|
||||||
projectRootFile = "flake.nix";
|
projectRootFile = "flake.nix";
|
||||||
flakeCheck = true;
|
flakeCheck = true;
|
||||||
|
|||||||
11
modules/hm/desktop/cursor.nix
Normal file
11
modules/hm/desktop/cursor.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
flake.modules.homeManager.desktop =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.pointerCursor = {
|
||||||
|
package = pkgs.bibata-cursors;
|
||||||
|
name = "Bibata-Modern-Ice";
|
||||||
|
size = 28;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.desktop = {
|
|
||||||
services.easyeffects.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.desktop = {
|
|
||||||
programs.ghostty = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
systemd.enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
confirm-close-surface = false;
|
|
||||||
gtk-titlebar = false;
|
|
||||||
window-padding-x = 10;
|
|
||||||
window-padding-y = 10;
|
|
||||||
font-size = 12;
|
|
||||||
font-family = "JetBrainsMono Nerd Font";
|
|
||||||
theme = "poimandres";
|
|
||||||
};
|
|
||||||
|
|
||||||
themes = {
|
|
||||||
poimandres = {
|
|
||||||
background = "#0f0f0f";
|
|
||||||
foreground = "#a6accd";
|
|
||||||
cursor-color = "#f2eacf";
|
|
||||||
selection-background = "#1a1a1a";
|
|
||||||
selection-foreground = "#f1f1f1";
|
|
||||||
palette = [
|
|
||||||
"0=#252b37"
|
|
||||||
"1=#d0679d"
|
|
||||||
"2=#5de4c7"
|
|
||||||
"3=#fffac2"
|
|
||||||
"4=#89ddff"
|
|
||||||
"5=#fae4fc"
|
|
||||||
"6=#add7ff"
|
|
||||||
"7=#ffffff"
|
|
||||||
"8=#a6accd"
|
|
||||||
"9=#d0679d"
|
|
||||||
"10=#5de4c7"
|
|
||||||
"11=#fffac2"
|
|
||||||
"12=#add7ff"
|
|
||||||
"13=#89ddff"
|
|
||||||
"14=#fcc5e9"
|
|
||||||
"15=#ffffff"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,40 +1,19 @@
|
|||||||
{
|
{
|
||||||
flake.modules.homeManager.desktop =
|
flake.modules.homeManager.desktop =
|
||||||
{ config, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
# TODO: Hyprland 0.55 switched to Lua-based configuration.
|
|
||||||
# Until the Home Manager module is updated, we symlink our config instead.
|
|
||||||
|
|
||||||
# wayland.windowManager.hyprland = {
|
|
||||||
# enable = true;
|
|
||||||
# package = null;
|
|
||||||
# portalPackage = null;
|
|
||||||
# xwayland.enable = true;
|
|
||||||
# systemd.variables = [ "--all" ];
|
|
||||||
# };
|
|
||||||
|
|
||||||
home.file = {
|
|
||||||
".config/hypr/config".source =
|
|
||||||
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/hypr/config";
|
|
||||||
".config/hypr/hyprland.lua".source =
|
|
||||||
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/hypr/hyprland.lua";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
ags
|
ags
|
||||||
awww
|
awww
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
hyprshot
|
|
||||||
wl-clipboard
|
|
||||||
wl-screenrec
|
|
||||||
(writeShellScriptBin "hypr-screenshot" ''
|
|
||||||
hyprshot -m region -r ppm - | satty --filename -
|
|
||||||
'')
|
|
||||||
|
|
||||||
(writeShellScriptBin "hypr-screenrecord" ''
|
|
||||||
wl-screenrec -g "$(slurp)"
|
|
||||||
'')
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
package = null;
|
||||||
|
portalPackage = null;
|
||||||
|
xwayland.enable = true;
|
||||||
|
systemd.variables = [ "--all" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,45 +1,24 @@
|
|||||||
{ inputs, ... }:
|
{ inputs, ... }:
|
||||||
{
|
{
|
||||||
flake.modules.homeManager.desktop =
|
flake.modules.homeManager.desktop =
|
||||||
{
|
{ pkgs, ... }:
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.tnix.desktop.mangowm;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.mango.hmModules.mango
|
inputs.mango.hmModules.mango
|
||||||
];
|
];
|
||||||
|
|
||||||
options.tnix.desktop.mangowm = {
|
|
||||||
enable = mkEnableOption "Enable MangoWM";
|
|
||||||
|
|
||||||
monitorRule = mkOption {
|
|
||||||
type = with types; listOf str;
|
|
||||||
default = [ ];
|
|
||||||
};
|
|
||||||
|
|
||||||
tagRule = mkOption {
|
|
||||||
type = with types; listOf str;
|
|
||||||
default = [ ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
wayland.windowManager.mango = {
|
wayland.windowManager.mango = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
# Monitors
|
# Monitors
|
||||||
monitorrule = cfg.monitorRule;
|
monitorrule = [
|
||||||
|
"name:DP-2, width:1440, height:2560, refresh:144, x:0, y:0, vrr:0, rr:1"
|
||||||
|
"name:DP-3, width:2560, height:1440, refresh:144, x:1440, y:0, vrr:0"
|
||||||
|
"name:DP-1, width:1080, height:1920, refresh:144, x:4000, y:0, vrr:0, rr:3"
|
||||||
|
];
|
||||||
|
|
||||||
focus_cross_monitor = 1;
|
focus_cross_monitor = 1;
|
||||||
exchange_cross_monitor = 1;
|
exchange_cross_monitor = 1;
|
||||||
drag_tile_to_tile = 1;
|
|
||||||
|
|
||||||
# Keyboard
|
# Keyboard
|
||||||
repeat_rate = 25;
|
repeat_rate = 25;
|
||||||
@@ -65,8 +44,8 @@
|
|||||||
# Theme
|
# Theme
|
||||||
border_radius = 8;
|
border_radius = 8;
|
||||||
no_radius_when_single = 0;
|
no_radius_when_single = 0;
|
||||||
focused_opacity = 0.9;
|
focused_opacity = 1.0;
|
||||||
unfocused_opacity = 0.9;
|
unfocused_opacity = 1.0;
|
||||||
|
|
||||||
# Scroller Layout Setting
|
# Scroller Layout Setting
|
||||||
scroller_structs = 0;
|
scroller_structs = 0;
|
||||||
@@ -88,7 +67,25 @@
|
|||||||
overviewgappo = 15;
|
overviewgappo = 15;
|
||||||
|
|
||||||
# layouts
|
# layouts
|
||||||
tagrule = cfg.tagRule;
|
tagrule = [
|
||||||
|
"id:1, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
||||||
|
"id:2, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
||||||
|
"id:3, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
||||||
|
"id:4, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
||||||
|
"id:5, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
||||||
|
|
||||||
|
"id:1, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
||||||
|
"id:2, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
||||||
|
"id:3, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
||||||
|
"id:4, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
||||||
|
"id:5, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
||||||
|
|
||||||
|
"id:1, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
||||||
|
"id:2, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
||||||
|
"id:3, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
||||||
|
"id:4, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
||||||
|
"id:5, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
||||||
|
];
|
||||||
|
|
||||||
# Keybindings
|
# Keybindings
|
||||||
mousebind = [
|
mousebind = [
|
||||||
@@ -107,7 +104,6 @@
|
|||||||
"SUPER, Return, spawn, wezterm"
|
"SUPER, Return, spawn, wezterm"
|
||||||
"SUPER, Space, spawn, vicinae toggle"
|
"SUPER, Space, spawn, vicinae toggle"
|
||||||
"SUPER, D, spawn, vesktop"
|
"SUPER, D, spawn, vesktop"
|
||||||
"SUPER, T, spawn, Telegram"
|
|
||||||
"SUPER, B, spawn, brave"
|
"SUPER, B, spawn, brave"
|
||||||
"SUPER, V, spawn, vicinae vicinae://extensions/vicinae/clipboard/history"
|
"SUPER, V, spawn, vicinae vicinae://extensions/vicinae/clipboard/history"
|
||||||
"SUPER+SHIFT, W, spawn, vicinae vicinae://extensions/sovereign/awww-switcher/wpgrid"
|
"SUPER+SHIFT, W, spawn, vicinae vicinae://extensions/sovereign/awww-switcher/wpgrid"
|
||||||
@@ -117,13 +113,11 @@
|
|||||||
"SUPER+SHIFT, R, reload_config"
|
"SUPER+SHIFT, R, reload_config"
|
||||||
"SUPER+SHIFT, F, togglefullscreen"
|
"SUPER+SHIFT, F, togglefullscreen"
|
||||||
"SUPER+SHIFT, Space, togglefloating"
|
"SUPER+SHIFT, Space, togglefloating"
|
||||||
"SUPER+SHIFT, Space, centerwin"
|
|
||||||
|
|
||||||
"ALT, Tab, toggleoverview"
|
"ALT, Tab, toggleoverview"
|
||||||
"ALT+SHIFT, minus, incgaps, -1"
|
"ALT+SHIFT, minus, incgaps, -1"
|
||||||
"ALT+SHIFT, equal, incgaps, 1"
|
"ALT+SHIFT, equal, incgaps, 1"
|
||||||
"ALT+SHIFT, R, togglegaps"
|
"ALT+SHIFT, R, togglegaps"
|
||||||
"SUPER+SHIFT, P, toggleglobal"
|
|
||||||
|
|
||||||
# switch layout
|
# switch layout
|
||||||
"SUPER+SHIFT, H, setlayout, tile"
|
"SUPER+SHIFT, H, setlayout, tile"
|
||||||
@@ -135,7 +129,6 @@
|
|||||||
"SUPER+CTRL, Down, resizewin, +0, +50"
|
"SUPER+CTRL, Down, resizewin, +0, +50"
|
||||||
"SUPER+CTRL, Left, resizewin, -50, +0"
|
"SUPER+CTRL, Left, resizewin, -50, +0"
|
||||||
"SUPER+CTRL, Right, resizewin, +50, +0"
|
"SUPER+CTRL, Right, resizewin, +50, +0"
|
||||||
"SUPER+CTRL, Equal, setoption, default_mfact, 0.5"
|
|
||||||
|
|
||||||
# swap client
|
# swap client
|
||||||
"SUPER+SHIFT, Up, exchange_client, up"
|
"SUPER+SHIFT, Up, exchange_client, up"
|
||||||
@@ -173,7 +166,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
# Window effect
|
# Window effect
|
||||||
blur = 1;
|
blur = 0;
|
||||||
blur_layer = 0;
|
blur_layer = 0;
|
||||||
blur_optimized = 1;
|
blur_optimized = 1;
|
||||||
blur_params_num_passes = 2;
|
blur_params_num_passes = 2;
|
||||||
@@ -183,7 +176,7 @@
|
|||||||
blur_params_contrast = 0.9;
|
blur_params_contrast = 0.9;
|
||||||
blur_params_saturation = 1.2;
|
blur_params_saturation = 1.2;
|
||||||
|
|
||||||
shadows = 1;
|
shadows = 0;
|
||||||
layer_shadows = 0;
|
layer_shadows = 0;
|
||||||
shadow_only_floating = 1;
|
shadow_only_floating = 1;
|
||||||
shadows_size = 10;
|
shadows_size = 10;
|
||||||
@@ -199,7 +192,7 @@
|
|||||||
animation_type_close = "fade";
|
animation_type_close = "fade";
|
||||||
animation_fade_in = 1;
|
animation_fade_in = 1;
|
||||||
animation_fade_out = 1;
|
animation_fade_out = 1;
|
||||||
tag_animation_direction = 0;
|
tag_animation_direction = 1;
|
||||||
zoom_initial_ratio = 0.3;
|
zoom_initial_ratio = 0.3;
|
||||||
zoom_end_ratio = 0.8;
|
zoom_end_ratio = 0.8;
|
||||||
fadein_begin_opacity = 0.5;
|
fadein_begin_opacity = 0.5;
|
||||||
@@ -252,5 +245,4 @@
|
|||||||
dgop
|
dgop
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.desktop =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs.mpv = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
scripts = (
|
|
||||||
with pkgs.mpvScripts;
|
|
||||||
[
|
|
||||||
modernz
|
|
||||||
thumbfast
|
|
||||||
mpris
|
|
||||||
mpv-image-viewer.image-positioning
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
config = {
|
|
||||||
osc = "no";
|
|
||||||
border = "no";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.desktop = {
|
|
||||||
programs.satty = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
corner-roundness = 12;
|
|
||||||
initial-tool = "arrow";
|
|
||||||
early-exit = true;
|
|
||||||
copy-command = "wl-copy";
|
|
||||||
};
|
|
||||||
|
|
||||||
font = {
|
|
||||||
family = "JetBrainsMono NerdFont";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.homeManager.desktop =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
home.pointerCursor = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.bibata-cursors;
|
|
||||||
name = "Bibata-Modern-Ice";
|
|
||||||
size = 28;
|
|
||||||
};
|
|
||||||
|
|
||||||
qt = {
|
|
||||||
enable = true;
|
|
||||||
style = {
|
|
||||||
name = "Breeze";
|
|
||||||
package = pkgs.kdePackages.breeze;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
theme = {
|
|
||||||
name = "Materia-dark";
|
|
||||||
package = pkgs.materia-theme;
|
|
||||||
};
|
|
||||||
iconTheme = {
|
|
||||||
package = pkgs.tela-icon-theme;
|
|
||||||
name = "Tela-black";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -14,8 +14,7 @@
|
|||||||
useLayerShell = true;
|
useLayerShell = true;
|
||||||
|
|
||||||
extensions = with pkgs.vicinae-extensions; [
|
extensions = with pkgs.vicinae-extensions; [
|
||||||
# @TODO broken in upstream repo
|
bluetooth
|
||||||
# bluetooth
|
|
||||||
nix
|
nix
|
||||||
ssh
|
ssh
|
||||||
awww-switcher
|
awww-switcher
|
||||||
@@ -27,7 +26,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
close_on_focus_loss = true;
|
close_on_focus_loss = false;
|
||||||
consider_preedit = true;
|
consider_preedit = true;
|
||||||
pop_to_root_on_close = true;
|
pop_to_root_on_close = true;
|
||||||
favicon_service = "twenty";
|
favicon_service = "twenty";
|
||||||
@@ -55,6 +54,11 @@
|
|||||||
imports = [ "/run/secrets/vicinae.json" ];
|
imports = [ "/run/secrets/vicinae.json" ];
|
||||||
|
|
||||||
providers = {
|
providers = {
|
||||||
|
"@samlinville/store.raycast.tailscale" = {
|
||||||
|
"preferences" = {
|
||||||
|
"tailscalePath" = "${pkgs.tailscale}/bin/tailscale";
|
||||||
|
};
|
||||||
|
};
|
||||||
"@sovereign/vicinae-extension-awww-switcher-0" = {
|
"@sovereign/vicinae-extension-awww-switcher-0" = {
|
||||||
"preferences" = {
|
"preferences" = {
|
||||||
"transitionDuration" = "1";
|
"transitionDuration" = "1";
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
key = "~/.ssh/id_ed25519.pub";
|
key = "~/.ssh/id_ed25519.pub";
|
||||||
signByDefault = true;
|
signByDefault = true;
|
||||||
};
|
};
|
||||||
lfs.enable = true;
|
|
||||||
settings = {
|
settings = {
|
||||||
user = {
|
user = {
|
||||||
name = "${userName}";
|
name = "${userName}";
|
||||||
|
|||||||
@@ -13,9 +13,8 @@
|
|||||||
neovim = {
|
neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
|
vimAlias = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
vim.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
|
|||||||
@@ -6,21 +6,15 @@
|
|||||||
theme = "system";
|
theme = "system";
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
model = "opencode-go/kimi-k3";
|
|
||||||
provider = {
|
provider = {
|
||||||
google = {
|
|
||||||
options = {
|
|
||||||
apiKey = "{file:/run/secrets/gemini-api-key}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
openrouter = {
|
openrouter = {
|
||||||
options = {
|
options = {
|
||||||
apiKey = "{file:/run/secrets/openrouter-api-key}";
|
apiKey = "{file:/run/secrets/open_router_api_key}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
opencode-go = {
|
opencode-go = {
|
||||||
options = {
|
options = {
|
||||||
apiKey = "{file:/run/secrets/opencode-go-api-key}";
|
apiKey = "{file:/run/secrets/open_code_go_api_key}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
save = 1000000;
|
save = 1000000;
|
||||||
path = "$HOME/.local/share/zsh/.zsh_history";
|
path = "$HOME/.local/share/zsh/.zsh_history";
|
||||||
};
|
};
|
||||||
fastSyntaxHighlighting.enable = true;
|
syntaxHighlighting.enable = true;
|
||||||
autosuggestion.enable = true;
|
autosuggestion.enable = true;
|
||||||
initContent = ''
|
initContent = ''
|
||||||
${lib.getExe pkgs.fastfetch}
|
${lib.getExe pkgs.fastfetch}
|
||||||
|
|||||||
@@ -1,117 +0,0 @@
|
|||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.alpha =
|
|
||||||
{
|
|
||||||
hostName,
|
|
||||||
userName,
|
|
||||||
...
|
|
||||||
}@innerArgs:
|
|
||||||
{
|
|
||||||
imports = with config.flake.modules.nixos; [
|
|
||||||
boot
|
|
||||||
networking
|
|
||||||
virtualisation
|
|
||||||
services
|
|
||||||
];
|
|
||||||
|
|
||||||
tnix = {
|
|
||||||
boot = {
|
|
||||||
legacy.enable = true;
|
|
||||||
|
|
||||||
impermanence = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
home = {
|
|
||||||
directories = [
|
|
||||||
".local/share/nvim"
|
|
||||||
".local/share/zsh"
|
|
||||||
".local/share/zoxide"
|
|
||||||
".local/state/lazygit"
|
|
||||||
".local/share/opencode"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
openssh.enable = true;
|
|
||||||
netbird-client.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
nginx = {
|
|
||||||
enable = true;
|
|
||||||
domain = "lab.tux.rs";
|
|
||||||
};
|
|
||||||
|
|
||||||
mediaflow-proxy = {
|
|
||||||
enable = true;
|
|
||||||
port = 8888;
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
APP__SERVER__HOST = "0.0.0.0";
|
|
||||||
APP__SERVER__PORT = "8888";
|
|
||||||
};
|
|
||||||
|
|
||||||
environmentFile = innerArgs.config.sops.secrets."mediaflow-proxy".path;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation = {
|
|
||||||
docker.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
sops.secrets = {
|
|
||||||
tux-password = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
gemini-api-key = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
|
||||||
|
|
||||||
openrouter-api-key = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
|
||||||
|
|
||||||
opencode-go-api-key = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
|
||||||
|
|
||||||
netbird-key = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
|
||||||
|
|
||||||
"cloudflare-credentials/email" = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
};
|
|
||||||
|
|
||||||
"cloudflare-credentials/dns-api-token" = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
};
|
|
||||||
|
|
||||||
aiostreams = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
};
|
|
||||||
|
|
||||||
mediaflow-proxy = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# --- Networking ---
|
|
||||||
networking = {
|
|
||||||
hostName = hostName;
|
|
||||||
networkmanager.enable = true;
|
|
||||||
firewall.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "26.05";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
hostName = "alpha";
|
|
||||||
userName = "tux";
|
|
||||||
userEmail = "t@tux.rs";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
unstable = true;
|
|
||||||
nixpkgs = if unstable then inputs.nixpkgs else inputs.nixpkgs-stable;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
|
||||||
inherit system;
|
|
||||||
specialArgs = {
|
|
||||||
inherit
|
|
||||||
hostName
|
|
||||||
userName
|
|
||||||
userEmail
|
|
||||||
system
|
|
||||||
;
|
|
||||||
};
|
|
||||||
modules = [
|
|
||||||
config.flake.modules.nixos.core
|
|
||||||
config.flake.modules.nixos.${hostName}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
{ inputs, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.alpha =
|
|
||||||
{ config, lib, ... }:
|
|
||||||
let
|
|
||||||
hasOptinPersistence = config.tnix.boot.impermanence.enable;
|
|
||||||
isLegacy = config.tnix.boot.legacy.enable;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.disko.nixosModules.disko
|
|
||||||
];
|
|
||||||
|
|
||||||
disko.devices.disk.primary = {
|
|
||||||
device = "/dev/sda";
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
ESP = {
|
|
||||||
size = "1G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [
|
|
||||||
"defaults"
|
|
||||||
"umask=0077"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
type = "8300";
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
# Base subvolumes that always exist
|
|
||||||
subvolumes = {
|
|
||||||
"/root" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
"/nix" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"noacl"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/nix";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
# Conditionally merge /persist only when impermanence is enabled
|
|
||||||
// lib.optionalAttrs hasOptinPersistence {
|
|
||||||
"/persist" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/persist";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
// lib.optionalAttrs isLegacy {
|
|
||||||
boot = {
|
|
||||||
name = "boot";
|
|
||||||
size = "1M";
|
|
||||||
type = "EF02";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.alpha =
|
|
||||||
{
|
|
||||||
lib,
|
|
||||||
modulesPath,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
(modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault system;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
flake.modules.homeManager.alpha = {
|
|
||||||
home.stateVersion = "26.05";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
tux-password: ENC[AES256_GCM,data:tvx3nMoIuQSotxHDWLs7UesnyWY3u3EwkqAIzCw3Z2AJseaiqnt/xeSKAeUXPVSs85rVdIJ6Ys5+6r+NONEG7ujuNevpjJRNkQ==,iv:CB0BIrMfdiWiMCvmRdtsafh3dCAD5Qb3mOuE7eq4nA4=,tag:p/3AESwNCEL4EoU9rJjUPw==,type:str]
|
|
||||||
gemini-api-key: ENC[AES256_GCM,data:Bo3Z5Jhce0UOBn77I2AcrXYbBgPLDx0eOjPC8J63E/VWNhMPbbxb,iv:iWOsTACOMcK3oqq848WnJ5Ku3tYy1aadmLB4IMgoyqg=,tag:BPzlXoP8/iJaj8c/YFCWyg==,type:str]
|
|
||||||
openrouter-api-key: ENC[AES256_GCM,data:D+/ImUTg7UvBTh0fMlWMZ0O/GsQS/R4Hz+CO4l42R6mn+zk+udvw79BctXdWWyrFf2ZNOTJ/99QTtWOUOvHISWaEJogXyb+93g==,iv:c7OtgBu1Zaf7lA4InIsKOAPbAvTl3gaO7QGCFNx21Bo=,tag:KXiASj/qC1YzK6DUox57ug==,type:str]
|
|
||||||
opencode-go-api-key: ENC[AES256_GCM,data:ipKkNcRqBERIQ6f6yFzVm999s+UwJys4elHWhzpL441RfOaG9MmRWMcD+wRLJ7DSWFjYu6uUPF7TKez8J6abWeKDgg==,iv:FDSYE3R8zKVxWiP2S/sCVcwEu3fEXg/hCeqCRSF+c6g=,tag:5RDuMFGMoN6xwAYj0HiyjQ==,type:str]
|
|
||||||
netbird-key: ENC[AES256_GCM,data:NilfyafnGhFVYD6q4+jJQxlhXNdNC8BQ1CZfu8a5wc693Y1h,iv:Rpl0OpkQdBMPpIJ08t9Z0AjDAW6c97pFZKO1KPu8ipY=,tag:du3d0SQWuqJtJSwhSgJE4g==,type:str]
|
|
||||||
cloudflare-credentials:
|
|
||||||
email: ENC[AES256_GCM,data:K9L6H4dqNNgbCFg=,iv:jirDJb+Y2sXrup6/doRmOdd8tV7zLnttcgG75r4Fs04=,tag:XeyMVC+Q9TEuTxSfOeR2Uw==,type:str]
|
|
||||||
dns-api-token: ENC[AES256_GCM,data:aLZqasMaxpv08KuGqhe66J/jHqEnMNdZrYtIurv01xk2/5OW//PaHQ==,iv:7tZYpOT27n/RWaj1CqiZbhA/g3aKbxjdkMA6SuW/YpQ=,tag:oetxyD9XMrihSLyDvl7qfw==,type:str]
|
|
||||||
aiostreams: ENC[AES256_GCM,data:HeV4NONoqTti/4GBpzYaUEGgrSpDfCfcGJ3kbZAUtg5hm1zQCcelx3N4b/woSjaNZrDj98P5R3oZUkgVfv0RS2PKdJc3EdLaPFwXcuJ+W0U373sryU85uIIZi4BvQ4LyCCpuclPU5dgQmb9rzbIvhlu/ftfpKJsRbH2bUgMMo2nohMWUtg==,iv:V60U/omnN+09cSOQGvwwN8DC6/D++MB0axQyzIG97zo=,tag:vwNbXRj3CS+okb0NSwxgYw==,type:str]
|
|
||||||
mediaflow-proxy: ENC[AES256_GCM,data:jk2eYyOmO3XpqFNo3jucB/VvL6pWBGrquYi/OpIwvSPqjbo=,iv:DIsqykv77/TlLhT9uIPGJRBlCQHVdhcuYlc56qQGZgk=,tag:phMXArjIrNNI51U9hpaUzg==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaR0kzRXBGRjJaVldDRk90
|
|
||||||
KzYwSzJBeXBnNVZ0T2VaU2oyLzdRWmo5ZzNVCk9HTDVtMk8xL1cwL2FSRUR5UGdS
|
|
||||||
bXJnOXhTbWozWm5rd2pnaFNoWk0rWncKLS0tIGFWWmY2WU9YanJ5UElab3lqaXNo
|
|
||||||
QUhYUWs4bitJaGpXL200b0s0SmVIeVUKevQ1IVqmqGIYf014iL47C02+peSYJyeE
|
|
||||||
PNluZUA6VzrL2WpdJzDqxAwSWtcgXG0/JADIg+DssnhftiHMHzn3NQ==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnL1VPODRnNEs2bXlUVjB5
|
|
||||||
Z0pBUzBnRDQ0WWcvL2IvUHdmQXUxNjRpTVN3Ck9VLzd2QWpMMlFJck1EQXBVanl0
|
|
||||||
SC91bDFqNFlJZ2E0UXVZa3BKRjh3TlkKLS0tIENuc1dUZ1dDUTg2VXBueU1ETG9S
|
|
||||||
c095blJheHhVT0E4bjdGUWlYN0N4MVUKK42sChX4V37HK1SRKQxldLpft2jVfeiG
|
|
||||||
4TkObqH8ddGpbd7cX5a/wboTjYuEdAviWxjK2oBPgtcFc1f03X3tmA==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age1mzxxxzhy3us3rd960ufqv7vlxj5cnug86md6x69llg9ujzw2pqws057llf
|
|
||||||
lastmodified: "2026-07-13T15:24:16Z"
|
|
||||||
mac: ENC[AES256_GCM,data:5NOOqdtJJj0ph3apCwaokiRySW9QIlmR01I7fFZDT2sNHqrJSgVVN8U5WtOnM1S61ID7MRxGLpSegU9M8lPnZd2WmhGIlactJjoSTE9+Xy5hj4m9mdWW0TZg9w4qmyIo8o8DuoDa2LiyilT97XaMnvoDz2ZqWcJxi44URLmk9o0=,iv:czkDfHv9eg1VzyMUT48W4OmmeSaUu6TzeYcyYSBu/+w=,tag:140ldPXqetX3733QnoOU0g==,type:str]
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.13.1
|
|
||||||
@@ -1,114 +0,0 @@
|
|||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.arcturus =
|
|
||||||
{
|
|
||||||
hostName,
|
|
||||||
userName,
|
|
||||||
...
|
|
||||||
}@innerArgs:
|
|
||||||
{
|
|
||||||
imports = with config.flake.modules.nixos; [
|
|
||||||
boot
|
|
||||||
networking
|
|
||||||
virtualisation
|
|
||||||
services
|
|
||||||
];
|
|
||||||
|
|
||||||
tnix = {
|
|
||||||
boot = {
|
|
||||||
secure-boot.enable = true;
|
|
||||||
|
|
||||||
impermanence = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
home = {
|
|
||||||
directories = [
|
|
||||||
"Distrobox"
|
|
||||||
".config/sops"
|
|
||||||
".local/share/nvim"
|
|
||||||
".local/share/opencode"
|
|
||||||
".local/share/zsh"
|
|
||||||
".local/share/zoxide"
|
|
||||||
".local/state/lazygit"
|
|
||||||
];
|
|
||||||
|
|
||||||
files = [
|
|
||||||
".wakatime.cfg"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
openssh.enable = true;
|
|
||||||
netbird-client.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
cyber-tux = {
|
|
||||||
enable = true;
|
|
||||||
environmentFile = innerArgs.config.sops.secrets.discord-token.path;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation = {
|
|
||||||
docker.enable = true;
|
|
||||||
distrobox.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
sops.secrets = {
|
|
||||||
tux-password = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
discord-token = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
};
|
|
||||||
|
|
||||||
gemini-api-key = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
|
||||||
|
|
||||||
openrouter-api-key = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
|
||||||
|
|
||||||
opencode-go-api-key = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
|
||||||
|
|
||||||
netbird-key = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# --- Networking ---
|
|
||||||
networking = {
|
|
||||||
hostName = hostName;
|
|
||||||
networkmanager = {
|
|
||||||
enable = true;
|
|
||||||
wifi.backend = "iwd";
|
|
||||||
};
|
|
||||||
wireless.iwd = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
Network = {
|
|
||||||
EnableIPv6 = true;
|
|
||||||
};
|
|
||||||
Settings = {
|
|
||||||
AutoConnect = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
firewall.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "26.05";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
hostName = "arcturus";
|
|
||||||
userName = "tux";
|
|
||||||
userEmail = "t@tux.rs";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
unstable = true;
|
|
||||||
nixpkgs = if unstable then inputs.nixpkgs else inputs.nixpkgs-stable;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
|
||||||
inherit system;
|
|
||||||
specialArgs = {
|
|
||||||
inherit
|
|
||||||
hostName
|
|
||||||
userName
|
|
||||||
userEmail
|
|
||||||
system
|
|
||||||
;
|
|
||||||
};
|
|
||||||
modules = [
|
|
||||||
config.flake.modules.nixos.core
|
|
||||||
config.flake.modules.nixos.${hostName}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
{ inputs, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.arcturus =
|
|
||||||
{ config, lib, ... }:
|
|
||||||
let
|
|
||||||
hasOptinPersistence = config.tnix.boot.impermanence.enable;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.disko.nixosModules.disko
|
|
||||||
];
|
|
||||||
|
|
||||||
disko.devices.disk.primary = {
|
|
||||||
device = "/dev/nvme0n1";
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
ESP = {
|
|
||||||
size = "1G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [
|
|
||||||
"defaults"
|
|
||||||
"umask=0077"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
type = "8300";
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
# Base subvolumes that always exist
|
|
||||||
subvolumes = {
|
|
||||||
"/root" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
"/nix" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"noacl"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/nix";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
# Conditionally merge /persist only when impermanence is enabled
|
|
||||||
// lib.optionalAttrs hasOptinPersistence {
|
|
||||||
"/persist" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/persist";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.arcturus =
|
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}@innerArgs:
|
|
||||||
{
|
|
||||||
imports = with config.flake.modules.nixos; [
|
|
||||||
hardware
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
|
||||||
"nvme"
|
|
||||||
"xhci_pci"
|
|
||||||
"ahci"
|
|
||||||
"usbhid"
|
|
||||||
"usb_storage"
|
|
||||||
"sd_mod"
|
|
||||||
];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault innerArgs.config.hardware.enableRedistributableFirmware;
|
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault system;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
nvtopPackages.amd
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
flake.modules.homeManager.arcturus = {
|
|
||||||
home.stateVersion = "26.05";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
tux-password: ENC[AES256_GCM,data:eXg28pYQjIi5iPh4oHBOvIYQReM92T79uty/O461mEoLB8awr8ikq3RM7Mux3jZKM+Fk/Ow3NNG0F/154dZentodr1uvy9gD1g==,iv:nQevOumENveBMuiYMJF0OokORyjZCpR8ahTfOuj2Dzo=,tag:64zz8eVuw1OwTltfAUwWSg==,type:str]
|
|
||||||
discord-token: ENC[AES256_GCM,data:uzxkrNRRplL/1MfvPZ/EL+I8UACuZQBHZ95BSHuxW0nBjxhr2F89D2BXTcKOBI9qO6uMjK5WBtWzSOw3y9EsngTTm/youIdkrIDLP3r/tkpOkLa/VjM=,iv:OxzFa0nEInV5uxgQFww11ZE1NorH5q130Tgp/6l9uOE=,tag:g4U9wLhPAkz72ktbQ8KrSg==,type:str]
|
|
||||||
gemini-api-key: ENC[AES256_GCM,data:gLZSoYTdKY+rwIpYiXvN9n9PGkUD6q8Oe7dHnYkjEjwDf5qpjubg,iv:ySoNgQWTu9DjvbashF4ulyYP8fJUl4yrCTeBQ0jrGmw=,tag:FctubsQv50AP78JvTb9bpQ==,type:str]
|
|
||||||
openrouter-api-key: ENC[AES256_GCM,data:6xONCl9lqOoO7b4CEyCz9607tICDUAkpglRjGS5nYq2ppg2UKqYTrWD1BGCA5Xfs/CWskniVhoNG3vscjKiYCCh9gbM6aqdmTQ==,iv:7Iwc9t00HOOBjA7URXcUO41badqYyJCkFHM/uPkLFxY=,tag:Cl39kitr2e0//HVwAdsdUQ==,type:str]
|
|
||||||
opencode-go-api-key: ENC[AES256_GCM,data:dmeRKn7TWHnqvpyPQpcEG6yHTb2bRby/rh10ytL0jHj5R+lRmNVdmqUF92GTznY9vEaB6ZYCJecWhpm8g4upNfOWBg==,iv:9UMJpAlD8gpcNiN+liu3nawoAZQKapEg7sCp561N9E8=,tag:OZlASpOa5BQaQwFWjoLCRw==,type:str]
|
|
||||||
netbird-key: ENC[AES256_GCM,data:q6eKisca04qn/CvALrvXF79MsToDhvLRLv2JTiUBAZglCC9m,iv:jj0/ZD7IDgopprTVUgSfJmdAJmUP3iqewU3dqssGYbk=,tag:6IPRdCm2FGdlTEIX7jt3qA==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- recipient: age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3Qkh0cmdHNGJTYmFNUFZW
|
|
||||||
c244RjlyNjlrSWh1bG1IRFFFeFZZVzhaYVdBCmd1N3JNS0IzWDlUMUJSM0pYdi9L
|
|
||||||
MzlHRk1pZ1hqaVdIYUQwczh2VDVtZE0KLS0tIEtRYWF6V0I3eDBZSnVmZ2R5S0Z5
|
|
||||||
Z3hhRitmdEwxbzcrS0cwNTZVK1lXYlUKSFfKk7JGzxRq9weL4NKJqfmAige2O+1T
|
|
||||||
59PvEFKvvkGb6ajkzwTw0lB3UFzly6FuTnbSLY9r+oT9AMbxLoKdcQ==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age1huqa3hc7wcxk4dpelrzny437nzrx4fnll3d8g9ahznzk268yju5qufapxy
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOYlZiak1CSW1NSGt5QTRi
|
|
||||||
RjlUeG5EODVkTVJDY1RrZXJ6OU5NQ0RIOG5jCnJxZ1R6MmlGWXY2SmtaY1pQSWdZ
|
|
||||||
UWp3L2h6c0k0MVpubE9BRSswUEk3ZkkKLS0tIGN4Zm1tcHBiKzAyYWNHVktVZmpU
|
|
||||||
V3h4dUZLcktrTUZvUm44eVZOWEl4VmMKMTvajoWcktb4jVIP4HyzQiR41Wg8Gdqi
|
|
||||||
TLKEYsPQgOJ7s8P9gw2uPUY6HRz86CtiC6EbO27u0+8BbI85x1QScg==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2026-05-10T00:36:06Z"
|
|
||||||
mac: ENC[AES256_GCM,data:nD0exblrbheP1C5lK8V17V/gkHJO6s6yVjXtQWcUOLVGrzkPSxkymYBHUFMTLVyYQNLCVMc8AHkuHVuJ1tBfXNll1f6/SGtfaBQcOLct70U7nFxd/XybTUlscNp2KafJWy/n4ZUfNDbfrWN1R463CN/M50jGqJPDWYuP9ah2JcI=,iv:izQUT/+HQqJZ48X5bXobFSaWcdcXQ/7eh+SCd9i4YYo=,tag:FJlR2wI4rWQ/SDfQGtQ7AQ==,type:str]
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.12.2
|
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.canopus =
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
hostName,
|
|
||||||
userName,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = with config.flake.modules.nixos; [
|
|
||||||
boot
|
|
||||||
networking
|
|
||||||
desktop
|
|
||||||
gaming
|
|
||||||
virtualisation
|
|
||||||
];
|
|
||||||
|
|
||||||
tnix = {
|
|
||||||
boot = {
|
|
||||||
secure-boot.enable = true;
|
|
||||||
|
|
||||||
impermanence = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
home = {
|
|
||||||
directories = [
|
|
||||||
"Distrobox"
|
|
||||||
".steam"
|
|
||||||
".cache/awww"
|
|
||||||
".config/BraveSoftware"
|
|
||||||
".config/zed"
|
|
||||||
".config/Vencord"
|
|
||||||
".config/vesktop"
|
|
||||||
".config/sops"
|
|
||||||
".config/obs-studio"
|
|
||||||
".config/easyeffects"
|
|
||||||
".config/DankMaterialShell"
|
|
||||||
".local/share/Steam"
|
|
||||||
".local/share/nvim"
|
|
||||||
".local/share/opencode"
|
|
||||||
".local/share/zsh"
|
|
||||||
".local/share/zoxide"
|
|
||||||
".local/state/lazygit"
|
|
||||||
".local/share/vicinae"
|
|
||||||
".local/share/TelegramDesktop"
|
|
||||||
];
|
|
||||||
|
|
||||||
files = [
|
|
||||||
".wakatime.cfg"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
openssh.enable = true;
|
|
||||||
netbird-client.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation = {
|
|
||||||
docker.enable = true;
|
|
||||||
docker.nvidia.enable = false;
|
|
||||||
qemu.enable = true;
|
|
||||||
waydroid.enable = true;
|
|
||||||
distrobox.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
sops.secrets = {
|
|
||||||
tux-password = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
gemini-api-key = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
|
||||||
|
|
||||||
openrouter-api-key = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
|
||||||
|
|
||||||
opencode-go-api-key = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
|
||||||
|
|
||||||
netbird-key = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
|
||||||
|
|
||||||
vicinae-json = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# --- Networking ---
|
|
||||||
networking = {
|
|
||||||
hostName = hostName;
|
|
||||||
networkmanager = {
|
|
||||||
enable = true;
|
|
||||||
wifi.backend = "iwd";
|
|
||||||
};
|
|
||||||
wireless.iwd = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
Network = {
|
|
||||||
EnableIPv6 = true;
|
|
||||||
};
|
|
||||||
Settings = {
|
|
||||||
AutoConnect = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
firewall.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
davinci-resolve
|
|
||||||
telegram-desktop
|
|
||||||
];
|
|
||||||
|
|
||||||
# !!! DO NOT CHANGE THIS !!!
|
|
||||||
# This should match the version used at initial install.
|
|
||||||
system.stateVersion = "26.05";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
hostName = "canopus";
|
|
||||||
userName = "tux";
|
|
||||||
userEmail = "t@tux.rs";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
unstable = true;
|
|
||||||
nixpkgs = if unstable then inputs.nixpkgs else inputs.nixpkgs-stable;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
|
||||||
inherit system;
|
|
||||||
specialArgs = {
|
|
||||||
inherit
|
|
||||||
hostName
|
|
||||||
userName
|
|
||||||
userEmail
|
|
||||||
system
|
|
||||||
;
|
|
||||||
};
|
|
||||||
modules = [
|
|
||||||
config.flake.modules.nixos.core
|
|
||||||
config.flake.modules.nixos.${hostName}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
{ inputs, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.canopus =
|
|
||||||
{ config, lib, ... }:
|
|
||||||
let
|
|
||||||
hasOptinPersistence = config.tnix.boot.impermanence.enable;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.disko.nixosModules.disko
|
|
||||||
];
|
|
||||||
|
|
||||||
disko.devices.disk.primary = {
|
|
||||||
device = "/dev/nvme0n1";
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
ESP = {
|
|
||||||
size = "1G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [
|
|
||||||
"defaults"
|
|
||||||
"umask=0077"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
swap = {
|
|
||||||
size = "32G";
|
|
||||||
content = {
|
|
||||||
type = "swap";
|
|
||||||
discardPolicy = "both";
|
|
||||||
resumeDevice = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
type = "8300";
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
# Base subvolumes that always exist
|
|
||||||
subvolumes = {
|
|
||||||
"/root" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
"/nix" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"noacl"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/nix";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
# Conditionally merge /persist only when impermanence is enabled
|
|
||||||
// lib.optionalAttrs hasOptinPersistence {
|
|
||||||
"/persist" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/persist";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,150 +0,0 @@
|
|||||||
{ inputs, config, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.canopus =
|
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}@innerArgs:
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
with config.flake.modules.nixos;
|
|
||||||
[
|
|
||||||
hardware
|
|
||||||
]
|
|
||||||
++ [ inputs.nixos-hardware.nixosModules.asus-zephyrus-ga503 ];
|
|
||||||
|
|
||||||
boot.kernelParams = [ "nvidia-drm.modeset=1" ];
|
|
||||||
boot.initrd.availableKernelModules = [
|
|
||||||
"nvme"
|
|
||||||
"xhci_pci"
|
|
||||||
"ahci"
|
|
||||||
"usbhid"
|
|
||||||
"usb_storage"
|
|
||||||
"sd_mod"
|
|
||||||
];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
nvidia = {
|
|
||||||
modesetting.enable = true;
|
|
||||||
open = false;
|
|
||||||
nvidiaSettings = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
cpu.amd.updateMicrocode = lib.mkDefault innerArgs.config.hardware.enableRedistributableFirmware;
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
xserver.videoDrivers = [ "nvidia" ];
|
|
||||||
power-profiles-daemon.enable = true;
|
|
||||||
upower.enable = true;
|
|
||||||
|
|
||||||
supergfxd = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
mode = "Hybrid";
|
|
||||||
vfio_enable = false;
|
|
||||||
vfio_save = false;
|
|
||||||
always_reboot = false;
|
|
||||||
no_logind = false;
|
|
||||||
logout_timeout_s = 180;
|
|
||||||
hotplug_type = "None";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
asusd = {
|
|
||||||
enable = true;
|
|
||||||
asusdConfig.text = ''
|
|
||||||
(
|
|
||||||
charge_control_end_threshold: 80,
|
|
||||||
disable_nvidia_powerd_on_battery: true,
|
|
||||||
ac_command: "",
|
|
||||||
bat_command: "",
|
|
||||||
|
|
||||||
platform_profile_linked_epp: true,
|
|
||||||
platform_profile_on_battery: Quiet,
|
|
||||||
platform_profile_on_ac: Performance,
|
|
||||||
|
|
||||||
change_platform_profile_on_battery: true,
|
|
||||||
change_platform_profile_on_ac: true,
|
|
||||||
|
|
||||||
profile_quiet_epp: Power,
|
|
||||||
profile_balanced_epp: BalancePower,
|
|
||||||
profile_custom_epp: Performance,
|
|
||||||
profile_performance_epp: Performance,
|
|
||||||
|
|
||||||
ac_profile_tunings: {},
|
|
||||||
dc_profile_tunings: {},
|
|
||||||
armoury_settings: {},
|
|
||||||
)
|
|
||||||
'';
|
|
||||||
profileConfig.text = ''
|
|
||||||
(
|
|
||||||
active_profile: Quiet,
|
|
||||||
)
|
|
||||||
'';
|
|
||||||
fanCurvesConfig.text = ''
|
|
||||||
(
|
|
||||||
profiles: (
|
|
||||||
balanced: [
|
|
||||||
(
|
|
||||||
fan: CPU,
|
|
||||||
pwm: (2, 22, 45, 68, 91, 153, 153, 153),
|
|
||||||
temp: (55, 62, 66, 70, 74, 78, 78, 78),
|
|
||||||
enabled: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
fan: GPU,
|
|
||||||
pwm: (2, 25, 48, 71, 94, 165, 165, 165),
|
|
||||||
temp: (55, 62, 66, 70, 74, 78, 78, 78),
|
|
||||||
enabled: false,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
performance: [
|
|
||||||
(
|
|
||||||
fan: CPU,
|
|
||||||
pwm: (35, 68, 79, 91, 114, 175, 175, 175),
|
|
||||||
temp: (58, 62, 66, 70, 74, 78, 78, 78),
|
|
||||||
enabled: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
fan: GPU,
|
|
||||||
pwm: (35, 71, 84, 94, 119, 188, 188, 188),
|
|
||||||
temp: (58, 62, 66, 70, 74, 78, 78, 78),
|
|
||||||
enabled: false,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
quiet: [
|
|
||||||
(
|
|
||||||
fan: CPU,
|
|
||||||
pwm: (2, 12, 22, 35, 45, 58, 79, 79),
|
|
||||||
temp: (55, 62, 66, 70, 74, 78, 82, 82),
|
|
||||||
enabled: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
fan: GPU,
|
|
||||||
pwm: (2, 12, 25, 35, 48, 61, 84, 84),
|
|
||||||
temp: (55, 62, 66, 70, 74, 78, 82, 82),
|
|
||||||
enabled: true,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
custom: [],
|
|
||||||
),
|
|
||||||
)
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
nixpkgs.config.cudaSupport = true;
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault system;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
nvtopPackages.full
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.homeManager.canopus = { pkgs, ... }: {
|
|
||||||
imports = with config.flake.modules.homeManager; [
|
|
||||||
desktop
|
|
||||||
];
|
|
||||||
|
|
||||||
tnix = {
|
|
||||||
desktop = {
|
|
||||||
mangowm = {
|
|
||||||
enable = true;
|
|
||||||
monitorRule = [
|
|
||||||
"name:eDP-1, width:2560, height:1440, refresh:165, x:0, y:0, vrr:1"
|
|
||||||
];
|
|
||||||
|
|
||||||
tagRule = [
|
|
||||||
"id:1, layout_name:tile"
|
|
||||||
"id:2, layout_name:tile"
|
|
||||||
"id:3, layout_name:tile"
|
|
||||||
"id:4, layout_name:tile"
|
|
||||||
"id:5, layout_name:scroller"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.lan-mouse = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
authorized_fingerprints = {
|
|
||||||
"f4:4b:17:61:f7:01:a4:a2:e1:c7:8c:1c:7a:f3:8b:87:14:3d:05:3d:a0:8b:cc:e7:88:d8:d8:d2:a4:c2:75:8b" =
|
|
||||||
"sirius";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
(writeShellScriptBin "mirror-display" ''
|
|
||||||
hyprctl eval 'hl.monitor({
|
|
||||||
output = "eDP-1",
|
|
||||||
mode = "2560x1440@165",
|
|
||||||
position = "0x0",
|
|
||||||
scale = "1",
|
|
||||||
disabled = false
|
|
||||||
})' &&
|
|
||||||
hyprctl eval 'hl.monitor({
|
|
||||||
output = "HDMI-A-1",
|
|
||||||
mode = "preferred",
|
|
||||||
position = "auto",
|
|
||||||
scale = "1",
|
|
||||||
mirror = "eDP-1"
|
|
||||||
})'
|
|
||||||
'')
|
|
||||||
(writeShellScriptBin "extend-display" ''
|
|
||||||
hyprctl eval 'hl.monitor({
|
|
||||||
output = "eDP-1",
|
|
||||||
mode = "2560x1440@165",
|
|
||||||
position = "0x0",
|
|
||||||
scale = "1",
|
|
||||||
disabled = false
|
|
||||||
})' &&
|
|
||||||
hyprctl eval 'hl.monitor({
|
|
||||||
output = "HDMI-A-1",
|
|
||||||
mode = "preferred",
|
|
||||||
position = "0x-1440",
|
|
||||||
scale = "1",
|
|
||||||
mirror = ""
|
|
||||||
})'
|
|
||||||
'')
|
|
||||||
(writeShellScriptBin "dock-display" ''
|
|
||||||
hyprctl eval 'hl.monitor({
|
|
||||||
output = "eDP-1",
|
|
||||||
disabled = true
|
|
||||||
})' &&
|
|
||||||
hyprctl eval 'hl.monitor({
|
|
||||||
output = "HDMI-A-1",
|
|
||||||
mode = "preferred",
|
|
||||||
position = "0x0",
|
|
||||||
scale = "1",
|
|
||||||
mirror = ""
|
|
||||||
})'
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
|
|
||||||
home.stateVersion = "26.05";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
tux-password: ENC[AES256_GCM,data:Xb4/JMAZCBnBheDCJdRRGXLnMJ1ej8HbN+AUqA/+2sdYESKeF1PFny4Iq2kqvzdK4D3mp+pdjd7GAGfJp4M7sOcvI3V/coyxPQ==,iv:h+S+MEwHj22uHaTzFoxGZtefNUAQNp3fbU+QRfgtKvQ=,tag:VHrIEIQivPFTfhmm7dWEyQ==,type:str]
|
|
||||||
gemini-api-key: ENC[AES256_GCM,data:Q6+actg0oyUWiUJVy/9yZmea1QyGu2o8LfMsuAVFD6k7kp0dYIrl,iv:ukyouqrHxzVpBBE98KL6PW8P3j+seemm/e0Gl1urUcM=,tag:Z7MM3dJ414CmdxE72cdzNA==,type:str]
|
|
||||||
openrouter-api-key: ENC[AES256_GCM,data:SalhWKR6artX/kOVKZGpKSmrgsQDU/heshrdkK3wotOZ3BRn/ZqZRBldvl1JPSenMAMvE2LWUdmBQmwG/id7L7JL1O/+lUHIQw==,iv:hLlHayFJgUkWOirVLfqP0pGRBZAqGKe+EE2yG1ELGNk=,tag:0qoo0tb+xWjjQXr4n1qGmw==,type:str]
|
|
||||||
opencode-go-api-key: ENC[AES256_GCM,data:zbeTcaXJZFVfYnM/7sgblJFU9WfeosX/44KsXvrzKwiLPfGLLYYo9AFaCvWzzG6jHuSZC5OYrBWfOZv4+3omfCgglQ==,iv:LscUQE+PNhXGim9PSqc9nZIZichWSgAn/zsNxQ/HM/o=,tag:MaBCobnRM42fopiibibe5Q==,type:str]
|
|
||||||
netbird-key: ENC[AES256_GCM,data:swmaa+RjxeUmEl8hS2riGrW4lP5jdks9HM3x57/FLpOuqFtR,iv:MrpVjiocrPi+dBGPk7pwgSUNlJ1eryRpMjC8+jkU+T0=,tag:j6sqpQ02apqc6FwkdDvk9g==,type:str]
|
|
||||||
vicinae-json: ENC[AES256_GCM,data:FarBf6l8pl3hF7kGKPIWztUhwiKoQXmyTufCuJ120K/bPh1Bfiyi+ETt4DLYOGI6FJXfpVz4BbZOA29bXTLhVPxH0QtyBu/F5uEqA015b/c8VevDJSyy9huR13qO9ksLbMBt8RfWbAd9j26t7A1C8/mMyiJOEXCCTV9CEIW3xWrsYmhwsT8RYM+PwrPSeN1gQXHSMyRUjf/kOdJoda8+iXpLfjo4II4r2ELpbqi8QxhrRdsJsoOfAymFM784NtlTjE+h6S4TMehmoF/9ARif6I5SGQ0WfIKt/8orTGCPllL+NupLziSnpIGRGSybdArD+o5NCw59GOAbVRADxq8rCESwEkq3cF+hm8HabfYbiQ==,iv:Y/hXLFTJT3gNF3B6tgKoAh7njVuneoUzjVTlsCZiySw=,tag:2hfrwph6IccJdRu/yGu3XA==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- recipient: age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqS2RZdVJaNTlRamZPMkll
|
|
||||||
MDRVSVl1b2x2LzZpdlBrdmZtdyt3UE15RldRCldXUXE2a1BFeHg5NGNPbW5IMDht
|
|
||||||
cHN1QituOU9uWFQwNS9udzNEbVhtUjQKLS0tIEtkTXhlYS9XSUlQRTY1eXBjeXZQ
|
|
||||||
bThQTFdZU29ISm93TWcwVk5ZTkhRWm8KCcprmLGhahgDkXCBpzjctHgao+gc+rKC
|
|
||||||
xLIwheUyFJOGK+ixqcdoZ/PC0kY68hVLt1YzLAyxFi4Ur1wltPrNug==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age1x36yr8h993srfj29sfpzt4wyz52nztvncpmhgmfs0j26qvfecq3qvcm0an
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGVW13WFE1Ylh3Uk1HNU1i
|
|
||||||
bU9kRzFqTmhkQlRzMlRkM0VhMlNmMDUyK25NCkZYUStxM2tScGozRXJGekxGa1RX
|
|
||||||
b1VXK0Y2Z1U0YU9XRmxRUWdWem50L1EKLS0tIFovcHRlZ1JJd2lRN0RFbHdCdm9m
|
|
||||||
V1N3eUVjZ0VZRjBZdXRPNng3Y3JoUTAKQau9CG9XfvM+5JZVRwaJr/o/sXMaJiy2
|
|
||||||
wo2YcDb+4vfT4Wr+/8J3ccQgbLRZH916X5ZPL+A+nFyVXVKOCl3ENg==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2026-05-12T06:33:00Z"
|
|
||||||
mac: ENC[AES256_GCM,data:htDJdEx34Q5NG8vwbBimnFENZawbLZ4FC0DkyG6J5RYP0BFnycKcKGsYR87SvIjcJZXvfZ0e6fXdtc78dd6I0sQtrQ7aNn4Iktbu/AkPmntsBwpIjVI99X9zUyQB87go/oX15yuyt8loB6ds2RkL/pfFsgLbFc10JHsBy+WcEzI=,iv:HvY+5LYzyHpRm8XCSKrN8ra/LJT9v23TPSsZg/4QVNU=,tag:k+d45+zgBYq4vlWmmc8ZkQ==,type:str]
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.12.2
|
|
||||||
@@ -8,56 +8,15 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = with config.flake.modules.nixos; [
|
imports = with config.flake.modules.nixos; [
|
||||||
boot
|
|
||||||
networking
|
networking
|
||||||
desktop
|
desktop
|
||||||
gaming
|
|
||||||
virtualisation
|
virtualisation
|
||||||
];
|
];
|
||||||
|
|
||||||
tnix = {
|
tnix = {
|
||||||
boot = {
|
services.openssh.enable = true;
|
||||||
secure-boot.enable = true;
|
|
||||||
|
|
||||||
impermanence = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
home = {
|
|
||||||
directories = [
|
|
||||||
"Distrobox"
|
|
||||||
".steam"
|
|
||||||
".cache/awww"
|
|
||||||
".config/BraveSoftware"
|
|
||||||
".config/zed"
|
|
||||||
".config/Vencord"
|
|
||||||
".config/vesktop"
|
|
||||||
".config/sops"
|
|
||||||
".config/obs-studio"
|
|
||||||
".config/easyeffects"
|
|
||||||
".config/DankMaterialShell"
|
|
||||||
".local/share/Steam"
|
|
||||||
".local/share/nvim"
|
|
||||||
".local/share/opencode"
|
|
||||||
".local/share/zsh"
|
|
||||||
".local/share/zoxide"
|
|
||||||
".local/state/lazygit"
|
|
||||||
".local/share/vicinae"
|
|
||||||
".local/share/TelegramDesktop"
|
|
||||||
];
|
|
||||||
|
|
||||||
files = [
|
|
||||||
".wakatime.cfg"
|
|
||||||
".config/lan-mouse/lan-mouse.pem"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
openssh.enable = true;
|
|
||||||
netbird-client.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
docker.enable = true;
|
docker.enable = true;
|
||||||
@@ -74,30 +33,30 @@
|
|||||||
neededForUsers = true;
|
neededForUsers = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
gemini-api-key = {
|
openrouter_api_key = {
|
||||||
sopsFile = ./secrets.yaml;
|
sopsFile = ./secrets.yaml;
|
||||||
owner = userName;
|
owner = userName;
|
||||||
};
|
};
|
||||||
|
|
||||||
openrouter-api-key = {
|
opencode_go_api_key = {
|
||||||
sopsFile = ./secrets.yaml;
|
sopsFile = ./secrets.yaml;
|
||||||
owner = userName;
|
owner = userName;
|
||||||
};
|
};
|
||||||
|
|
||||||
opencode-go-api-key = {
|
"vicinae.json" = {
|
||||||
sopsFile = ./secrets.yaml;
|
sopsFile = ./secrets.yaml;
|
||||||
owner = userName;
|
owner = userName;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
netbird-key = {
|
# --- Boot ---
|
||||||
sopsFile = ./secrets.yaml;
|
boot = {
|
||||||
owner = userName;
|
loader = {
|
||||||
};
|
systemd-boot.enable = true;
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
vicinae-json = {
|
|
||||||
sopsFile = ./secrets.yaml;
|
|
||||||
owner = userName;
|
|
||||||
};
|
};
|
||||||
|
kernelPackages = pkgs.linuxKernel.packages.linux_zen;
|
||||||
|
kernelParams = [ "nvidia-drm.modeset=1" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# --- Networking ---
|
# --- Networking ---
|
||||||
@@ -121,10 +80,17 @@
|
|||||||
firewall.enable = false;
|
firewall.enable = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
# --- Hardware / GPU ---
|
||||||
davinci-resolve
|
hardware = {
|
||||||
telegram-desktop
|
nvidia = {
|
||||||
];
|
modesetting.enable = true;
|
||||||
|
open = false;
|
||||||
|
nvidiaSettings = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nixpkgs.config.cudaSupport = true;
|
||||||
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
environment.systemPackages = with pkgs; [ nvtopPackages.full ];
|
||||||
|
|
||||||
# !!! DO NOT CHANGE THIS !!!
|
# !!! DO NOT CHANGE THIS !!!
|
||||||
# This should match the version used at initial install.
|
# This should match the version used at initial install.
|
||||||
|
|||||||
@@ -14,14 +14,7 @@ in
|
|||||||
{
|
{
|
||||||
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = {
|
specialArgs = { inherit hostName userName userEmail; };
|
||||||
inherit
|
|
||||||
hostName
|
|
||||||
userName
|
|
||||||
userEmail
|
|
||||||
system
|
|
||||||
;
|
|
||||||
};
|
|
||||||
modules = [
|
modules = [
|
||||||
config.flake.modules.nixos.core
|
config.flake.modules.nixos.core
|
||||||
config.flake.modules.nixos.${hostName}
|
config.flake.modules.nixos.${hostName}
|
||||||
|
|||||||
@@ -1,82 +0,0 @@
|
|||||||
{ inputs, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.sirius =
|
|
||||||
{ config, lib, ... }:
|
|
||||||
let
|
|
||||||
hasOptinPersistence = config.tnix.boot.impermanence.enable;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.disko.nixosModules.disko
|
|
||||||
];
|
|
||||||
|
|
||||||
disko.devices.disk.primary = {
|
|
||||||
device = "/dev/nvme1n1";
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
ESP = {
|
|
||||||
size = "1G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [
|
|
||||||
"defaults"
|
|
||||||
"umask=0077"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
swap = {
|
|
||||||
size = "70G";
|
|
||||||
content = {
|
|
||||||
type = "swap";
|
|
||||||
discardPolicy = "both";
|
|
||||||
resumeDevice = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
type = "8300";
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
# Base subvolumes that always exist
|
|
||||||
subvolumes = {
|
|
||||||
"/root" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
"/nix" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"noacl"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/nix";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
# Conditionally merge /persist only when impermanence is enabled
|
|
||||||
// lib.optionalAttrs hasOptinPersistence {
|
|
||||||
"/persist" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/persist";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,18 +1,11 @@
|
|||||||
{ config, ... }:
|
|
||||||
{
|
{
|
||||||
flake.modules.nixos.sirius =
|
flake.modules.nixos.sirius =
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
|
||||||
system,
|
|
||||||
...
|
...
|
||||||
}@innerArgs:
|
}:
|
||||||
{
|
{
|
||||||
imports = with config.flake.modules.nixos; [
|
|
||||||
hardware
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.kernelParams = [ "nvidia-drm.modeset=1" ];
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"nvme"
|
"nvme"
|
||||||
"xhci_pci"
|
"xhci_pci"
|
||||||
@@ -25,27 +18,31 @@
|
|||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
hardware = {
|
fileSystems."/" = {
|
||||||
nvidia = {
|
device = "/dev/disk/by-uuid/d856ed98-6841-4cbf-89be-e08c6f48b9ea";
|
||||||
modesetting.enable = true;
|
fsType = "ext4";
|
||||||
open = false;
|
|
||||||
nvidiaSettings = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
cpu.amd.updateMicrocode = lib.mkDefault innerArgs.config.hardware.enableRedistributableFirmware;
|
fileSystems."/boot" = {
|
||||||
};
|
device = "/dev/disk/by-uuid/7FE1-55C5";
|
||||||
|
fsType = "vfat";
|
||||||
services = {
|
options = [
|
||||||
xserver.videoDrivers = [ "nvidia" ];
|
"fmask=0077"
|
||||||
power-profiles-daemon.enable = true;
|
"dmask=0077"
|
||||||
};
|
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
nixpkgs.config.cudaSupport = true;
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault system;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
nvtopPackages.full
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
swapDevices = [ { device = "/dev/disk/by-uuid/69794aa5-51a9-4816-8d45-7791505165d4"; } ];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlp10s0f3u2i2.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,39 +5,7 @@
|
|||||||
desktop
|
desktop
|
||||||
];
|
];
|
||||||
|
|
||||||
tnix = {
|
tnix.services.lan-mouse = {
|
||||||
desktop = {
|
|
||||||
mangowm = {
|
|
||||||
enable = true;
|
|
||||||
monitorRule = [
|
|
||||||
"name:DP-2, width:1440, height:2560, refresh:144, x:0, y:0, vrr:0, rr:1"
|
|
||||||
"name:DP-3, width:2560, height:1440, refresh:144, x:1440, y:0, vrr:0"
|
|
||||||
"name:DP-1, width:1080, height:1920, refresh:144, x:4000, y:0, vrr:0, rr:3"
|
|
||||||
];
|
|
||||||
|
|
||||||
tagRule = [
|
|
||||||
"id:1, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
|
||||||
"id:2, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
|
||||||
"id:3, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
|
||||||
"id:4, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
|
||||||
"id:5, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
|
|
||||||
|
|
||||||
"id:1, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
|
||||||
"id:2, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
|
||||||
"id:3, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
|
||||||
"id:4, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
|
||||||
"id:5, layout_name:tile, monitor_name:DP-3, no_hide:1"
|
|
||||||
|
|
||||||
"id:1, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
|
||||||
"id:2, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
|
||||||
"id:3, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
|
||||||
"id:4, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
|
||||||
"id:5, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.lan-mouse = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
clients = [
|
clients = [
|
||||||
@@ -50,7 +18,6 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
home.stateVersion = "26.05";
|
home.stateVersion = "26.05";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,30 +1,29 @@
|
|||||||
tux-password: ENC[AES256_GCM,data:JWQVd2MYX2U4UP4II62ixG9hWI5MtgHAFhl8aCmyrYPl1H/ig9ZYqfTiggJsOoXM9CUHmhUTrSWw7xRvbzztBrC7L4ABcWPbrQ==,iv:wY/RNJs7XaCsHHNX2MLBqzAgDCSo4rht10oiKrUlTHo=,tag:DcADVtEJs2KCeNS6AhO0SQ==,type:str]
|
tux-password: ENC[AES256_GCM,data:EJFFMc0W1YvCLINg4kETlUbqMYSfRTsiRuoB5MybaVwl7bbBXyPFo/MspFFMXpAqSPrzRAPaM8Lxk9ndbjt7gZpSu1dPThq36Q==,iv:zn3UUMOcW09u6KTz87tDr1wfmsLMKIRBDpLfQhg0p14=,tag:AOs7NASXeo98mNKqsYP3Ww==,type:str]
|
||||||
gemini-api-key: ENC[AES256_GCM,data:Y9YgXp/tB3Q1Rb5YMsZLgWCq+bdeIjsXAVeO3Yh7nZ8MwDH7d5De,iv:FIXxJCn6JDYsHIoNn8f8Un3z9ZPVbxdjR48Ux88poRg=,tag:bMJ4i69HTspnhzsrsxkbrw==,type:str]
|
gemini_api_key: ENC[AES256_GCM,data:agH39C8hXX1jKYq03Z70aHHfrKSbNnHJfndMB53YJgWEzban7uMA,iv:fnYOySXisW1n6Moad9xBoRQFtRa/J6zTcp0lAMEtguw=,tag:0ENL4uu+8OpNc9X+hy7SiQ==,type:str]
|
||||||
openrouter-api-key: ENC[AES256_GCM,data:HfZgZz4NyCLLM9woTZp2I6JGOlVcFblw2OMjx8k0TG5ZU2ycBCF6bKqp3wFibUxXcHy+nIfjI82fkLeSyIaGILRLYCJCc8BHKw==,iv:umUcn8MRaj7JXo6IFrGMXOu+jsFSCEikMxsQxfaFS/Q=,tag:l2s61C4EpJoKv8cc9nYGFA==,type:str]
|
openrouter_api_key: ENC[AES256_GCM,data:VBhV4NcR+7O7X2/OpN2yAGnfcSS2o3Zbvr5g3LHjdUixNSq8OZupsT9SVJDGE/RJp6nunPnYo4K8qQP2+m3K3aeQYKIyT5KNTg==,iv:CVLnloUsobanpHOuP31eIGpGoJOODukGaEmQRF+RPGw=,tag:DdEtCHMPwIIbdwZis4lQgg==,type:str]
|
||||||
opencode-go-api-key: ENC[AES256_GCM,data:BGERcZg5Jpnznc4cXeYFMhPk9kKBkd9GvIuQBV9TW3JE1utgrLLYK6mKNCQqrEStRFiO2jUUnBm3opUNL4SuEHFLpw==,iv:fgFAwx6z9yruK27PvAJX/Q2CS9gU+LJ5zMUK/f/rzpo=,tag:BPu3M+jppPB8sLoLmfuY/Q==,type:str]
|
opencode_go_api_key: ENC[AES256_GCM,data:F7WXUHDX+pESqQJ4Sg5lNXqHLvsCd1bDFPZOutuacDFu3wLHs8i0kD/rLZ+m78OmRBRv2P3kf/gJsggtkvLC/PADYQ==,iv:23soYOeKC+CvLqwvP0M+uXICBKLsOs3z8g6iUhxzrpY=,tag:2EhgRFUaHsyNJ6TqYXJYzw==,type:str]
|
||||||
netbird-key: ENC[AES256_GCM,data:qXAnRnLM2TlzpOvWG4exJv0+pUvpe0FpRN5xOWx3+KNt+yhq,iv:X+yl4o1RSYMCMWdVXo1hpzy+6IdKXUpsKPtYNSiHiCY=,tag:I8HbnD5iw6EJ1TdsNrhvfw==,type:str]
|
vicinae.json: ENC[AES256_GCM,data:qRv0EUwtS6bK9memOG3BqLf1uE5YNlpSC/p/05sb8Fw6skESaiymo584n5N8vkvGCn2Qjv/6ioJzwP4TieGtPoR1pHXkwTTGdzsnbRoU0bMuTUhD+NUBkjo2men7Yy3ljoNoopmgz9UFfps+EWuZSMmsNgIu/4sMXsNKcpDKcd8vLpXlPogwqUtbzuKw+u4RRzox0GB0QNEGcQ/F6dVKxJ2StDI8Bfy6qovEDUnK0snoCLhvAULwYwTKef8GpkCWVQRWxXk+dA4GjtgPuiABesv82gCsmsvzmfE3LLUqw+SfYgyQIXBL0IxFiULnkYZR7wmpUeWer3VCS1D8mv/0lvmcdvMqILgkV3UqXTrPqA==,iv:v7zh1tae6TFWOYms/7ihBdoJmw3z4jhcq9aV5y46aXc=,tag:2IKxst4I1XpAHp1wkOMYNA==,type:str]
|
||||||
vicinae-json: ENC[AES256_GCM,data:JjxolEgS6uakqR4eHOx3VyrOO5kaL4dj1jcEiLWsrktCU32UB7OmP1kJEVomA1rZjODpFHL89+FRpcNFspTFrc365WlANE81RLg/M2Ja1MiLYaDFNcBGtqMX9Yc1muor53Xl7t+rTSvDIj1oE1L7xPPcjCLfwC5QDzJjCBWj9FhCxnU5BwvoJNv9vgA6xnkzAOYSPZK/ihULMD0DxyqOUEa5ECGX62OPM9Gbr7jEviaItYzOOxaRs/yQVqizodGGl/BcK6fPqvOYSxip9ABYRVSI9ZvysY7ofAkeX91ardPwVG5VvEYfxZwBvGFjV7ZfTzVkK+BiUUNrvciAETHqwkjHftPpfJjxWsgLr8lbOA==,iv:HjDE/sqVDnxeww7r2upxH57rc1+LpuMKnhhyGXoc1Ms=,tag:d2kZeWkg17eVoNACIQ3Q9A==,type:str]
|
|
||||||
sops:
|
sops:
|
||||||
age:
|
age:
|
||||||
- recipient: age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4
|
- recipient: age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQNGdHcDc4bTFkR0EyZlUr
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyblpIWjNqeVBXWnFlSGxw
|
||||||
eXovR1lyeTZJTDg5R281MFFuMHVwOXZXYzNvCkpIT1g3K05WUUswaEVjVVJWQkJq
|
WXhPYlFDNVV2QktKQ2dKdEgxY0dnR2JuRUdRCk5ZNTc0RGpZOG5SRCtRQ0JsdkZt
|
||||||
V20xODdoWlJMY3ZCcGo0czU1TXZFRE0KLS0tIGNTeXV2Mld2STRmRnFaM1MzT3Nk
|
ZEZQSWswa1FTRU04Ky9vWDdOTWdZRncKLS0tIFg2SkJFK1JDVk5Uc2VJTzYyWk1h
|
||||||
Z0JwWWR0STUybjVhSXdDR3NiKzV1eDQK22HmMuyqYaR/eGuALkAPB1Y5bN2KwIt3
|
cFpmZ0h5SGJtd2JJR05CMkJISnBtbmcKLGKreXlu3YU6KsV8lTVnPYyn33BL2D0z
|
||||||
pamM8vbnjB//hXoyrv4vsoDk9WzLGFGjgiw2qsM2HQgzQqtrwF1/1A==
|
tMpXdTw0hVilpmpZXjwnvV/3OvN6WybXydxaPOjKODBWIKpVxRthBQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1maxsx5tq2h3d92rfyl8ekcdan5gu5cpch4qs3c56cu7qag02xgvs3h0gqc
|
- recipient: age18hepvvp3nw9ram6usxc8rvpxed2pye0knqx0zutqgxeu35k745vqyxfphz
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1N3ZBd1pHODFtZkZxaHNP
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWTWQ0OHhnN1p3dTBLeGxp
|
||||||
OXlXUzVFS0ZIam1IWVkxNldOdTEwY0s4aUNZCjVlcnF1aXJxUUlQSXhteXJ6OU1W
|
N05yOUVicnYxU3NETlRQUVgrcWJlMEl3blhZCkl0OGhCN25KTEJaWGNpOVRJUDRX
|
||||||
L0crZzJOaHF2SnVhWVZnVEdqRlR0cjgKLS0tIFlFWHhaR3U2QTNxRGZRMnk3cmll
|
bENKSDN3Z1Fab3lLLzVNMXlrSm5ZVTgKLS0tIHlycjZJUllsb0xvczFKMVFKaldD
|
||||||
M3JocWZJeXFxenhXOENBVWpvNkd3bm8KqhNLzCyEAI643jGWpZF/uTchHmBj8ozU
|
UGpKTHZTT2JZU0xaTHhhRjk2bEhaU1EKutUEk+TMTATHEoM9+MOdkUnIoBMeeDfu
|
||||||
HtpOzKsshif66D0XOHeJQfQamJI4TyKsj3Sk3j9rstsLmN2lxTRGHg==
|
+GGKvInVKkAOtujBtSMj+xM8AEcfaHAFtwTgP/HEk3Hu6v7gp14oew==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2026-05-10T00:35:50Z"
|
lastmodified: "2026-05-07T13:21:48Z"
|
||||||
mac: ENC[AES256_GCM,data:u27zQ1PPnWy5Parbh/1DkVP3ICmHnLZJKaLbN3dZEVONgqOWi32LV3t0iNhtLWwVnzFPBusRWahQiqAkUdnQtrXF0OtjPCpLuIw86xB75QPGbet0GZlLNb8/xPshChZe4v520csdJMWiy3vYeKrk8LxMSViAGhmhYK2a5NbGhzI=,iv:/9vePmvCNqoP0kx24fP3HfCjS2FkjBmI5B+SycvKKW4=,tag:gE1/DnLolwhoyfMJYejGIQ==,type:str]
|
mac: ENC[AES256_GCM,data:VWNmixzidftm4u0lUt5yL9rlvQXOXVT1+A6b/6IyO9WsWi5aM67t9l9phwRxLYad1lLL/epDmJyIJQ0ck01CzQ/hFm2mnMk87ofrwbph3GVdvrYj+2dDkzIBCwDUe/p4rkrTSo87FVJZ8NvrndbBLX3pq7Axjeo92b3Zxfxg+L8=,iv:IqCOBV5EICtO1hRO07Df0fgobO+/biS8O/4lva7NfEg=,tag:vPltr8g61OdKK4XXFyJdgQ==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.12.2
|
version: 3.12.2
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.vps =
|
|
||||||
{
|
|
||||||
hostName,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = with config.flake.modules.nixos; [
|
|
||||||
boot
|
|
||||||
networking
|
|
||||||
virtualisation
|
|
||||||
services
|
|
||||||
];
|
|
||||||
|
|
||||||
tnix = {
|
|
||||||
boot = {
|
|
||||||
legacy.enable = true;
|
|
||||||
|
|
||||||
impermanence = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
home = {
|
|
||||||
directories = [
|
|
||||||
".local/share/nvim"
|
|
||||||
".local/share/zsh"
|
|
||||||
".local/share/zoxide"
|
|
||||||
".local/state/lazygit"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.openssh.enable = true;
|
|
||||||
|
|
||||||
virtualisation = {
|
|
||||||
docker.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# --- Networking ---
|
|
||||||
networking = {
|
|
||||||
hostName = hostName;
|
|
||||||
networkmanager.enable = true;
|
|
||||||
firewall.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "26.05";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
hostName = "vps";
|
|
||||||
userName = "tux";
|
|
||||||
userEmail = "t@tux.rs";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
unstable = true;
|
|
||||||
nixpkgs = if unstable then inputs.nixpkgs else inputs.nixpkgs-stable;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
|
|
||||||
inherit system;
|
|
||||||
specialArgs = {
|
|
||||||
inherit
|
|
||||||
hostName
|
|
||||||
userName
|
|
||||||
userEmail
|
|
||||||
system
|
|
||||||
;
|
|
||||||
};
|
|
||||||
modules = [
|
|
||||||
config.flake.modules.nixos.core
|
|
||||||
config.flake.modules.nixos.${hostName}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
{ inputs, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.vps =
|
|
||||||
{ config, lib, ... }:
|
|
||||||
let
|
|
||||||
hasOptinPersistence = config.tnix.boot.impermanence.enable;
|
|
||||||
isLegacy = config.tnix.boot.legacy.enable;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.disko.nixosModules.disko
|
|
||||||
];
|
|
||||||
|
|
||||||
disko.devices.disk.primary = {
|
|
||||||
device = "/dev/sda";
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
ESP = {
|
|
||||||
size = "1G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [
|
|
||||||
"defaults"
|
|
||||||
"umask=0077"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
type = "8300";
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
# Base subvolumes that always exist
|
|
||||||
subvolumes = {
|
|
||||||
"/root" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
"/nix" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"noacl"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/nix";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
# Conditionally merge /persist only when impermanence is enabled
|
|
||||||
// lib.optionalAttrs hasOptinPersistence {
|
|
||||||
"/persist" = {
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"space_cache=v2"
|
|
||||||
];
|
|
||||||
mountpoint = "/persist";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
// lib.optionalAttrs isLegacy {
|
|
||||||
boot = {
|
|
||||||
name = "boot";
|
|
||||||
size = "1M";
|
|
||||||
type = "EF02";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.vps =
|
|
||||||
{
|
|
||||||
lib,
|
|
||||||
modulesPath,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
(modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault system;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
flake.modules.homeManager.vps = {
|
|
||||||
home.stateVersion = "26.05";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,121 +0,0 @@
|
|||||||
{ inputs, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.boot =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
userName,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.tnix.boot;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.impermanence.nixosModules.impermanence
|
|
||||||
];
|
|
||||||
|
|
||||||
options.tnix.boot.impermanence = {
|
|
||||||
enable = lib.mkEnableOption "Enable impermanence";
|
|
||||||
|
|
||||||
directories = lib.mkOption {
|
|
||||||
type = lib.types.listOf lib.types.str;
|
|
||||||
default = [ ];
|
|
||||||
};
|
|
||||||
|
|
||||||
files = lib.mkOption {
|
|
||||||
type = lib.types.listOf lib.types.str;
|
|
||||||
default = [ ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
options.tnix.boot.impermanence.home = {
|
|
||||||
directories = lib.mkOption {
|
|
||||||
type = lib.types.listOf lib.types.str;
|
|
||||||
default = [ ];
|
|
||||||
};
|
|
||||||
|
|
||||||
files = lib.mkOption {
|
|
||||||
type = lib.types.listOf lib.types.str;
|
|
||||||
default = [ ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.impermanence.enable {
|
|
||||||
programs.fuse.userAllowOther = true;
|
|
||||||
fileSystems."/persist".neededForBoot = true;
|
|
||||||
environment.persistence."/persist" = {
|
|
||||||
hideMounts = true;
|
|
||||||
directories = [
|
|
||||||
"/var/log"
|
|
||||||
"/var/lib"
|
|
||||||
"/etc/NetworkManager/system-connections"
|
|
||||||
]
|
|
||||||
++ cfg.impermanence.directories;
|
|
||||||
|
|
||||||
files = [
|
|
||||||
"/etc/ssh/ssh_host_ed25519_key"
|
|
||||||
"/etc/ssh/ssh_host_ed25519_key.pub"
|
|
||||||
"/etc/ssh/ssh_host_rsa_key"
|
|
||||||
"/etc/ssh/ssh_host_rsa_key.pub"
|
|
||||||
]
|
|
||||||
++ cfg.impermanence.files;
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager.users.${userName} = {
|
|
||||||
home.persistence."/persist" = {
|
|
||||||
directories = [
|
|
||||||
"Downloads"
|
|
||||||
"Music"
|
|
||||||
"Wallpapers"
|
|
||||||
"Documents"
|
|
||||||
"Videos"
|
|
||||||
"Projects"
|
|
||||||
"Stuff"
|
|
||||||
".ssh"
|
|
||||||
]
|
|
||||||
++ cfg.impermanence.home.directories;
|
|
||||||
|
|
||||||
files = cfg.impermanence.home.files;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.initrd.systemd = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
services.wipe-my-fs = {
|
|
||||||
wantedBy = [ "initrd.target" ];
|
|
||||||
after = [ "initrd-root-device.target" ];
|
|
||||||
before = [ "sysroot.mount" ];
|
|
||||||
unitConfig.DefaultDependencies = "no";
|
|
||||||
serviceConfig.Type = "oneshot";
|
|
||||||
script = ''
|
|
||||||
mkdir /btrfs_tmp
|
|
||||||
mount /dev/disk/by-partlabel/disk-primary-root /btrfs_tmp
|
|
||||||
|
|
||||||
if [[ -e /btrfs_tmp/root ]]; then
|
|
||||||
mkdir -p /btrfs_tmp/old_roots
|
|
||||||
timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S")
|
|
||||||
mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
|
|
||||||
fi
|
|
||||||
|
|
||||||
delete_subvolume_recursively() {
|
|
||||||
IFS=$'\n'
|
|
||||||
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
|
||||||
delete_subvolume_recursively "/btrfs_tmp/$i"
|
|
||||||
done
|
|
||||||
btrfs subvolume delete "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do
|
|
||||||
delete_subvolume_recursively "$i"
|
|
||||||
done
|
|
||||||
|
|
||||||
btrfs subvolume create /btrfs_tmp/root
|
|
||||||
umount /btrfs_tmp
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.boot =
|
|
||||||
{ config, lib, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.tnix.boot;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.tnix.boot.legacy = {
|
|
||||||
enable = lib.mkEnableOption "legacy boot (GRUB) instead of systemd-boot";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkMerge [
|
|
||||||
{
|
|
||||||
boot.loader = {
|
|
||||||
timeout = 1;
|
|
||||||
efi.canTouchEfiVariables = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
(lib.mkIf (!cfg.legacy.enable && !cfg.secure-boot.enable) {
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
})
|
|
||||||
|
|
||||||
(lib.mkIf cfg.legacy.enable {
|
|
||||||
boot.loader.grub.enable = true;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.boot =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
boot = {
|
|
||||||
consoleLogLevel = 0;
|
|
||||||
initrd.verbose = false;
|
|
||||||
kernelPackages = pkgs.linuxPackages_zen;
|
|
||||||
supportedFilesystems = [ "ntfs" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{ inputs, ... }:
|
|
||||||
{
|
|
||||||
flake.modules.nixos.boot =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.tnix.boot;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [ inputs.lanzaboote.nixosModules.lanzaboote ];
|
|
||||||
|
|
||||||
options.tnix.boot.secure-boot = {
|
|
||||||
enable = lib.mkEnableOption "Enable secure-boot";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.secure-boot.enable {
|
|
||||||
assertions = [
|
|
||||||
{
|
|
||||||
assertion = !cfg.legacy.enable;
|
|
||||||
message = "secure-boot and legacy boot (GRUB) cannot be enabled at the same time";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.sbctl ];
|
|
||||||
|
|
||||||
# Lanzaboote replaces systemd-boot, so force it off
|
|
||||||
boot.loader.systemd-boot.enable = lib.mkForce false;
|
|
||||||
|
|
||||||
boot.lanzaboote = {
|
|
||||||
enable = true;
|
|
||||||
autoGenerateKeys.enable = true;
|
|
||||||
autoEnrollKeys.enable = true;
|
|
||||||
|
|
||||||
configurationLimit = 10;
|
|
||||||
pkiBundle = "/var/lib/sbctl";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -8,9 +8,6 @@
|
|||||||
userEmail,
|
userEmail,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
hasPasswordSecret = lib.hasAttrByPath [ "sops" "secrets" "tux-password" ] config;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
programs.zsh.enable = true;
|
programs.zsh.enable = true;
|
||||||
|
|
||||||
@@ -34,8 +31,7 @@
|
|||||||
mutableUsers = false;
|
mutableUsers = false;
|
||||||
defaultUserShell = pkgs.zsh;
|
defaultUserShell = pkgs.zsh;
|
||||||
users.${userName} = {
|
users.${userName} = {
|
||||||
hashedPasswordFile = lib.mkIf hasPasswordSecret config.sops.secrets.tux-password.path;
|
hashedPasswordFile = config.sops.secrets.tux-password.path;
|
||||||
initialPassword = lib.mkIf (!hasPasswordSecret) userName;
|
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
flake.modules.nixos.hardware = {
|
flake.modules.nixos.desktop = {
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.desktop =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs.gpu-screen-recorder = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
gpu-screen-recorder-gtk
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
flake.modules.nixos.hardware = {
|
flake.modules.nixos.desktop = {
|
||||||
hardware = {
|
hardware = {
|
||||||
graphics = {
|
graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
services.displayManager.ly = {
|
services.displayManager.ly = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
session_log = "null";
|
# session_log = "null";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.desktop =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [ brightnessctl ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.desktop =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
services = {
|
|
||||||
gvfs.enable = true;
|
|
||||||
tumbler.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.thunar = {
|
|
||||||
enable = true;
|
|
||||||
plugins = with pkgs; [
|
|
||||||
thunar-archive-plugin
|
|
||||||
thunar-volman
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.desktop =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [ tpanel ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.gaming =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs.steam = {
|
|
||||||
enable = true;
|
|
||||||
protontricks.enable = true;
|
|
||||||
extraCompatPackages = with pkgs; [ proton-ge-bin ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.hardware = { pkgs, ... }: {
|
|
||||||
hardware.bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgs.bluetui
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.networking =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
hostName,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.tnix.networking.netbird-client;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.tnix.networking.netbird-client = {
|
|
||||||
enable = mkEnableOption "Enable netbird client";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services.netbird.clients = {
|
|
||||||
${hostName} = {
|
|
||||||
port = 51820;
|
|
||||||
login = {
|
|
||||||
enable = true;
|
|
||||||
setupKeyFile = config.sops.secrets.netbird-key.path;
|
|
||||||
};
|
|
||||||
bin.suffix = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -7,14 +7,10 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.tnix.networking.openssh;
|
cfg = config.tnix.services.openssh;
|
||||||
|
|
||||||
# Sops needs acess to the keys before the persist dirs are even mounted; so
|
|
||||||
# just persisting the keys won't work, we must point at /persist
|
|
||||||
hasOptinPersistence = config.tnix.boot.impermanence.enable;
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.tnix.networking.openssh = {
|
options.tnix.services.openssh = {
|
||||||
enable = mkEnableOption "Enable OpenSSH server";
|
enable = mkEnableOption "Enable OpenSSH server";
|
||||||
|
|
||||||
ports = mkOption {
|
ports = mkOption {
|
||||||
@@ -63,13 +59,6 @@
|
|||||||
ClientAliveCountMax = 5;
|
ClientAliveCountMax = 5;
|
||||||
ClientAliveInterval = 60;
|
ClientAliveInterval = 60;
|
||||||
};
|
};
|
||||||
|
|
||||||
hostKeys = [
|
|
||||||
{
|
|
||||||
path = "${lib.optionalString hasOptinPersistence "/persist"}/etc/ssh/ssh_host_ed25519_key";
|
|
||||||
type = "ed25519";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,66 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.services =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.tnix.services.aiostreams;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.tnix.services.aiostreams = {
|
|
||||||
enable = mkEnableOption "Enable AIOStreams";
|
|
||||||
|
|
||||||
port = mkOption {
|
|
||||||
type = types.int;
|
|
||||||
default = 3000;
|
|
||||||
};
|
|
||||||
|
|
||||||
dataDir = mkOption {
|
|
||||||
type = types.path;
|
|
||||||
default = "/var/lib/docker/volumes/aiostreams/_data";
|
|
||||||
description = "Directory to store persistent AIOStreams data";
|
|
||||||
};
|
|
||||||
|
|
||||||
environment = mkOption {
|
|
||||||
type = with types; attrsOf str;
|
|
||||||
default = { };
|
|
||||||
};
|
|
||||||
|
|
||||||
environmentFile = mkOption {
|
|
||||||
type = with types; path;
|
|
||||||
default = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
virtualisation.oci-containers.containers.aiostreams = {
|
|
||||||
autoStart = true;
|
|
||||||
image = "ghcr.io/viren070/aiostreams:latest";
|
|
||||||
ports = [
|
|
||||||
"${toString cfg.port}:3000"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = cfg.environment;
|
|
||||||
environmentFiles = [ cfg.environmentFile ];
|
|
||||||
volumes = [
|
|
||||||
"${cfg.dataDir}:/app/data"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.nginx.virtualHosts = {
|
|
||||||
"${cfg.environment.ADDON_ID}" = {
|
|
||||||
forceSSL = true;
|
|
||||||
useACMEHost = "lab.tux.rs";
|
|
||||||
locations = {
|
|
||||||
"/" = {
|
|
||||||
proxyPass = "http://localhost:${toString cfg.port}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.services =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.tnix.services.cyber-tux;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.tnix.services.cyber-tux = {
|
|
||||||
enable = mkEnableOption "CyberTux Discord bot";
|
|
||||||
|
|
||||||
user = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "cyber-tux";
|
|
||||||
description = "User under which the CyberTux service runs.";
|
|
||||||
};
|
|
||||||
|
|
||||||
group = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "cyber-tux";
|
|
||||||
description = "Group under which the CyberTux service runs.";
|
|
||||||
};
|
|
||||||
|
|
||||||
dataDir = mkOption {
|
|
||||||
type = types.path;
|
|
||||||
default = "/var/lib/cyber-tux";
|
|
||||||
description = "Directory where CyberTux stores its data.";
|
|
||||||
};
|
|
||||||
|
|
||||||
environmentFile = mkOption {
|
|
||||||
type = types.path;
|
|
||||||
description = "Environment file containing the Discord bot token.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
systemd.services.cyber-tux = {
|
|
||||||
description = "CyberTux Discord bot";
|
|
||||||
after = [ "network.target" ];
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "simple";
|
|
||||||
User = cfg.user;
|
|
||||||
Group = cfg.group;
|
|
||||||
EnvironmentFile = cfg.environmentFile;
|
|
||||||
ExecStart = getExe pkgs.cyber-tux;
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = 5;
|
|
||||||
WorkingDirectory = cfg.dataDir;
|
|
||||||
StateDirectory = baseNameOf cfg.dataDir;
|
|
||||||
StateDirectoryMode = "0700";
|
|
||||||
|
|
||||||
LockPersonality = true;
|
|
||||||
MemoryDenyWriteExecute = true;
|
|
||||||
NoNewPrivileges = true;
|
|
||||||
PrivateDevices = true;
|
|
||||||
PrivateIPC = true;
|
|
||||||
PrivateTmp = true;
|
|
||||||
PrivateUsers = true;
|
|
||||||
ProtectClock = true;
|
|
||||||
ProtectControlGroups = true;
|
|
||||||
ProtectHome = true;
|
|
||||||
ProtectHostname = true;
|
|
||||||
ProtectKernelLogs = true;
|
|
||||||
ProtectKernelModules = true;
|
|
||||||
ProtectKernelTunables = true;
|
|
||||||
ProtectProc = "invisible";
|
|
||||||
ProtectSystem = "strict";
|
|
||||||
RestrictNamespaces = [
|
|
||||||
"uts"
|
|
||||||
"ipc"
|
|
||||||
"pid"
|
|
||||||
"user"
|
|
||||||
"cgroup"
|
|
||||||
];
|
|
||||||
RestrictRealtime = true;
|
|
||||||
RestrictSUIDSGID = true;
|
|
||||||
SystemCallArchitectures = "native";
|
|
||||||
SystemCallFilter = [ "@system-service" ];
|
|
||||||
UMask = "0077";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users = mkIf (cfg.user == "cyber-tux") {
|
|
||||||
${cfg.user} = {
|
|
||||||
isSystemUser = true;
|
|
||||||
group = cfg.group;
|
|
||||||
description = "CyberTux service user";
|
|
||||||
home = cfg.dataDir;
|
|
||||||
createHome = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users.groups = mkIf (cfg.group == "cyber-tux") {
|
|
||||||
${cfg.group} = { };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.services =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.tnix.services.mediaflow-proxy;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.tnix.services.mediaflow-proxy = {
|
|
||||||
enable = mkEnableOption "Enable MediaFlow Proxy";
|
|
||||||
|
|
||||||
port = mkOption {
|
|
||||||
type = types.int;
|
|
||||||
default = 8888;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment = mkOption {
|
|
||||||
type = with types; attrsOf str;
|
|
||||||
default = { };
|
|
||||||
};
|
|
||||||
|
|
||||||
environmentFile = mkOption {
|
|
||||||
type = with types; path;
|
|
||||||
default = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
virtualisation.oci-containers.containers.mediaflow-proxy = {
|
|
||||||
autoStart = true;
|
|
||||||
image = "ghcr.io/mhdzumair/mediaflow-proxy-light:latest";
|
|
||||||
ports = [
|
|
||||||
"${toString cfg.port}:8888"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = cfg.environment;
|
|
||||||
environmentFiles = [ cfg.environmentFile ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.nginx.virtualHosts = {
|
|
||||||
"mf-proxy.lab.tux.rs" = {
|
|
||||||
forceSSL = true;
|
|
||||||
useACMEHost = "lab.tux.rs";
|
|
||||||
locations = {
|
|
||||||
"/" = {
|
|
||||||
proxyPass = "http://localhost:${toString cfg.port}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
{
|
|
||||||
flake.modules.nixos.services =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
userEmail,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.tnix.services.nginx;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.tnix.services.nginx = {
|
|
||||||
enable = mkEnableOption "Enable Nginx";
|
|
||||||
|
|
||||||
domain = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
security = {
|
|
||||||
acme = {
|
|
||||||
acceptTerms = true;
|
|
||||||
defaults.email = "${userEmail}";
|
|
||||||
certs = {
|
|
||||||
"${cfg.domain}" = {
|
|
||||||
group = "nginx";
|
|
||||||
domain = "*.${cfg.domain}";
|
|
||||||
extraDomainNames = [ "${cfg.domain}" ];
|
|
||||||
dnsProvider = "cloudflare";
|
|
||||||
credentialFiles = {
|
|
||||||
CLOUDFLARE_EMAIL_FILE = config.sops.secrets."cloudflare-credentials/email".path;
|
|
||||||
CLOUDFLARE_DNS_API_TOKEN_FILE = config.sops.secrets."cloudflare-credentials/dns-api-token".path;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.nginx.extraGroups = [ "acme" ];
|
|
||||||
|
|
||||||
services.nginx = {
|
|
||||||
enable = true;
|
|
||||||
recommendedGzipSettings = true;
|
|
||||||
recommendedOptimisation = true;
|
|
||||||
recommendedProxySettings = true;
|
|
||||||
recommendedTlsSettings = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user