forked from pub-solar/os
Compare commits
295 commits
Author | SHA1 | Date | |
---|---|---|---|
teutat3s | f791ceccd0 | ||
teutat3s | 6c83d67887 | ||
teutat3s | e815ca1293 | ||
teutat3s | e76cbabad9 | ||
teutat3s | 1a13960d54 | ||
teutat3s | 0db272c260 | ||
teutat3s | 2630acd0bc | ||
Hendrik Sokolowski | a028cbc66a | ||
Hendrik Sokolowski | cc3979d724 | ||
teutat3s | 42c4cda12e | ||
teutat3s | 7f385ec4ac | ||
teutat3s | 5ea57eaea6 | ||
teutat3s | d69ed82a31 | ||
teutat3s | a006bed2ea | ||
teutat3s | 5ad5c9bae6 | ||
teutat3s | ab603a9708 | ||
teutat3s | 60e15166c8 | ||
teutat3s | c0f991010f | ||
teutat3s | 574deec44c | ||
teutat3s | cf2b9e2c54 | ||
teutat3s | 8bd5022d70 | ||
teutat3s | 10813c3dc0 | ||
teutat3s | 1c58fdee89 | ||
teutat3s | a0d6fcdd44 | ||
teutat3s | 48d6bb64ac | ||
teutat3s | 5bfbbebcc6 | ||
teutat3s | 0cb5ad876b | ||
teutat3s | 1cf3fad5b7 | ||
teutat3s | 2d92c9d6a3 | ||
teutat3s | b8273742e3 | ||
teutat3s | 28f1bd66f0 | ||
teutat3s | c88016af85 | ||
teutat3s | 2b69ea89a4 | ||
teutat3s | aa65a39eff | ||
teutat3s | 6e503bb161 | ||
teutat3s | 0b155bc7dd | ||
teutat3s | 9457435388 | ||
teutat3s | 0ff91df7fe | ||
teutat3s | 9497f6c73d | ||
teutat3s | 175941c565 | ||
teutat3s | ed25801ecf | ||
teutat3s | 76f3890de1 | ||
teutat3s | ff0ff0b7ba | ||
teutat3s | 0a182761ca | ||
teutat3s | 9e6cf4ba02 | ||
teutat3s | ae01ed16b8 | ||
teutat3s | 9a7e53ab59 | ||
teutat3s | 63080c4d4f | ||
teutat3s | 9ef3d58d2e | ||
teutat3s | 72cc501e5f | ||
teutat3s | b4c782e65a | ||
teutat3s | 1203bfc4ef | ||
teutat3s | 63102f33e5 | ||
teutat3s | dca6ca86b1 | ||
teutat3s | b263ca4c45 | ||
teutat3s | b00196aa94 | ||
teutat3s | 820cc40356 | ||
teutat3s | c9b84430f9 | ||
teutat3s | 6d5025b17b | ||
teutat3s | 8a843caf57 | ||
teutat3s | 768392581d | ||
teutat3s | ed298f6140 | ||
teutat3s | 624bbf36c6 | ||
teutat3s | 90e181040c | ||
teutat3s | ea11c9ed6d | ||
teutat3s | 0fc1a7fe20 | ||
teutat3s | 7749667888 | ||
teutat3s | 9a2b2e2b9f | ||
teutat3s | 1b2ede1e86 | ||
teutat3s | 5c57e0af8a | ||
teutat3s | 94acf6d190 | ||
teutat3s | a7fa725d62 | ||
teutat3s | f3ac27ac71 | ||
teutat3s | edbfeeb63b | ||
teutat3s | d4bcb45ec2 | ||
teutat3s | eae1f5aaba | ||
teutat3s | de8b7c9a5c | ||
teutat3s | 65545ac0eb | ||
teutat3s | 7ec1b28c13 | ||
teutat3s | 72ee1b7180 | ||
teutat3s | 4982c93248 | ||
teutat3s | 20efda1056 | ||
teutat3s | 5464cd2ebe | ||
teutat3s | 18cf9e1f0d | ||
teutat3s | 1877c41b83 | ||
teutat3s | ce5753cee5 | ||
teutat3s | 5b4dcce3c0 | ||
teutat3s | a5a97f1757 | ||
teutat3s | bf30ff4396 | ||
teutat3s | 40240e9d5c | ||
teutat3s | 6ff469a0ac | ||
teutat3s | 528e69af1e | ||
teutat3s | a79cb4f592 | ||
teutat3s | 412b830cb0 | ||
teutat3s | 8e1f2b5abc | ||
teutat3s | 8540db683a | ||
teutat3s | 7f712ce866 | ||
teutat3s | daeff7cdae | ||
teutat3s | aabfc4a0dd | ||
teutat3s | 036de0adc2 | ||
teutat3s | 05c72f28af | ||
teutat3s | 578537227e | ||
teutat3s | 09c83e89b1 | ||
teutat3s | 3229e5c6da | ||
teutat3s | 47239ec1bb | ||
teutat3s | cba5562e35 | ||
teutat3s | f0bf5d7c04 | ||
teutat3s | 978d07d868 | ||
teutat3s | 669b61f722 | ||
teutat3s | 393302373b | ||
teutat3s | c3c7b63d73 | ||
teutat3s | 848a0dd0a5 | ||
teutat3s | f025fa681a | ||
teutat3s | 9a8462b938 | ||
teutat3s | fc8ac5709a | ||
teutat3s | 26d5fcf589 | ||
teutat3s | 89d9611e5e | ||
teutat3s | 5a95fedf3c | ||
teutat3s | 7c98e09e88 | ||
teutat3s | 0a22395a8c | ||
teutat3s | 75dfffa614 | ||
teutat3s | 5149c219e6 | ||
teutat3s | 67a4b2e58d | ||
teutat3s | 3015dc4293 | ||
teutat3s | 5c86a6ec09 | ||
teutat3s | d490c4b78a | ||
teutat3s | 3c3945d34b | ||
teutat3s | 9ef7784e81 | ||
teutat3s | 03cf31989f | ||
teutat3s | d7aa9a8840 | ||
teutat3s | d2c7eea425 | ||
teutat3s | dccf0baed0 | ||
teutat3s | 08d0f49f3a | ||
teutat3s | 8e2037ef4a | ||
teutat3s | 2f38edecf7 | ||
teutat3s | 0c14291bc2 | ||
teutat3s | 1d0ae71a3c | ||
teutat3s | e2773a67ee | ||
teutat3s | 8bfd365039 | ||
teutat3s | a9ea24a39b | ||
teutat3s | b911badb8a | ||
teutat3s | 03e6c47086 | ||
teutat3s | 7ecfcf5814 | ||
teutat3s | a1c87c43ca | ||
teutat3s | 8fd578dceb | ||
teutat3s | 888d6ca12a | ||
teutat3s | 841ce25ab2 | ||
teutat3s | 6f7e01a3e5 | ||
teutat3s | f44e3f06ed | ||
teutat3s | 1cbb04d808 | ||
teutat3s | ec2e42593e | ||
teutat3s | 9458395c36 | ||
teutat3s | dde682146d | ||
teutat3s | d399532b58 | ||
teutat3s | ab8850998e | ||
teutat3s | bac40c211a | ||
teutat3s | 7bbdc0c4f7 | ||
teutat3s | 72637fba7b | ||
teutat3s | c97231947c | ||
teutat3s | 3a5a8f3706 | ||
teutat3s | ac35bb4555 | ||
teutat3s | dcb04e9769 | ||
teutat3s | 2d68f026ef | ||
teutat3s | c889aa96dc | ||
teutat3s | 23ad00f264 | ||
teutat3s | 286c8d9ead | ||
teutat3s | 4455f8e5f0 | ||
teutat3s | 8958a2df72 | ||
teutat3s | a188dc9c6e | ||
teutat3s | 6dcbd42a56 | ||
teutat3s | 17b2a84d23 | ||
teutat3s | f6a9e18903 | ||
teutat3s | 50675323f7 | ||
teutat3s | 6eb0925aaf | ||
teutat3s | 81ec0ecffc | ||
teutat3s | f4d59feb29 | ||
teutat3s | 9d0eb01b1a | ||
teutat3s | 61967bc0e8 | ||
teutat3s | eca6d4d999 | ||
teutat3s | 7e3afff152 | ||
teutat3s | b0483a0757 | ||
teutat3s | 0337015328 | ||
teutat3s | a774ccdb0c | ||
teutat3s | f21a8f0e81 | ||
teutat3s | bc07b99029 | ||
teutat3s | bcd9f7e0a3 | ||
teutat3s | 32a51fd9ef | ||
teutat3s | 5dbcf14d1f | ||
teutat3s | 82aeb0ec39 | ||
teutat3s | f5f6ddd10c | ||
teutat3s | 0555636f26 | ||
teutat3s | 6b0994ac4e | ||
teutat3s | af6c13f3e6 | ||
teutat3s | 19bf284361 | ||
teutat3s | 2690f79f10 | ||
teutat3s | a2c3102fae | ||
teutat3s | 63f91c864a | ||
teutat3s | 749110bed5 | ||
teutat3s | f33597926e | ||
teutat3s | 23af3da5f3 | ||
teutat3s | e19388f99b | ||
teutat3s | 082e33c1ed | ||
teutat3s | 952e8389c5 | ||
teutat3s | 7dd2362c27 | ||
teutat3s | fb04812df1 | ||
teutat3s | 1f2a6fe066 | ||
teutat3s | 73739322fa | ||
teutat3s | 8229dea533 | ||
teutat3s | 3c6d815d5c | ||
teutat3s | 96778b345c | ||
teutat3s | f63902f55a | ||
teutat3s | 19bd4126df | ||
teutat3s | 36678d57f9 | ||
teutat3s | f570efefe9 | ||
teutat3s | 30b3838b2a | ||
teutat3s | e6f679387c | ||
teutat3s | eae049a62c | ||
teutat3s | 0ac864d8a0 | ||
teutat3s | 269aff703d | ||
teutat3s | 54044ed31a | ||
drone | 45265e2014 | ||
teutat3s | a1adee5cb6 | ||
teutat3s | 3ce9be7c4c | ||
drone | 8df34042c3 | ||
drone | f8c52bdee1 | ||
drone | f43ea392f3 | ||
teutat3s | 81647c8447 | ||
teutat3s | f3237ea908 | ||
teutat3s | 07c6de8b0d | ||
teutat3s | 6f5dae8520 | ||
teutat3s | 4b8c24df60 | ||
teutat3s | 6c0585edc7 | ||
teutat3s | 5f552149ea | ||
teutat3s | 4bc3eaed27 | ||
teutat3s | 56ab7a1d28 | ||
teutat3s | d35fc6d8ae | ||
teutat3s | 3bb6c8bc66 | ||
teutat3s | f2d20739e0 | ||
teutat3s | 59069b11b1 | ||
teutat3s | 5bf032e2c9 | ||
teutat3s | 7d9d924f2b | ||
teutat3s | 575e8c9fd0 | ||
teutat3s | 7c064001e9 | ||
teutat3s | 898fc15023 | ||
teutat3s | f026b8bd44 | ||
teutat3s | 8da39248c6 | ||
teutat3s | 7985b4f33d | ||
teutat3s | 4de6cd9641 | ||
teutat3s | 58b6b7f0ca | ||
teutat3s | a31706695e | ||
teutat3s | c653bf0818 | ||
teutat3s | be2419645d | ||
teutat3s | 2032775826 | ||
teutat3s | 25d605d45b | ||
teutat3s | 62f7de1dba | ||
drone | 58e4d8ddfa | ||
teutat3s | 95bb18093c | ||
teutat3s | 916cd67458 | ||
teutat3s | b66e1465ad | ||
teutat3s | 27ed938aec | ||
teutat3s | a5df658fb2 | ||
teutat3s | 9755e48043 | ||
teutat3s | e33191591c | ||
teutat3s | 3f64c910b0 | ||
teutat3s | f66f600b9b | ||
teutat3s | 0b25f7b11b | ||
teutat3s | f0130f5df7 | ||
teutat3s | 15497046c7 | ||
teutat3s | 245f5ecb91 | ||
teutat3s | 021c8774fa | ||
drone | 5874f7366c | ||
drone | 06abae7874 | ||
teutat3s | 3bf4783f0e | ||
teutat3s | cacb98ed0b | ||
teutat3s | e5ddbd1f75 | ||
teutat3s | ea32e36c57 | ||
teutat3s | 192d10e3c3 | ||
teutat3s | e27b566f95 | ||
teutat3s | ea5ef431c4 | ||
teutat3s | cca0aa30f5 | ||
teutat3s | 426e4ec460 | ||
teutat3s | e9d626f69c | ||
teutat3s | 0829154ec4 | ||
teutat3s | 00537d84c0 | ||
teutat3s | e1e633750a | ||
teutat3s | ce618a532d | ||
teutat3s | 7faf8310bb | ||
teutat3s | 8293ebafb4 | ||
teutat3s | a7352d4bef | ||
teutat3s | a03e44a95a | ||
teutat3s | e4976a58cf | ||
teutat3s | 9897fb174a | ||
teutat3s | 3e0017a191 | ||
teutat3s | b53d7bfaeb | ||
teutat3s | 6c40b31e79 |
310
flake.lock
310
flake.lock
|
@ -42,11 +42,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667419884,
|
"lastModified": 1665392861,
|
||||||
"narHash": "sha256-oLNw87ZI5NxTMlNQBv1wG2N27CUzo9admaFlnmavpiY=",
|
"narHash": "sha256-bCd8fYJMAb0LzabsiXl4nxECDoz483bJOCa2hjox7N0=",
|
||||||
"owner": "LnL7",
|
"owner": "LnL7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "cfc0125eafadc9569d3d6a16ee928375b77e3100",
|
"rev": "ef56fd8979b5f4e800c4716f62076e00600b1172",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -120,6 +120,25 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"devshell_2": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_4",
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1663445644,
|
||||||
|
"narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"digga": {
|
"digga": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"blank": "blank",
|
"blank": "blank",
|
||||||
|
@ -157,6 +176,29 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"fenix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-autobahn",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-analyzer-src": "rust-analyzer-src"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1655188051,
|
||||||
|
"narHash": "sha256-Cf/qNGb7Xw84TPPep0iIZLLhSXiFq9h+tt6TnfaQMrE=",
|
||||||
|
"ref": "main",
|
||||||
|
"rev": "522a4e99be1f8fcc94b94666c3a44677d668f539",
|
||||||
|
"revCount": 1067,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/nix-community/fenix"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"ref": "main",
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/nix-community/fenix"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -189,38 +231,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_3": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1650374568,
|
|
||||||
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat_4": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1650374568,
|
|
||||||
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1642700792,
|
"lastModified": 1642700792,
|
||||||
|
@ -272,11 +282,41 @@
|
||||||
},
|
},
|
||||||
"flake-utils_3": {
|
"flake-utils_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667077288,
|
"lastModified": 1653893745,
|
||||||
"narHash": "sha256-bdC8sFNDpT0HK74u9fUkpbf1MEzVYJ+ka7NXCdgBoaA=",
|
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "6ee9ebb6b1ee695d2cacc4faa053a7b9baa76817",
|
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1642700792,
|
||||||
|
"narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "846b2ae0fc4cc943637d3d1def4454213e203cba",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1659877975,
|
||||||
|
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -292,11 +332,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667677389,
|
"lastModified": 1665996265,
|
||||||
"narHash": "sha256-y9Zdq8vtsn0T5TO1iTvWA7JndYIAGjzCjbYVi/hOSmA=",
|
"narHash": "sha256-/k9og6LDBQwT+f/tJ5ClcWiUl8kCX5m6ognhsAxOiCY=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "87d55517f6f36aa1afbd7a4a064869d5a1d405b8",
|
"rev": "b81e128fc053ab3159d7b464d9b7dedc9d6a6891",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -324,11 +364,11 @@
|
||||||
},
|
},
|
||||||
"latest_2": {
|
"latest_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667629849,
|
"lastModified": 1668765800,
|
||||||
"narHash": "sha256-P+v+nDOFWicM4wziFK9S/ajF2lc0N2Rg9p6Y35uMoZI=",
|
"narHash": "sha256-rC40+/W6Hio7b/RsY8SvQPKNx4WqNcTgfYv8cUMAvJk=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "3bacde6273b09a21a8ccfba15586fb165078fb62",
|
"rev": "52b2ac8ae18bbad4374ff0dd5aeee0fdf1aea739",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -338,6 +378,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"master": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1668785491,
|
||||||
|
"narHash": "sha256-0FfPWQPImgWkIkpCgWAZVtZb28i4t9wxELlfm1x5d08=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "7e853f1d552a6327304339cd6c26d492d2def940",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"naersk": {
|
"naersk": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -358,6 +414,31 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-autobahn": {
|
||||||
|
"inputs": {
|
||||||
|
"fenix": "fenix",
|
||||||
|
"naersk": [
|
||||||
|
"naersk"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"latest"
|
||||||
|
],
|
||||||
|
"utils": "utils_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1655761558,
|
||||||
|
"narHash": "sha256-BGKT0RQGJ1CtTssfPhI4PABV1Gh6Wyq/cf6GN30TUAY=",
|
||||||
|
"owner": "wucke13",
|
||||||
|
"repo": "nix-autobahn",
|
||||||
|
"rev": "85861fdd5cc32b65e75db4e6be478fe2da455dba",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "wucke13",
|
||||||
|
"repo": "nix-autobahn",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixlib": {
|
"nixlib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1636849918,
|
"lastModified": 1636849918,
|
||||||
|
@ -375,11 +456,11 @@
|
||||||
},
|
},
|
||||||
"nixos": {
|
"nixos": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667653703,
|
"lastModified": 1668908668,
|
||||||
"narHash": "sha256-Xow4vx52/g5zkhlgZnMEm/TEXsj+13jTPCc2jIhW1xU=",
|
"narHash": "sha256-oimCE4rY7Btuo/VYmA8khIyTHSMV7qUWTpz9w8yc9LQ=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "f09ad462c5a121d0239fde645aacb2221553a217",
|
"rev": "b68a6a27adb452879ab66c0eaac0c133e32823b2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -395,11 +476,11 @@
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1666812839,
|
"lastModified": 1666016402,
|
||||||
"narHash": "sha256-0nBDgjPU+iDsvz89W+cDEyhnFGSwCJmwDl/gMGqYiU0=",
|
"narHash": "sha256-Cm/nrdUMXwXiFQforG1Mv8OA4o8yhuVx6E1eDFH4rew=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-generators",
|
"repo": "nixos-generators",
|
||||||
"rev": "41f3518bc194389df22a3d198215eae75e6b5ab9",
|
"rev": "688db42a1eb34853f050267ff65c975f664312f0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -410,11 +491,11 @@
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667768008,
|
"lastModified": 1665987993,
|
||||||
"narHash": "sha256-PGbX0s2hhXGnZDFVE6UIhPSOf5YegpWs5dUXpT/14F0=",
|
"narHash": "sha256-MvlaIYTRiqefG4dzI5p6vVCfl+9V8A1cPniUjcn6Ngc=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "f6483e0def85efb9c1e884efbaff45a5e7aabb34",
|
"rev": "0e6593630071440eb89cd97a52921497482b22c6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -455,6 +536,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1643381941,
|
||||||
|
"narHash": "sha256-pHTwvnN4tTsEKkWlXQ8JMY423epos8wUOhthpwJjtpc=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "5efc8ca954272c4376ac929f4c5ffefcc20551d5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 0,
|
"lastModified": 0,
|
||||||
|
@ -467,43 +564,87 @@
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nvfetcher": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_4",
|
|
||||||
"flake-utils": "flake-utils_3",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixos"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1667620329,
|
|
||||||
"narHash": "sha256-v1Zk7rtEbAGpevBGPZvZBKpwbmw4I+uVwxvd+pBlp3o=",
|
|
||||||
"owner": "berberman",
|
|
||||||
"repo": "nvfetcher",
|
|
||||||
"rev": "294826951113dcd3aa9abbcacfb1aa5b95a19116",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "berberman",
|
|
||||||
"repo": "nvfetcher",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
"darwin": "darwin",
|
"darwin": "darwin",
|
||||||
"deploy": "deploy",
|
"deploy": "deploy",
|
||||||
"digga": "digga",
|
"digga": "digga",
|
||||||
"flake-compat": "flake-compat_3",
|
|
||||||
"home": "home",
|
"home": "home",
|
||||||
"latest": "latest_2",
|
"latest": "latest_2",
|
||||||
|
"master": "master",
|
||||||
"naersk": "naersk",
|
"naersk": "naersk",
|
||||||
|
"nix-autobahn": "nix-autobahn",
|
||||||
"nixos": "nixos",
|
"nixos": "nixos",
|
||||||
"nixos-generators": "nixos-generators",
|
"nixos-generators": "nixos-generators",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"nvfetcher": "nvfetcher"
|
"triton-vmtools": "triton-vmtools",
|
||||||
|
"tritonshell": "tritonshell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-analyzer-src": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1655114284,
|
||||||
|
"narHash": "sha256-2yz3TexDtxXMMjYKn1SImavH3Zflkxte6/5ESncu5E4=",
|
||||||
|
"owner": "rust-lang",
|
||||||
|
"repo": "rust-analyzer",
|
||||||
|
"rev": "7db73875ac0d9280ae93b14232249d9c1496583a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rust-lang",
|
||||||
|
"ref": "nightly",
|
||||||
|
"repo": "rust-analyzer",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"triton-vmtools": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_3",
|
||||||
|
"nixpkgs": [
|
||||||
|
"latest"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"dir": "vmtools",
|
||||||
|
"lastModified": 1665580523,
|
||||||
|
"narHash": "sha256-cpe/wE10iXQ7Rnbmpu0i2oUqw306lLs+NKSJ+e+/4Sk=",
|
||||||
|
"ref": "main",
|
||||||
|
"rev": "b6bb5c4f37bf184f2072618b82c51a552eaf8168",
|
||||||
|
"revCount": 26,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.b12f.io/pub-solar/infra?dir=vmtools"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"dir": "vmtools",
|
||||||
|
"ref": "main",
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.b12f.io/pub-solar/infra?dir=vmtools"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tritonshell": {
|
||||||
|
"inputs": {
|
||||||
|
"devshell": "devshell_2",
|
||||||
|
"flake-utils": "flake-utils_5",
|
||||||
|
"nixpkgs": [
|
||||||
|
"latest"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1665580466,
|
||||||
|
"narHash": "sha256-q8kVIE3XaOSCVl7oqkaKs2LDEbBcZRIzlnSG8PIKRQ0=",
|
||||||
|
"ref": "main",
|
||||||
|
"rev": "70d759b6d8b5e076bee6a28255614ab3d75f6763",
|
||||||
|
"revCount": 49,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.greenbaum.cloud/dev/tritonshell"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"ref": "main",
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.greenbaum.cloud/dev/tritonshell"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
|
@ -520,6 +661,21 @@
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"utils_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1653893745,
|
||||||
|
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||||
|
"ref": "master",
|
||||||
|
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||||
|
"revCount": 58,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/numtide/flake-utils"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/numtide/flake-utils"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
59
flake.nix
59
flake.nix
|
@ -10,9 +10,7 @@
|
||||||
# Track channels with commits tested and built by hydra
|
# Track channels with commits tested and built by hydra
|
||||||
nixos.url = "github:nixos/nixpkgs/nixos-22.05";
|
nixos.url = "github:nixos/nixpkgs/nixos-22.05";
|
||||||
latest.url = "github:nixos/nixpkgs/nixos-unstable";
|
latest.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
master.url = "github:nixos/nixpkgs/master";
|
||||||
flake-compat.url = "github:edolstra/flake-compat";
|
|
||||||
flake-compat.flake = false;
|
|
||||||
|
|
||||||
digga.url = "github:pub-solar/digga/fix/bootstrap-iso";
|
digga.url = "github:pub-solar/digga/fix/bootstrap-iso";
|
||||||
digga.inputs.nixpkgs.follows = "nixos";
|
digga.inputs.nixpkgs.follows = "nixos";
|
||||||
|
@ -32,15 +30,23 @@
|
||||||
agenix.url = "github:ryantm/agenix";
|
agenix.url = "github:ryantm/agenix";
|
||||||
agenix.inputs.nixpkgs.follows = "nixos";
|
agenix.inputs.nixpkgs.follows = "nixos";
|
||||||
|
|
||||||
nvfetcher.url = "github:berberman/nvfetcher";
|
|
||||||
nvfetcher.inputs.nixpkgs.follows = "nixos";
|
|
||||||
|
|
||||||
naersk.url = "github:nmattia/naersk";
|
naersk.url = "github:nmattia/naersk";
|
||||||
naersk.inputs.nixpkgs.follows = "nixos";
|
naersk.inputs.nixpkgs.follows = "nixos";
|
||||||
|
|
||||||
nixos-hardware.url = "github:nixos/nixos-hardware";
|
nixos-hardware.url = "github:nixos/nixos-hardware";
|
||||||
|
|
||||||
nixos-generators.url = "github:nix-community/nixos-generators";
|
nixos-generators.url = "github:nix-community/nixos-generators";
|
||||||
|
|
||||||
|
# PubSolarOS additions
|
||||||
|
triton-vmtools.url = "git+https://git.b12f.io/pub-solar/infra?ref=main&dir=vmtools";
|
||||||
|
triton-vmtools.inputs.nixpkgs.follows = "latest";
|
||||||
|
|
||||||
|
tritonshell.url = "git+https://git.greenbaum.cloud/dev/tritonshell?ref=main";
|
||||||
|
tritonshell.inputs.nixpkgs.follows = "latest";
|
||||||
|
|
||||||
|
nix-autobahn.url = "github:wucke13/nix-autobahn";
|
||||||
|
nix-autobahn.inputs.nixpkgs.follows = "latest";
|
||||||
|
nix-autobahn.inputs.naersk.follows = "naersk";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
|
@ -51,8 +57,9 @@
|
||||||
, nixos-hardware
|
, nixos-hardware
|
||||||
, nur
|
, nur
|
||||||
, agenix
|
, agenix
|
||||||
, nvfetcher
|
|
||||||
, deploy
|
, deploy
|
||||||
|
, tritonshell
|
||||||
|
, nix-autobahn
|
||||||
, ...
|
, ...
|
||||||
} @ inputs:
|
} @ inputs:
|
||||||
digga.lib.mkFlake
|
digga.lib.mkFlake
|
||||||
|
@ -60,7 +67,7 @@
|
||||||
inherit self inputs;
|
inherit self inputs;
|
||||||
|
|
||||||
channelsConfig = {
|
channelsConfig = {
|
||||||
# allowUnfree = true;
|
allowUnfree = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
supportedSystems = [ "x86_64-linux" "aarch64-linux" ];
|
supportedSystems = [ "x86_64-linux" "aarch64-linux" ];
|
||||||
|
@ -71,6 +78,7 @@
|
||||||
overlays = [ ];
|
overlays = [ ];
|
||||||
};
|
};
|
||||||
latest = { };
|
latest = { };
|
||||||
|
master = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
lib = import ./lib { lib = digga.lib // nixos.lib; };
|
lib = import ./lib { lib = digga.lib // nixos.lib; };
|
||||||
|
@ -118,6 +126,12 @@
|
||||||
(import ./tests/first-test.nix { pkgs = nixos.legacyPackages.x86_64-linux; lib = nixos.lib; })
|
(import ./tests/first-test.nix { pkgs = nixos.legacyPackages.x86_64-linux; lib = nixos.lib; })
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
fae = {
|
||||||
|
system = "aarch64-linux";
|
||||||
|
};
|
||||||
|
powder = {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
importables = rec {
|
importables = rec {
|
||||||
profiles = digga.lib.rakeLeaves ./profiles // {
|
profiles = digga.lib.rakeLeaves ./profiles // {
|
||||||
|
@ -128,6 +142,9 @@
|
||||||
iso = base ++ [ base-user graphical pub-solar-iso ];
|
iso = base ++ [ base-user graphical pub-solar-iso ];
|
||||||
pubsolaros = [ full-install base-user users.root ];
|
pubsolaros = [ full-install base-user users.root ];
|
||||||
anonymous = [ pubsolaros users.pub-solar ];
|
anonymous = [ pubsolaros users.pub-solar ];
|
||||||
|
teutat3s = pubsolaros ++ [ users.teutat3s ];
|
||||||
|
dumpyourvms = teutat3s ++ [ graphical ];
|
||||||
|
ryzensun = teutat3s ++ [ graphical ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -138,11 +155,12 @@
|
||||||
importables = rec {
|
importables = rec {
|
||||||
profiles = digga.lib.rakeLeaves ./users/profiles;
|
profiles = digga.lib.rakeLeaves ./users/profiles;
|
||||||
suites = with profiles; rec {
|
suites = with profiles; rec {
|
||||||
base = [ direnv git ];
|
base = [ direnv ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
users = {
|
users = {
|
||||||
pub-solar = { suites, ... }: { imports = suites.base; };
|
pub-solar = { suites, ... }: { imports = suites.base; };
|
||||||
|
teutat3s = { suites, ... }: { imports = suites.base; };
|
||||||
}; # digga.lib.importers.rakeLeaves ./users/hm;
|
}; # digga.lib.importers.rakeLeaves ./users/hm;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -150,6 +168,27 @@
|
||||||
|
|
||||||
homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations;
|
homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations;
|
||||||
|
|
||||||
deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations { };
|
deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations {
|
||||||
|
fae = {
|
||||||
|
hostname = "fae.fritz.box:22";
|
||||||
|
sshUser = "pub-solar";
|
||||||
|
fastConnect = true;
|
||||||
|
profilesOrder = [ "system" "direnv" ];
|
||||||
|
profiles.direnv = {
|
||||||
|
user = "pub-solar";
|
||||||
|
path = deploy.lib.x86_64-linux.activate.home-manager self.homeConfigurationsPortable.x86_64-linux.pub-solar;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
powder = {
|
||||||
|
hostname = "80.71.153.194";
|
||||||
|
sshUser = "root";
|
||||||
|
profilesOrder = [ "system" "direnv" ];
|
||||||
|
profiles.direnv = {
|
||||||
|
user = "pub-solar";
|
||||||
|
path = deploy.lib.x86_64-linux.activate.home-manager self.homeConfigurationsPortable.x86_64-linux.pub-solar;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
14
hosts/dumpyourvms/.config/sway/config.d/applications.conf
Normal file
14
hosts/dumpyourvms/.config/sway/config.d/applications.conf
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
assign [app_id="firefox"] $ws2
|
||||||
|
|
||||||
|
# seahorse
|
||||||
|
for_window [title="seahorse"] floating enabled
|
||||||
|
|
||||||
|
# NetworkManager
|
||||||
|
for_window [app_id="nm-connection-editor"] floating enabled
|
||||||
|
|
||||||
|
# thunderbird
|
||||||
|
for_window [title="New Task:*"] floating enabled
|
||||||
|
for_window [title="Edit Task:*"] floating enabled
|
||||||
|
for_window [title="New Event:*"] floating enabled
|
||||||
|
for_window [title="Edit Event:*"] floating enabled
|
||||||
|
|
6
hosts/dumpyourvms/.config/sway/config.d/autostart.conf
Normal file
6
hosts/dumpyourvms/.config/sway/config.d/autostart.conf
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Autostart applications
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# exec swayidle
|
||||||
|
|
||||||
|
exec qMasterPassword
|
|
@ -0,0 +1,3 @@
|
||||||
|
# switch keyboard input language
|
||||||
|
bindsym $mod+tab exec swaymsg input "1452:628:Apple_Inc._Apple_Internal_Keyboard_/_Trackpad" xkb_switch_layout next
|
||||||
|
|
35
hosts/dumpyourvms/.config/sway/config.d/input-defaults.conf
Normal file
35
hosts/dumpyourvms/.config/sway/config.d/input-defaults.conf
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
### Input configuration
|
||||||
|
#
|
||||||
|
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||||
|
# Read `man 5 sway-input` for more information about this section.
|
||||||
|
|
||||||
|
input "type:keyboard" {
|
||||||
|
xkb_layout us(intl),de
|
||||||
|
xkb_model pc105
|
||||||
|
xkb_options ctrl:nocaps
|
||||||
|
}
|
||||||
|
|
||||||
|
input "type:touchpad" {
|
||||||
|
tap enabled
|
||||||
|
natural_scroll enabled
|
||||||
|
}
|
||||||
|
|
||||||
|
# Touchpad controls
|
||||||
|
#bindsym XF86TouchpadToggle exec $HOME/Workspace/ben/toggletouchpad.sh # toggle touchpad
|
||||||
|
|
||||||
|
# Screen brightness controls
|
||||||
|
bindsym XF86MonBrightnessUp exec "brightnessctl -d gmux_backlight set +10%"
|
||||||
|
bindsym XF86MonBrightnessDown exec "brightnessctl -d gmux_backlight set 10%-"
|
||||||
|
|
||||||
|
# Keyboard backlight brightness controls
|
||||||
|
bindsym XF86KbdBrightnessDown exec "brightnessctl -d smc::kbd_backlight set 10%-"
|
||||||
|
bindsym XF86KbdBrightnessUp exec "brightnessctl -d smc::kbd_backlight set +10%"
|
||||||
|
|
||||||
|
# Pulse Audio controls
|
||||||
|
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%; exec pactl set-sink-mute @DEFAULT_SINK@ 0 #increase sound volume
|
||||||
|
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%; exec pactl set-sink-mute @DEFAULT_SINK@ 0 #decrease sound volume
|
||||||
|
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle # mute sound
|
||||||
|
# Media player controls
|
||||||
|
bindsym XF86AudioPlay exec "playerctl play-pause; notify-send 'Play/Pause'"
|
||||||
|
bindsym XF86AudioNext exec "playerctl next; notify-send 'Next'"
|
||||||
|
bindsym XF86AudioPrev exec "playerctl previous; notify-send 'Prev.'"
|
41
hosts/dumpyourvms/.config/sway/config.d/screens.conf
Normal file
41
hosts/dumpyourvms/.config/sway/config.d/screens.conf
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
### Output configuration
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||||
|
#
|
||||||
|
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||||
|
|
||||||
|
set $main_screen eDP-1
|
||||||
|
set $displayport DP-1
|
||||||
|
set $hmdi HDMI-A-1
|
||||||
|
|
||||||
|
output $main_screen scale 2
|
||||||
|
output $displayport scale 2
|
||||||
|
output $hdmi scale 1
|
||||||
|
|
||||||
|
output $main_screen pos 0 0
|
||||||
|
output $displayport pos 0 -1080
|
||||||
|
output $hdmi pos 1440 0
|
||||||
|
|
||||||
|
#bindswitch lid:on output $main_screen disable
|
||||||
|
#bindswitch lid:off output $main_screen enable
|
||||||
|
bindsym $mod+Shift+x output $main_screen toggle
|
||||||
|
|
||||||
|
# TODO when using more monitors
|
||||||
|
## Manual management of external displays
|
||||||
|
# Set the shortcuts and what they do
|
||||||
|
#set $mode_display HDMI (i) top, (j) left, (k) bottom, (l) right, (o) off
|
||||||
|
#mode "$mode_display" {
|
||||||
|
# bindsym i output HDMI-A-1 enable; output HDMI-A-1 pos 0 0 bg ~/Pictures/wallpapers/active.png fill; output eDP-1 pos 0 1080, mode "default"
|
||||||
|
# bindsym j output HDMI-A-1 enable; output HDMI-A-1 pos 0 0 bg ~/Pictures/wallpapers/active.png fill; output eDP-1 pos 1920 0, mode "default"
|
||||||
|
# bindsym k output HDMI-A-1 enable; output HDMI-A-1 pos 0 900 bg ~/Pictures/wallpapers/active.png fill; output eDP-1 pos 0 0, mode "default"
|
||||||
|
# bindsym l output HDMI-A-1 enable; output HDMI-A-1 pos 1440 0 bg ~/Pictures/wallpapers/active.png fill; output eDP-1 pos 0 0, mode "default"
|
||||||
|
# bindsym o output HDMI-A-1 disable, mode "default"
|
||||||
|
#
|
||||||
|
# # back to normal: Enter or Escape
|
||||||
|
# bindsym Return mode "default"
|
||||||
|
# bindsym Escape mode "default"
|
||||||
|
#}
|
||||||
|
## Declare here the shortcut to bring the display selection menu
|
||||||
|
#bindsym $mod+x mode "$mode_display"
|
21
hosts/dumpyourvms/consul-agent-ca.pem
Normal file
21
hosts/dumpyourvms/consul-agent-ca.pem
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDbzCCAxSgAwIBAgIRAMK20/fFF0YVThq8xm/YvBswCgYIKoZIzj0EAwIwgbkx
|
||||||
|
CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj
|
||||||
|
bzEaMBgGA1UECRMRMTAxIFNlY29uZCBTdHJlZXQxDjAMBgNVBBETBTk0MTA1MRcw
|
||||||
|
FQYDVQQKEw5IYXNoaUNvcnAgSW5jLjFAMD4GA1UEAxM3Q29uc3VsIEFnZW50IENB
|
||||||
|
IDI1ODgxOTUyODQyOTMwNjIxMjY4NDgwMTUxODE3OTM2NjUxNzc4NzAeFw0xOTEx
|
||||||
|
MDYwMDI3MzVaFw0yNDExMDQwMDI3MzVaMIG5MQswCQYDVQQGEwJVUzELMAkGA1UE
|
||||||
|
CBMCQ0ExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xGjAYBgNVBAkTETEwMSBTZWNv
|
||||||
|
bmQgU3RyZWV0MQ4wDAYDVQQREwU5NDEwNTEXMBUGA1UEChMOSGFzaGlDb3JwIElu
|
||||||
|
Yy4xQDA+BgNVBAMTN0NvbnN1bCBBZ2VudCBDQSAyNTg4MTk1Mjg0MjkzMDYyMTI2
|
||||||
|
ODQ4MDE1MTgxNzkzNjY1MTc3ODcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQE
|
||||||
|
SZ2kc9rKUNX3czze+rFR/bZdLx3JEYrpcSXKkpv1wr68E1Jqhi/8Dm8b62Ei/Bc6
|
||||||
|
ZhoJvtB2Shtl+6LbjccUo4H6MIH3MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8E
|
||||||
|
BTADAQH/MGgGA1UdDgRhBF9hZjo4MzoyZTpiOToyZTozMzo5MDplOTpkMjpiNzpj
|
||||||
|
NjpjYzpkYToxODoyYTphNzpjMzo5ZTozMTpmNTpkZTo4Mzo4YzozMDo0Mjo3OTo4
|
||||||
|
ZDo0ZDpmZDozMjo2NzpiYjBqBgNVHSMEYzBhgF9hZjo4MzoyZTpiOToyZTozMzo5
|
||||||
|
MDplOTpkMjpiNzpjNjpjYzpkYToxODoyYTphNzpjMzo5ZTozMTpmNTpkZTo4Mzo4
|
||||||
|
YzozMDo0Mjo3OTo4ZDo0ZDpmZDozMjo2NzpiYjAKBggqhkjOPQQDAgNJADBGAiEA
|
||||||
|
zKCV25P6HqFEa1iUVQnsNAp/WHUwxNlR0OctZSdiuIkCIQDiRK03ZYSK/hmY9kXV
|
||||||
|
42nj6kO8MexfiYN4IE4URmzYnA==
|
||||||
|
-----END CERTIFICATE-----
|
6
hosts/dumpyourvms/default.nix
Normal file
6
hosts/dumpyourvms/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{ suites, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./dumpyourvms.nix
|
||||||
|
] ++ suites.dumpyourvms;
|
||||||
|
}
|
159
hosts/dumpyourvms/dumpyourvms.nix
Normal file
159
hosts/dumpyourvms/dumpyourvms.nix
Normal file
|
@ -0,0 +1,159 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
self,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
psCfg = config.pub-solar;
|
||||||
|
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
age.secrets.environment-secrets = {
|
||||||
|
file = "${self}/secrets/environment-secrets.age";
|
||||||
|
mode = "700";
|
||||||
|
owner = "teutat3s";
|
||||||
|
};
|
||||||
|
|
||||||
|
pub-solar = {
|
||||||
|
audio.mopidy.enable = lib.mkForce false;
|
||||||
|
core.hibernation = {
|
||||||
|
enable = true;
|
||||||
|
resumeDevice = "/dev/mapper/cryptroot";
|
||||||
|
resumeOffset = 47366144;
|
||||||
|
};
|
||||||
|
virtualisation.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# fix backlight for keyboard and brightness, adjust function key binding,
|
||||||
|
# intel_pstate for cpu schedutil, resume offset for swapfile, disable amdgpu driver
|
||||||
|
boot.kernelParams = ["acpi_backlight=video" "hid_apple.fnmode=2" "intel_pstate=passive"];
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
#boot.resumeDevice = "/dev/mapper/cryptroot";
|
||||||
|
|
||||||
|
# fix for Error switching console mode to 1: unsupported on startup
|
||||||
|
boot.loader.systemd-boot.consoleMode = mkForce "0";
|
||||||
|
|
||||||
|
boot.binfmt.emulatedSystems = ["aarch64-linux"];
|
||||||
|
|
||||||
|
systemd.sleep.extraConfig = ''
|
||||||
|
HibernateMode=shutdown
|
||||||
|
'';
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
cpu.intel.updateMicrocode = true;
|
||||||
|
facetimehd.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.resolved = {
|
||||||
|
enable = true;
|
||||||
|
# DNSSEC=false because of random SERVFAIL responses with Greenbaum DNS
|
||||||
|
# when using allow-downgrade, see https://github.com/systemd/systemd/issues/10579
|
||||||
|
extraConfig = ''
|
||||||
|
DNS=5.1.66.255#dot.ffmuc.net 185.150.99.255#dot.ffmuc.net 5.9.164.112#dns3.digitalcourage.de 89.233.43.71#unicast.censurfridns.dk 94.130.110.185#ns1.dnsprivacy.at 145.100.185.15#dnsovertls.sinodun.com 145.100.185.16#dnsovertls1.sinodun.com 185.49.141.37#getdnsapi.net 2001:678:e68:f000::#dot.ffmuc.net 2001:678:ed0:f000::#dot.ffmuc.net 2a01:4f8:251:554::2#dns3.digitalcourage.de 2a01:3a0:53:53::0#unicast.censurfridns.dk 2a01:4f8:c0c:3c03::2#ns1.dnsprivacy.at 2a01:4f8:c0c:3bfc::2#ns2.dnsprivacy.at 2001:610:1:40ba:145:100:185:15#dnsovertls.sinodun.com 2001:610:1:40ba:145:100:185:16#dnsovertls1.sinodun.com 2a04:b900:0:100::38#getdnsapi.net
|
||||||
|
FallbackDNS=9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net 2620:fe::fe#dns.quad9.net 2620:fe::9#dns.quad9.net
|
||||||
|
Domains=~.
|
||||||
|
DNSOverTLS=yes
|
||||||
|
DNSSEC=false
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
services.mozillavpn.enable = true;
|
||||||
|
networking = import ./networking.nix;
|
||||||
|
|
||||||
|
security.pki.certificateFiles = [./consul-agent-ca.pem];
|
||||||
|
|
||||||
|
services.unbound = import ./unbound.nix;
|
||||||
|
|
||||||
|
# Disable dedicated GPU, use integrated Intel GPU to save battery
|
||||||
|
# Set default brightness to 50%
|
||||||
|
# https://ubuntuforums.org/showthread.php?t=2409856
|
||||||
|
services.cron.systemCronJobs = [
|
||||||
|
"@reboot root ${pkgs.util-linux}/bin/rfkill block bluetooth"
|
||||||
|
"@reboot root ${pkgs.coreutils}/bin/sleep 10; ${pkgs.coreutils}/bin/echo OFF > /sys/kernel/debug/vgaswitcheroo/switch"
|
||||||
|
"@reboot root ${pkgs.coreutils}/bin/sleep 11; ${pkgs.coreutils}/bin/echo 510 > /sys/class/backlight/gmux_backlight/brightness"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Increase console font size for HiDPI display
|
||||||
|
console = {
|
||||||
|
earlySetup = true;
|
||||||
|
font = lib.mkForce "ter-i32b";
|
||||||
|
packages = [pkgs.terminus_font];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Thunderbolt tools
|
||||||
|
services.hardware.bolt.enable = true;
|
||||||
|
|
||||||
|
powerManagement = {
|
||||||
|
# Use new schedutil govenor
|
||||||
|
# https://github.com/NixOS/nixpkgs/pull/42330
|
||||||
|
# https://www.kernel.org/doc/html/v5.10/admin-guide/pm/cpufreq.html#schedutil
|
||||||
|
cpuFreqGovernor = lib.mkDefault "schedutil";
|
||||||
|
|
||||||
|
# brcmfmac being loaded during hibernation would inhibit a successful resume
|
||||||
|
# https://bugzilla.kernel.org/show_bug.cgi?id=101681#c116.
|
||||||
|
# Also brcmfmac could randomly crash on resume from sleep.
|
||||||
|
powerUpCommands = lib.mkBefore "${pkgs.kmod}/bin/modprobe brcmfmac";
|
||||||
|
powerDownCommands = lib.mkBefore "${pkgs.kmod}/bin/rmmod brcmfmac";
|
||||||
|
};
|
||||||
|
|
||||||
|
# change lid switch behaviour
|
||||||
|
#services.logind.lidSwitch = "hibernate";
|
||||||
|
|
||||||
|
# TLP for power management
|
||||||
|
services.tlp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||||
|
CPU_SCALING_GOVERNOR_ON_BAT = "schedutil";
|
||||||
|
CPU_BOOST_ON_AC = 1;
|
||||||
|
CPU_BOOST_ON_BAT = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.udev.extraRules =
|
||||||
|
# Disable XHC1 wakeup signal to avoid resume getting triggered some time
|
||||||
|
# after suspend. Reboot required for this to take effect.
|
||||||
|
lib.optionalString
|
||||||
|
(lib.versionAtLeast config.boot.kernelPackages.kernel.version "3.13")
|
||||||
|
''SUBSYSTEM=="pci", KERNEL=="0000:00:14.0", ATTR{power/wakeup}="disabled"'';
|
||||||
|
|
||||||
|
services.printing.enable = true;
|
||||||
|
services.printing.drivers = [pkgs.brlaser];
|
||||||
|
|
||||||
|
home-manager = pkgs.lib.setAttrByPath ["users" psCfg.user.name] {
|
||||||
|
# Custom device sway configs
|
||||||
|
xdg.configFile = mkIf psCfg.sway.enable {
|
||||||
|
"sway/config.d/10-applications.conf".source = ./.config/sway/config.d/applications.conf;
|
||||||
|
"sway/config.d/autostart.conf".source = ./.config/sway/config.d/autostart.conf;
|
||||||
|
"sway/config.d/10-custom-keybindings.conf".source = ./.config/sway/config.d/custom-keybindings.conf;
|
||||||
|
"sway/config.d/input-defaults.conf".source = ./.config/sway/config.d/input-defaults.conf;
|
||||||
|
"sway/config.d/screens.conf".source = ./.config/sway/config.d/screens.conf;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.teutat3s = {
|
||||||
|
extraGroups = ["unbound"];
|
||||||
|
};
|
||||||
|
|
||||||
|
# WLAN frequency compliance (e.g. check for radar with DFS)
|
||||||
|
#
|
||||||
|
# Radeon driver seems to work better than amdgpu with Radeon R9 M370X
|
||||||
|
hardware.firmware = with pkgs; [wireless-regdb];
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
options cfg80211 ieee80211_regdom="DE"
|
||||||
|
'';
|
||||||
|
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "21.05"; # Did you read the comment?
|
||||||
|
};
|
||||||
|
}
|
41
hosts/dumpyourvms/hardware-configuration.nix
Normal file
41
hosts/dumpyourvms/hardware-configuration.nix
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
#(modulesPath + "/hardware/network/broadcom-43xx.nix")
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-uuid/17bbb016-d27c-47da-8805-58c6395891e8";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/c100b9a7-99d7-44d9-b7c2-3892a5f233c4";
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-uuid/06B8-5414";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{
|
||||||
|
device = "/swapfile";
|
||||||
|
size = 18432;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# high-resolution display
|
||||||
|
hardware.video.hidpi.enable = lib.mkDefault true;
|
||||||
|
}
|
88
hosts/dumpyourvms/networking.nix
Normal file
88
hosts/dumpyourvms/networking.nix
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
{
|
||||||
|
networkmanager.dns = "systemd-resolved";
|
||||||
|
#resolvconf.enable = true;
|
||||||
|
|
||||||
|
hosts = {
|
||||||
|
"10.0.0.42" = [ "nomad.service.consul" "nomad.service.cgn-1.consul" ];
|
||||||
|
"10.0.0.66" = [ "consul.service.cgn-1.consul" ];
|
||||||
|
"10.0.1.9" = [ "consul.service.lev-1.consul" ];
|
||||||
|
"10.0.0.70" = [ "vault.service.consul" "vault.service.cgn-1.consul" ];
|
||||||
|
"10.0.0.200" = [ "headnode.cgn-1" ];
|
||||||
|
"10.0.0.201" = [ "cn01.cgn-1" ];
|
||||||
|
"10.0.0.202" = [ "cn02.cgn-1" ];
|
||||||
|
"10.0.0.205" = [ "cn05.cgn-1" ];
|
||||||
|
"10.0.0.206" = [ "cn06.cgn-1" ];
|
||||||
|
"10.0.0.207" = [ "cn07.cgn-1" ];
|
||||||
|
"10.0.0.208" = [ "cn08.cgn-1" ];
|
||||||
|
"10.0.1.200" = [ "headnode.lev-1" ];
|
||||||
|
"10.0.1.201" = [ "cn01.lev-1" ];
|
||||||
|
"10.0.1.202" = [ "cn02.lev-1" ];
|
||||||
|
"10.0.1.203" = [ "cn03.lev-1" ];
|
||||||
|
"10.0.1.204" = [ "cn04.lev-1" ];
|
||||||
|
"10.0.1.205" = [ "cn05.lev-1" ];
|
||||||
|
"10.0.1.206" = [ "cn00.lev-1" ];
|
||||||
|
"10.0.1.207" = [ "cn06.lev-1" ];
|
||||||
|
"10.0.1.208" = [ "cn07.lev-1" ];
|
||||||
|
"10.101.64.10" = [ "wifi.bahn.de" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
wireguard.enable = true;
|
||||||
|
wg-quick.interfaces = {
|
||||||
|
wg0 = {
|
||||||
|
address = [ "10.8.8.6/32" ];
|
||||||
|
privateKeyFile = "/etc/wireguard/wg0.privatekey";
|
||||||
|
|
||||||
|
peers = [
|
||||||
|
{
|
||||||
|
publicKey = "l0DJLicCrcrixNP6zAWTXNSEaNM2jML253BXEZ1KpiU=";
|
||||||
|
allowedIPs = [ "10.8.8.16/32" "10.0.0.0/24" "10.88.88.0/24" ];
|
||||||
|
endpoint = "85.88.23.16:51820";
|
||||||
|
persistentKeepalive = 25;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
wg1 = {
|
||||||
|
address = [ "10.13.0.1/32" ];
|
||||||
|
privateKeyFile = "/etc/wireguard/wg1.privatekey";
|
||||||
|
mtu = 1412;
|
||||||
|
|
||||||
|
peers = [
|
||||||
|
{
|
||||||
|
publicKey = "XS3TTIMU7Jp3JJANBpE14RsVDJk6/VUvZgjQgQP8kAs=";
|
||||||
|
allowedIPs = [ "10.13.0.100/32" "192.168.188.0/24" ];
|
||||||
|
endpoint = "[2a00:6020:48ad:dd00:dea6:32ff:fe85:3306]:51820";
|
||||||
|
persistentKeepalive = 25;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
wg2 = {
|
||||||
|
address = [ "10.6.6.4/32" ];
|
||||||
|
privateKeyFile = "/etc/wireguard/wg2.privatekey";
|
||||||
|
|
||||||
|
peers = [
|
||||||
|
{
|
||||||
|
publicKey = "nYMmaCIW8lZ7SokivN8HXxYDch+SS1G7ab1SC9meDAw=";
|
||||||
|
presharedKeyFile = "/etc/wireguard/wg2.presharedkey";
|
||||||
|
allowedIPs = [ "10.6.6.1/32" "10.1.1.0/24" ];
|
||||||
|
endpoint = "85.88.23.127:51820";
|
||||||
|
persistentKeepalive = 16;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
wg3 = {
|
||||||
|
address = [ "10.11.11.2/32" ];
|
||||||
|
privateKeyFile = "/etc/wireguard/wg3.privatekey";
|
||||||
|
mtu = 1300;
|
||||||
|
|
||||||
|
peers = [
|
||||||
|
{
|
||||||
|
publicKey = "7RRgfZSneqAtAHBeI6+aaYLqz9e1jikg/lIK8mhW928=";
|
||||||
|
presharedKeyFile = "/etc/wireguard/wg3.presharedkey";
|
||||||
|
allowedIPs = [ "10.11.11.1/32" "192.168.1.0/24" "10.0.1.0/24" ];
|
||||||
|
endpoint = "80.71.153.1:51820";
|
||||||
|
persistentKeepalive = 16;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
52
hosts/dumpyourvms/unbound.nix
Normal file
52
hosts/dumpyourvms/unbound.nix
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
enable = false;
|
||||||
|
localControlSocketPath = "/run/unbound/unbound.ctl";
|
||||||
|
settings = {
|
||||||
|
server = {
|
||||||
|
cache-max-ttl = 14400;
|
||||||
|
cache-min-ttl = 1200;
|
||||||
|
aggressive-nsec = true;
|
||||||
|
prefetch = false;
|
||||||
|
rrset-roundrobin = true;
|
||||||
|
use-caps-for-id = true;
|
||||||
|
do-ip6 = false;
|
||||||
|
hide-identity = true;
|
||||||
|
hide-version = true;
|
||||||
|
do-not-query-localhost = false;
|
||||||
|
tls-cert-bundle = "/etc/ssl/certs/ca-certificates.crt";
|
||||||
|
};
|
||||||
|
|
||||||
|
# fritz.box stub zone
|
||||||
|
stub-zone = {
|
||||||
|
name = "fritz.box";
|
||||||
|
stub-addr = "192.168.13.1";
|
||||||
|
};
|
||||||
|
|
||||||
|
# DNS over DLS forwarding
|
||||||
|
forward-zone = {
|
||||||
|
name = ".";
|
||||||
|
forward-tls-upstream = true;
|
||||||
|
|
||||||
|
forward-addr = [
|
||||||
|
"5.1.66.255@853#dot.ffmuc.net"
|
||||||
|
"185.150.99.255@853#dot.ffmuc.net"
|
||||||
|
"89.233.43.71@853#unicast.censurfridns.dk"
|
||||||
|
"94.130.110.185@853#ns1.dnsprivacy.at"
|
||||||
|
|
||||||
|
"2001:678:e68:f000::@853#dot.ffmuc.net"
|
||||||
|
"2001:678:ed0:f000::@853#dot.ffmuc.net"
|
||||||
|
"2a01:3a0:53:53::0@853#unicast.censurfridns.dk"
|
||||||
|
"2a01:4f8:c0c:3c03::2@853#ns1.dnsprivacy.at"
|
||||||
|
"2a01:4f8:c0c:3bfc::2@853#ns2.dnsprivacy.at"
|
||||||
|
|
||||||
|
"2001:610:1:40ba:145:100:185:15@853#dnsovertls.sinodun.com"
|
||||||
|
"2001:610:1:40ba:145:100:185:16@853#dnsovertls1.sinodun.com"
|
||||||
|
"2a04:b900:0:100::38@853#getdnsapi.net"
|
||||||
|
|
||||||
|
"145.100.185.15@853#dnsovertls.sinodun.com"
|
||||||
|
"145.100.185.16@853#dnsovertls1.sinodun.com"
|
||||||
|
"185.49.141.37@853#getdnsapi.net"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
93
hosts/fae.nix
Normal file
93
hosts/fae.nix
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
{ config, lib, pkgs, profiles, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# profiles.networking
|
||||||
|
#profiles.core
|
||||||
|
"${fetchTarball {
|
||||||
|
url = "https://github.com/NixOS/nixos-hardware/archive/8f1bf828d8606fe38a02df312cf14546ae200a72.tar.gz";
|
||||||
|
sha256 = "11milap153g3f63fcrcv4777vd64f7wlfkk9p3kpxi6dqd2sxvh4";
|
||||||
|
}
|
||||||
|
}/raspberry-pi/4"
|
||||||
|
profiles.users.root # make sure to configure ssh keys
|
||||||
|
profiles.users.pub-solar
|
||||||
|
profiles.base-user
|
||||||
|
profiles.pub-solar-iso
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
pub-solar.core.iso-options.enable = true;
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
device = "/dev/disk/by-label/NIXOS_SD";
|
||||||
|
fsType = "ext4";
|
||||||
|
options = [ "noatime" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
(kodi-gbm.withPackages (p: with p; [ jellyfin netflix youtube ]))
|
||||||
|
];
|
||||||
|
|
||||||
|
services.openssh.enable = true;
|
||||||
|
|
||||||
|
networking.firewall = {
|
||||||
|
allowedTCPPorts = [ 8080 ];
|
||||||
|
allowedUDPPorts = [ 8080 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
security.sudo.extraConfig = lib.mkAfter ''
|
||||||
|
%wheel ALL=(ALL) NOPASSWD:ALL
|
||||||
|
'';
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
autoOptimiseStore = true;
|
||||||
|
|
||||||
|
gc.automatic = true;
|
||||||
|
|
||||||
|
optimise.automatic = true;
|
||||||
|
|
||||||
|
useSandbox = true;
|
||||||
|
|
||||||
|
allowedUsers = [ "@wheel" ];
|
||||||
|
|
||||||
|
trustedUsers = [ "root" "@wheel" ];
|
||||||
|
|
||||||
|
extraOptions = ''
|
||||||
|
min-free = 536870912
|
||||||
|
keep-outputs = true
|
||||||
|
keep-derivations = true
|
||||||
|
fallback = true
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable GPU acceleration
|
||||||
|
hardware.raspberry-pi."4".fkms-3d.enable = true;
|
||||||
|
|
||||||
|
# Define a user account for kodi
|
||||||
|
users.extraUsers.kodi.isNormalUser = true;
|
||||||
|
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
desktopManager.kodi.enable = true;
|
||||||
|
desktopManager.kodi.package = pkgs.kodi-gbm;
|
||||||
|
displayManager = {
|
||||||
|
autoLogin.enable = true;
|
||||||
|
autoLogin.user = "kodi";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.pulseaudio.enable = true;
|
||||||
|
|
||||||
|
# custom raspi boot loader is already present
|
||||||
|
boot.loader.systemd-boot.enable = lib.mkForce false;
|
||||||
|
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "21.05"; # Did you read the comment?
|
||||||
|
};
|
||||||
|
}
|
6
hosts/powder/default.nix
Normal file
6
hosts/powder/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./powder.nix
|
||||||
|
];
|
||||||
|
}
|
39
hosts/powder/hardware-configuration.nix
Normal file
39
hosts/powder/hardware-configuration.nix
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ ];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "ahci" "virtio_pci" "xhci_pci" "sr_mod" "virtio_blk" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-label/nixos";
|
||||||
|
autoResize = true;
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-label/boot";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/data" =
|
||||||
|
{ device = "/dev/disk/by-label/ephemeral0";
|
||||||
|
fsType = "ext4";
|
||||||
|
options = [
|
||||||
|
"defaults"
|
||||||
|
"nofail"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
networking.useDHCP = lib.mkDefault false;
|
||||||
|
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
83
hosts/powder/powder.nix
Normal file
83
hosts/powder/powder.nix
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
{ config, inputs, lib, pkgs, profiles, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
|
||||||
|
profiles.users.root # make sure to configure ssh keys
|
||||||
|
profiles.users.pub-solar
|
||||||
|
profiles.base-user
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
pub-solar.core.iso-options.enable = true;
|
||||||
|
|
||||||
|
# Use the systemd-boot EFI boot loader.
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
# Force getting the hostname from cloud-init
|
||||||
|
networking.hostName = lib.mkDefault "";
|
||||||
|
|
||||||
|
# Set your time zone.
|
||||||
|
# time.timeZone = "Europe/Amsterdam";
|
||||||
|
|
||||||
|
# Select internationalisation properties.
|
||||||
|
console = {
|
||||||
|
font = "Lat2-Terminus16";
|
||||||
|
keyMap = "us";
|
||||||
|
};
|
||||||
|
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
git
|
||||||
|
vim
|
||||||
|
wget
|
||||||
|
caddy
|
||||||
|
# triton tools for retrieving metadata inside zones, e.g. mdata-get
|
||||||
|
inputs.triton-vmtools
|
||||||
|
];
|
||||||
|
|
||||||
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
|
# started in user sessions.
|
||||||
|
# programs.mtr.enable = true;
|
||||||
|
# programs.gnupg.agent = {
|
||||||
|
# enable = true;
|
||||||
|
# enableSSHSupport = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# List services that you want to enable:
|
||||||
|
services.cloud-init.enable = true;
|
||||||
|
services.cloud-init.ext4.enable = true;
|
||||||
|
services.cloud-init.network.enable = true;
|
||||||
|
# use the default NixOS cloud-init config, but add some SmartOS customization to it
|
||||||
|
environment.etc."cloud/cloud.cfg.d/90_smartos.cfg".text = ''
|
||||||
|
datasource_list: [ SmartOS ]
|
||||||
|
|
||||||
|
# Do not create the centos/ubuntu/debian user
|
||||||
|
users: [ ]
|
||||||
|
|
||||||
|
# mount second disk with label ephemeral0, gets formated by cloud-init
|
||||||
|
# this will fail to get added to /etc/fstab as it's read-only, but should
|
||||||
|
# mount at boot anyway
|
||||||
|
mounts:
|
||||||
|
- [ vdb, /data, auto, "defaults,nofail" ]
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Enable the OpenSSH daemon.
|
||||||
|
services.openssh.enable = true;
|
||||||
|
|
||||||
|
# Triton manages firewall rules via the triton fwrule subcommand
|
||||||
|
networking.firewall.enable = false;
|
||||||
|
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "22.05"; # Did you read the comment?
|
||||||
|
};
|
||||||
|
}
|
6
hosts/ryzensun/.config/sway/config.d/autostart.conf
Normal file
6
hosts/ryzensun/.config/sway/config.d/autostart.conf
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Autostart applications
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# exec swayidle
|
||||||
|
|
||||||
|
exec qMasterPassword
|
|
@ -0,0 +1,2 @@
|
||||||
|
# switch keyboard input language
|
||||||
|
bindsym $mod+tab exec swaymsg input "1118:1896:Microsoft_Microsoft___SiderWinderTM_X4_Keyboard_Consumer_Control" xkb_switch_layout next
|
33
hosts/ryzensun/.config/sway/config.d/input-defaults.conf
Normal file
33
hosts/ryzensun/.config/sway/config.d/input-defaults.conf
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
### Input configuration
|
||||||
|
#
|
||||||
|
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||||
|
# Read `man 5 sway-input` for more information about this section.
|
||||||
|
|
||||||
|
input "type:keyboard" {
|
||||||
|
xkb_layout us(intl),de
|
||||||
|
xkb_options ctrl:nocaps
|
||||||
|
}
|
||||||
|
|
||||||
|
input "type:touchpad" {
|
||||||
|
natural_scroll enabled
|
||||||
|
}
|
||||||
|
|
||||||
|
# Touchpad controls
|
||||||
|
#bindsym XF86TouchpadToggle exec $HOME/Workspace/ben/toggletouchpad.sh # toggle touchpad
|
||||||
|
|
||||||
|
# Screen brightness controls
|
||||||
|
bindsym XF86MonBrightnessUp exec "brightnessctl -d intel_backlight set +10%"
|
||||||
|
bindsym XF86MonBrightnessDown exec "brightnessctl -d intel_backlight set 10%-"
|
||||||
|
|
||||||
|
# Keyboard backlight brightness controls
|
||||||
|
bindsym XF86KbdBrightnessDown exec "brightnessctl -d smc::kbd_backlight set 10%-"
|
||||||
|
bindsym XF86KbdBrightnessUp exec "brightnessctl -d smc::kbd_backlight set +10%"
|
||||||
|
|
||||||
|
# Pulse Audio controls
|
||||||
|
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%; exec pactl set-sink-mute @DEFAULT_SINK@ 0 #increase sound volume
|
||||||
|
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%; exec pactl set-sink-mute @DEFAULT_SINK@ 0 #decrease sound volume
|
||||||
|
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle # mute sound
|
||||||
|
# Media player controls
|
||||||
|
bindsym XF86AudioPlay exec "playerctl play-pause; notify-send 'Play/Pause'"
|
||||||
|
bindsym XF86AudioNext exec "playerctl next; notify-send 'Next'"
|
||||||
|
bindsym XF86AudioPrev exec "playerctl previous; notify-send 'Prev.'"
|
33
hosts/ryzensun/.config/sway/config.d/screens.conf
Normal file
33
hosts/ryzensun/.config/sway/config.d/screens.conf
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
### Output configuration
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||||
|
#
|
||||||
|
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||||
|
|
||||||
|
set $main_screen HDMI-A-1
|
||||||
|
|
||||||
|
output $main_screen scale 2
|
||||||
|
|
||||||
|
#bindswitch lid:on output $main_screen disable
|
||||||
|
#bindswitch lid:off output $main_screen enable
|
||||||
|
bindsym $mod+Shift+x output $main_screen toggle
|
||||||
|
|
||||||
|
# TODO when using more monitors
|
||||||
|
## Manual management of external displays
|
||||||
|
# Set the shortcuts and what they do
|
||||||
|
#set $mode_display HDMI (i) top, (j) left, (k) bottom, (l) right, (o) off
|
||||||
|
#mode "$mode_display" {
|
||||||
|
# bindsym i output HDMI-A-1 enable; output HDMI-A-1 pos 0 0 bg ~/Pictures/wallpapers/active.png fill; output eDP-1 pos 0 1080, mode "default"
|
||||||
|
# bindsym j output HDMI-A-1 enable; output HDMI-A-1 pos 0 0 bg ~/Pictures/wallpapers/active.png fill; output eDP-1 pos 1920 0, mode "default"
|
||||||
|
# bindsym k output HDMI-A-1 enable; output HDMI-A-1 pos 0 900 bg ~/Pictures/wallpapers/active.png fill; output eDP-1 pos 0 0, mode "default"
|
||||||
|
# bindsym l output HDMI-A-1 enable; output HDMI-A-1 pos 1440 0 bg ~/Pictures/wallpapers/active.png fill; output eDP-1 pos 0 0, mode "default"
|
||||||
|
# bindsym o output HDMI-A-1 disable, mode "default"
|
||||||
|
#
|
||||||
|
# # back to normal: Enter or Escape
|
||||||
|
# bindsym Return mode "default"
|
||||||
|
# bindsym Escape mode "default"
|
||||||
|
#}
|
||||||
|
## Declare here the shortcut to bring the display selection menu
|
||||||
|
#bindsym $mod+x mode "$mode_display"
|
6
hosts/ryzensun/default.nix
Normal file
6
hosts/ryzensun/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{ suites, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./ryzensun.nix
|
||||||
|
] ++ suites.ryzensun;
|
||||||
|
}
|
35
hosts/ryzensun/hardware-configuration.nix
Normal file
35
hosts/ryzensun/hardware-configuration.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "sd_mod" "sr_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-uuid/bad2e49e-c8e7-4516-a6f8-77db999d12b0";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/ef6c5bb0-0bcf-4af4-bbc9-02c849999e54";
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-uuid/2C62-C8B5";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
# high-resolution display
|
||||||
|
hardware.video.hidpi.enable = lib.mkDefault true;
|
||||||
|
}
|
44
hosts/ryzensun/ryzensun.nix
Normal file
44
hosts/ryzensun/ryzensun.nix
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
self,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
psCfg = config.pub-solar;
|
||||||
|
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
age.secrets.environment-secrets = {
|
||||||
|
file = "${self}/secrets/environment-secrets.age";
|
||||||
|
mode = "700";
|
||||||
|
owner = "teutat3s";
|
||||||
|
};
|
||||||
|
|
||||||
|
pub-solar.nextcloud.enable = mkForce false;
|
||||||
|
pub-solar.docker.enable = true;
|
||||||
|
pub-solar.virtualisation.enable = true;
|
||||||
|
|
||||||
|
pub-solar.audio.mopidy.enable = mkForce false;
|
||||||
|
|
||||||
|
home-manager.users."${psCfg.user.name}".xdg.configFile = mkIf psCfg.sway.enable {
|
||||||
|
"sway/config.d/10-custom-keybindings.conf".source = ./.config/sway/config.d/custom-keybindings.conf;
|
||||||
|
"sway/config.d/autostart.conf".source = ./.config/sway/config.d/autostart.conf;
|
||||||
|
"sway/config.d/input-defaults.conf".source = ./.config/sway/config.d/input-defaults.conf;
|
||||||
|
"sway/config.d/screens.conf".source = ./.config/sway/config.d/screens.conf;
|
||||||
|
};
|
||||||
|
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "21.05"; # Did you read the comment?
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,14 +1,14 @@
|
||||||
let
|
let
|
||||||
lock = builtins.fromJSON (builtins.readFile builtins.path { path = ../../flake.lock; name = "lockPath"; });
|
rev = "e7e5d481a0e15dcd459396e55327749989e04ce0";
|
||||||
flake = (import
|
flake = (import
|
||||||
(
|
(
|
||||||
fetchTarball {
|
fetchTarball {
|
||||||
url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
|
url = "https://github.com/edolstra/flake-compat/archive/${rev}.tar.gz";
|
||||||
sha256 = lock.nodes.flake-compat.locked.narHash;
|
sha256 = "0zd3x46fswh5n6faq4x2kkpy6p3c6j593xbdlbsl40ppkclwc80x";
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
src = builtins.path { path = ../../.; name = "projectRoot"; };
|
src = ../../.;
|
||||||
});
|
});
|
||||||
in
|
in
|
||||||
flake
|
flake
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{
|
||||||
with lib;
|
lib,
|
||||||
let
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
psCfg = config.pub-solar;
|
psCfg = config.pub-solar;
|
||||||
cfg = config.pub-solar.audio;
|
cfg = config.pub-solar.audio;
|
||||||
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
|
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.pub-solar.audio = {
|
options.pub-solar.audio = {
|
||||||
enable = mkEnableOption "Life in highs and lows";
|
enable = mkEnableOption "Life in highs and lows";
|
||||||
mopidy.enable = mkEnableOption "Life with mopidy";
|
mopidy.enable = mkEnableOption "Life with mopidy";
|
||||||
|
@ -24,8 +27,10 @@ in
|
||||||
extraGroups = ["audio"];
|
extraGroups = ["audio"];
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager = with pkgs; pkgs.lib.setAttrByPath [ "users" psCfg.user.name ] {
|
home-manager = with pkgs;
|
||||||
home.packages = [
|
pkgs.lib.setAttrByPath ["users" psCfg.user.name] {
|
||||||
|
home.packages =
|
||||||
|
[
|
||||||
# easyeffects, e.g. for microphone noise filtering
|
# easyeffects, e.g. for microphone noise filtering
|
||||||
easyeffects
|
easyeffects
|
||||||
mu
|
mu
|
||||||
|
@ -35,7 +40,12 @@ in
|
||||||
# Needed for pactl cmd, until pw-cli is more mature (vol up/down hotkeys?)
|
# Needed for pactl cmd, until pw-cli is more mature (vol up/down hotkeys?)
|
||||||
pulseaudio
|
pulseaudio
|
||||||
vimpc
|
vimpc
|
||||||
] ++ (if cfg.spotify.enable then [ pkgs.spotify-tui ] else [ ]);
|
]
|
||||||
|
++ (
|
||||||
|
if cfg.spotify.enable
|
||||||
|
then [pkgs.spotify-tui]
|
||||||
|
else []
|
||||||
|
);
|
||||||
xdg.configFile."vimpc/vimpcrc".source = ./.config/vimpc/vimpcrc;
|
xdg.configFile."vimpc/vimpcrc".source = ./.config/vimpc/vimpcrc;
|
||||||
systemd.user.services.easyeffects = import ./easyeffects.service.nix pkgs;
|
systemd.user.services.easyeffects = import ./easyeffects.service.nix pkgs;
|
||||||
|
|
||||||
|
@ -54,6 +64,8 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# rtkit is optional but recommended
|
||||||
|
security.rtkit.enable = true;
|
||||||
# Enable sound using pipewire-pulse
|
# Enable sound using pipewire-pulse
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
{ config, pkgs, lib, ... }: with lib; {
|
|
||||||
# Both things below are for
|
|
||||||
# https://github.com/NixOS/nixpkgs/issues/124215
|
|
||||||
documentation.info.enable = lib.mkForce false;
|
|
||||||
nix.sandboxPaths = [ "/bin/sh=${pkgs.bash}/bin/sh" ];
|
|
||||||
}
|
|
|
@ -1,10 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let cfg = config.pub-solar.core;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.pub-solar.core;
|
||||||
|
in {
|
||||||
options.pub-solar.core = {
|
options.pub-solar.core = {
|
||||||
enableCaddy = mkOption {
|
enableCaddy = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
|
@ -33,18 +35,20 @@ in
|
||||||
networking.networkmanager = {
|
networking.networkmanager = {
|
||||||
# Enable networkmanager. REMEMBER to add yourself to group in order to use nm related stuff.
|
# Enable networkmanager. REMEMBER to add yourself to group in order to use nm related stuff.
|
||||||
enable = true;
|
enable = true;
|
||||||
wifi.backend = "iwd";
|
# not as stable as wpa_supplicant yet, also more trouble with 5 GHz networks
|
||||||
|
#wifi.backend = "iwd";
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.enable = true;
|
networking.firewall.enable = true;
|
||||||
|
|
||||||
# Customized binary caches list (with fallback to official binary cache)
|
# Customized binary caches list (with fallback to official binary cache)
|
||||||
nix.binaryCaches = cfg.binaryCaches;
|
nix.settings.substituters = cfg.binaryCaches;
|
||||||
nix.binaryCachePublicKeys = cfg.publicKeys;
|
nix.settings.trusted-public-keys = cfg.publicKeys;
|
||||||
|
|
||||||
# These entries get added to /etc/hosts
|
# These entries get added to /etc/hosts
|
||||||
networking.hosts = {
|
networking.hosts = {
|
||||||
"127.0.0.1" = [ ]
|
"127.0.0.1" =
|
||||||
|
[]
|
||||||
++ lib.optionals cfg.enableCaddy ["caddy.local"]
|
++ lib.optionals cfg.enableCaddy ["caddy.local"]
|
||||||
++ lib.optionals config.pub-solar.printing.enable ["cups.local"]
|
++ lib.optionals config.pub-solar.printing.enable ["cups.local"]
|
||||||
++ lib.optionals cfg.enableHelp ["help.local"];
|
++ lib.optionals cfg.enableHelp ["help.local"];
|
||||||
|
|
|
@ -1,19 +1,25 @@
|
||||||
{ config, pkgs, lib, inputs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
nix = {
|
nix = {
|
||||||
# Use default version alias for nix package
|
# Use default version alias for nix package
|
||||||
package = pkgs.nix;
|
package = pkgs.nix;
|
||||||
# Improve nix store disk usage
|
|
||||||
autoOptimiseStore = true;
|
|
||||||
gc.automatic = true;
|
gc.automatic = true;
|
||||||
optimise.automatic = true;
|
optimise.automatic = true;
|
||||||
|
settings = {
|
||||||
|
# Improve nix store disk usage
|
||||||
|
auto-optimise-store = true;
|
||||||
# Prevents impurities in builds
|
# Prevents impurities in builds
|
||||||
useSandbox = true;
|
sandbox = true;
|
||||||
# give root and @wheel special privileges with nix
|
# give root and @wheel special privileges with nix
|
||||||
trustedUsers = [ "root" "@wheel" ];
|
trusted-users = ["root" "@wheel"];
|
||||||
# This is just a representation of the nix default
|
# This is just a representation of the nix default
|
||||||
systemFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ];
|
system-features = ["nixos-test" "benchmark" "big-parallel" "kvm"];
|
||||||
|
};
|
||||||
# Generally useful nix option defaults
|
# Generally useful nix option defaults
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
min-free = 536870912
|
min-free = 536870912
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
|
config,
|
||||||
with lib;
|
pkgs,
|
||||||
let
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
psCfg = config.pub-solar;
|
psCfg = config.pub-solar;
|
||||||
cfg = config.pub-solar.core;
|
cfg = config.pub-solar.core;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
environment = {
|
environment = {
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs;
|
||||||
|
[
|
||||||
# Core unix utility packages
|
# Core unix utility packages
|
||||||
coreutils-full
|
coreutils-full
|
||||||
dnsutils
|
dnsutils
|
||||||
|
@ -34,7 +37,6 @@ in
|
||||||
croc
|
croc
|
||||||
jq
|
jq
|
||||||
]
|
]
|
||||||
|
|
||||||
++ lib.optionals (!cfg.lite) [
|
++ lib.optionals (!cfg.lite) [
|
||||||
mtr
|
mtr
|
||||||
|
|
||||||
|
@ -58,6 +60,7 @@ in
|
||||||
exfat
|
exfat
|
||||||
|
|
||||||
# Nix specific utilities
|
# Nix specific utilities
|
||||||
|
alejandra
|
||||||
niv
|
niv
|
||||||
manix
|
manix
|
||||||
nix-index
|
nix-index
|
||||||
|
|
|
@ -19,7 +19,7 @@ in
|
||||||
ansible-lint
|
ansible-lint
|
||||||
restic
|
restic
|
||||||
shellcheck
|
shellcheck
|
||||||
terraform_0_15
|
terraform
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,17 +1,21 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{
|
||||||
with lib;
|
lib,
|
||||||
let
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
psCfg = config.pub-solar;
|
psCfg = config.pub-solar;
|
||||||
cfg = config.pub-solar.docker;
|
cfg = config.pub-solar.docker;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.pub-solar.docker = {
|
options.pub-solar.docker = {
|
||||||
enable = mkEnableOption "Life in metal boxes";
|
enable = mkEnableOption "Life in metal boxes";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
users.users = with pkgs; pkgs.lib.setAttrByPath [ psCfg.user.name ] {
|
users.users = with pkgs;
|
||||||
|
pkgs.lib.setAttrByPath [psCfg.user.name] {
|
||||||
extraGroups = ["docker"];
|
extraGroups = ["docker"];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -66,29 +66,97 @@
|
||||||
x = 0;
|
x = 0;
|
||||||
y = 0;
|
y = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
use_thin_strokes = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
key_bindings = [
|
key_bindings = [
|
||||||
{ key = "V"; mods = "Control|Alt"; action = "Paste"; }
|
{
|
||||||
{ key = "C"; mods = "Control|Alt"; action = "Copy"; }
|
key = "V";
|
||||||
{ key = "Paste"; action = "Paste"; }
|
mods = "Control|Alt";
|
||||||
{ key = "Copy"; action = "Copy"; }
|
action = "Paste";
|
||||||
{ key = "Q"; mods = "Command"; action = "Quit"; }
|
}
|
||||||
{ key = "W"; mods = "Command"; action = "Quit"; }
|
{
|
||||||
{ key = "Insert"; mods = "Shift"; action = "PasteSelection"; }
|
key = "C";
|
||||||
{ key = "Key0"; mods = "Control"; action = "ResetFontSize"; }
|
mods = "Control|Alt";
|
||||||
{ key = "Equals"; mods = "Control"; action = "IncreaseFontSize"; }
|
action = "Copy";
|
||||||
{ key = "PageUp"; mods = "Shift"; action = "ScrollPageUp"; }
|
}
|
||||||
{ key = "PageDown"; mods = "Shift"; action = "ScrollPageDown"; }
|
{
|
||||||
{ key = "Minus"; mods = "Control"; action = "DecreaseFontSize"; }
|
key = "Paste";
|
||||||
{ key = "H"; mode = "Vi|~Search"; action = "ScrollToBottom"; }
|
action = "Paste";
|
||||||
{ key = "H"; mode = "Vi|~Search"; action = "ToggleViMode"; }
|
}
|
||||||
{ key = "I"; mode = "Vi|~Search"; action = "Up"; }
|
{
|
||||||
{ key = "K"; mode = "Vi|~Search"; action = "Down"; }
|
key = "Copy";
|
||||||
{ key = "J"; mode = "Vi|~Search"; action = "Left"; }
|
action = "Copy";
|
||||||
{ key = "L"; mode = "Vi|~Search"; action = "Right"; }
|
}
|
||||||
|
{
|
||||||
|
key = "Q";
|
||||||
|
mods = "Command";
|
||||||
|
action = "Quit";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "W";
|
||||||
|
mods = "Command";
|
||||||
|
action = "Quit";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "Insert";
|
||||||
|
mods = "Shift";
|
||||||
|
action = "PasteSelection";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "Key0";
|
||||||
|
mods = "Control";
|
||||||
|
action = "ResetFontSize";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "Equals";
|
||||||
|
mods = "Control";
|
||||||
|
action = "IncreaseFontSize";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "PageUp";
|
||||||
|
mods = "Shift";
|
||||||
|
action = "ScrollPageUp";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "PageDown";
|
||||||
|
mods = "Shift";
|
||||||
|
action = "ScrollPageDown";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "Minus";
|
||||||
|
mods = "Control";
|
||||||
|
action = "DecreaseFontSize";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "H";
|
||||||
|
mode = "Vi|~Search";
|
||||||
|
action = "ScrollToBottom";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "H";
|
||||||
|
mode = "Vi|~Search";
|
||||||
|
action = "ToggleViMode";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "I";
|
||||||
|
mode = "Vi|~Search";
|
||||||
|
action = "Up";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "K";
|
||||||
|
mode = "Vi|~Search";
|
||||||
|
action = "Down";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "J";
|
||||||
|
mode = "Vi|~Search";
|
||||||
|
action = "Left";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "L";
|
||||||
|
mode = "Vi|~Search";
|
||||||
|
action = "Right";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
# Base16 Burn 256 - alacritty color config
|
# Base16 Burn 256 - alacritty color config
|
||||||
|
@ -164,12 +232,30 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
indexed_colors = [
|
indexed_colors = [
|
||||||
{ index = 16; color = "0xdf5923"; }
|
{
|
||||||
{ index = 17; color = "0xd70000"; }
|
index = 16;
|
||||||
{ index = 18; color = "0x2d2a2e"; }
|
color = "0xdf5923";
|
||||||
{ index = 19; color = "0x303030"; }
|
}
|
||||||
{ index = 20; color = "0xd3d1d4"; }
|
{
|
||||||
{ index = 21; color = "0x303030"; }
|
index = 17;
|
||||||
|
color = "0xd70000";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
index = 18;
|
||||||
|
color = "0x2d2a2e";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
index = 19;
|
||||||
|
color = "0x303030";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
index = 20;
|
||||||
|
color = "0xd3d1d4";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
index = 21;
|
||||||
|
color = "0x303030";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,7 @@ in
|
||||||
home.packages = [
|
home.packages = [
|
||||||
alacritty
|
alacritty
|
||||||
foot
|
foot
|
||||||
chromium
|
ungoogled-chromium
|
||||||
firefox-wayland
|
firefox-wayland
|
||||||
|
|
||||||
flameshot
|
flameshot
|
||||||
|
|
|
@ -19,8 +19,13 @@ in
|
||||||
services.printing.listenAddresses = [ "localhost:631" ];
|
services.printing.listenAddresses = [ "localhost:631" ];
|
||||||
services.printing.allowFrom = [ "all" ];
|
services.printing.allowFrom = [ "all" ];
|
||||||
services.printing.defaultShared = false;
|
services.printing.defaultShared = false;
|
||||||
services.printing.drivers = [
|
services.printing.drivers = with pkgs; [
|
||||||
pkgs.gutenprint
|
gutenprint
|
||||||
|
brgenml1lpr
|
||||||
|
brgenml1cupswrapper
|
||||||
|
brlaser
|
||||||
|
cnijfilter2
|
||||||
|
cups-brother-hl3140cw
|
||||||
];
|
];
|
||||||
hardware.sane = {
|
hardware.sane = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -12,6 +12,7 @@ in
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager = with pkgs; pkgs.lib.setAttrByPath [ "users" psCfg.user.name ] {
|
home-manager = with pkgs; pkgs.lib.setAttrByPath [ "users" psCfg.user.name ] {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
|
gurk-rs
|
||||||
signal-desktop
|
signal-desktop
|
||||||
tdesktop
|
tdesktop
|
||||||
element-desktop
|
element-desktop
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
bindsym $mod+z exec --no-startup-id morc_menu
|
bindsym $mod+z exec --no-startup-id morc_menu
|
||||||
|
|
||||||
# switch keyboard input language
|
# switch keyboard input language
|
||||||
bindsym $mod+tab exec toggle-kbd-layout
|
#bindsym $mod+tab exec toggle-kbd-layout
|
||||||
|
|
||||||
################################################################################################
|
################################################################################################
|
||||||
## sound-section - ##
|
## sound-section - ##
|
||||||
|
@ -24,6 +24,10 @@ bindsym $mod+Shift+F3 exec gksu $term -e vifm
|
||||||
bindsym $mod+F4 exec nautilus -w
|
bindsym $mod+F4 exec nautilus -w
|
||||||
bindsym $mod+Shift+F4 exec signal-desktop --use-tray-icon
|
bindsym $mod+Shift+F4 exec signal-desktop --use-tray-icon
|
||||||
|
|
||||||
|
# Notifications with swaynotificationcenter
|
||||||
|
# Toggle control center
|
||||||
|
bindsym $mod+Shift+n exec swaync-client -t -sw
|
||||||
|
|
||||||
bindsym $mod+Shift+m exec qMasterPassword
|
bindsym $mod+Shift+m exec qMasterPassword
|
||||||
|
|
||||||
# Screenshots and screen recordings
|
# Screenshots and screen recordings
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
psCfg = config.pub-solar;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
psCfg = config.pub-solar;
|
||||||
|
in {
|
||||||
options.pub-solar.sway = {
|
options.pub-solar.sway = {
|
||||||
enable = mkEnableOption "Life in boxes";
|
enable = mkEnableOption "Life in boxes";
|
||||||
|
|
||||||
|
@ -29,7 +32,7 @@ in
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
|
||||||
({
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
linuxPackages.v4l2loopback
|
linuxPackages.v4l2loopback
|
||||||
];
|
];
|
||||||
|
@ -49,18 +52,19 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
extraPortals = with pkgs; [xdg-desktop-portal-gtk];
|
extraPortals = with pkgs; [xdg-desktop-portal-gtk];
|
||||||
gtkUsePortal = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.pipewire.enable = true;
|
services.pipewire.enable = true;
|
||||||
|
|
||||||
home-manager = with pkgs; pkgs.lib.setAttrByPath [ "users" psCfg.user.name ] {
|
home-manager = with pkgs;
|
||||||
|
pkgs.lib.setAttrByPath ["users" psCfg.user.name] {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
sway
|
sway
|
||||||
grim
|
grim
|
||||||
kanshi
|
kanshi
|
||||||
mako
|
mako
|
||||||
slurp
|
slurp
|
||||||
|
swaynotificationcenter
|
||||||
swayidle
|
swayidle
|
||||||
swaylock
|
swaylock
|
||||||
swaybg
|
swaybg
|
||||||
|
@ -86,7 +90,7 @@ in
|
||||||
programs.waybar.enable = true;
|
programs.waybar.enable = true;
|
||||||
#programs.waybar.systemd.enable = true;
|
#programs.waybar.systemd.enable = true;
|
||||||
|
|
||||||
systemd.user.services.mako = import ./mako.service.nix { inherit pkgs psCfg; };
|
systemd.user.services.swaynotificationcenter = import ./swaynotificationcenter.service.nix pkgs;
|
||||||
systemd.user.services.sway = import ./sway.service.nix {inherit pkgs psCfg;};
|
systemd.user.services.sway = import ./sway.service.nix {inherit pkgs psCfg;};
|
||||||
systemd.user.services.swayidle = import ./swayidle.service.nix {inherit pkgs psCfg;};
|
systemd.user.services.swayidle = import ./swayidle.service.nix {inherit pkgs psCfg;};
|
||||||
systemd.user.services.xsettingsd = import ./xsettingsd.service.nix {inherit pkgs psCfg;};
|
systemd.user.services.xsettingsd = import ./xsettingsd.service.nix {inherit pkgs psCfg;};
|
||||||
|
@ -102,6 +106,6 @@ in
|
||||||
xdg.configFile."sway/config.d/applications.conf".source = ./config/config.d/applications.conf;
|
xdg.configFile."sway/config.d/applications.conf".source = ./config/config.d/applications.conf;
|
||||||
xdg.configFile."sway/config.d/systemd.conf".source = ./config/config.d/systemd.conf;
|
xdg.configFile."sway/config.d/systemd.conf".source = ./config/config.d/systemd.conf;
|
||||||
};
|
};
|
||||||
})
|
}
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
Unit = {
|
|
||||||
Description = "Lightweight Wayland notification daemon";
|
|
||||||
Documentation = [ "man:mako(1)" ];
|
|
||||||
BindsTo = [ "sway-session.target" ];
|
|
||||||
After = [ "sway-session.target" ];
|
|
||||||
ConditionEnvironment = [ "WAYLAND_DISPLAY" ];
|
|
||||||
};
|
|
||||||
Service = {
|
|
||||||
Type = "dbus";
|
|
||||||
BusName = "org.freedesktop.Notifications";
|
|
||||||
ExecStart = "${pkgs.mako}/bin/mako";
|
|
||||||
ExecReload = "${pkgs.mako}/bin/makoctl reload";
|
|
||||||
};
|
|
||||||
Install = {
|
|
||||||
WantedBy = [ "sway-session.target" ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -9,10 +9,10 @@
|
||||||
};
|
};
|
||||||
Service = {
|
Service = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
|
ExecStartPre = "${pkgs.systemd}/bin/systemctl --user unset-environment WAYLAND_DISPLAY DISPLAY";
|
||||||
ExecStart = "${pkgs.sway}/bin/sway";
|
ExecStart = "${pkgs.sway}/bin/sway";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
RestartSec = "1";
|
RestartSec = "1";
|
||||||
TimeoutStopSec = "10";
|
TimeoutStopSec = "10";
|
||||||
ExecStopPost = "${pkgs.systemd}/bin/systemctl --user unset-environment SWAYSOCK DISPLAY I3SOCK WAYLAND_DISPLAY";
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,8 +10,9 @@
|
||||||
Service = {
|
Service = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
Environment = "PATH=/run/current-system/sw/bin:${pkgs.sway}/bin:${pkgs.swaylock-bg}/bin:${pkgs.swayidle}/bin";
|
Environment = "PATH=/run/current-system/sw/bin:${pkgs.sway}/bin:${pkgs.swaylock-bg}/bin:${pkgs.swayidle}/bin";
|
||||||
ExecStart = ''swayidle -w \
|
ExecStart = ''${pkgs.swayidle}/bin/swayidle -w \
|
||||||
after-resume 'swaymsg "output * dpms on"' \
|
after-resume 'swaymsg "output * dpms on"' \
|
||||||
|
after-resume '${pkgs.brightnessctl}/bin/brightnessctl -d gmux_backlight set 60%' \
|
||||||
before-sleep 'swaylock-bg' '' + (if psCfg.paranoia.enable then '' \
|
before-sleep 'swaylock-bg' '' + (if psCfg.paranoia.enable then '' \
|
||||||
timeout 120 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
timeout 120 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
||||||
timeout 150 'systemctl hibernate'
|
timeout 150 'systemctl hibernate'
|
||||||
|
|
22
modules/sway/swaynotificationcenter.service.nix
Normal file
22
modules/sway/swaynotificationcenter.service.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
pkgs:
|
||||||
|
{
|
||||||
|
Unit = {
|
||||||
|
Description = "Swaync notification daemon";
|
||||||
|
Documentation = "https://github.com/ErikReider/SwayNotificationCenter";
|
||||||
|
BindsTo = [ "sway-session.target" ];
|
||||||
|
After = [ "sway-session.target" ];
|
||||||
|
Requisite = [ "graphical-session.target" ];
|
||||||
|
# ConditionEnvironment requires systemd v247 to work correctly
|
||||||
|
ConditionEnvironment = [ "WAYLAND_DISPLAY" ];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
Type = "dbus";
|
||||||
|
BusName = "org.freedesktop.Notifications";
|
||||||
|
ExecStart = "${pkgs.swaynotificationcenter}/bin/swaync";
|
||||||
|
ExecReload = "${pkgs.swaynotificationcenter}/bin/swaync-client --reload-config ; ${pkgs.swaynotificationcenter}/bin/swaync-client --reload-css";
|
||||||
|
Restart = "on-failure";
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "sway-session.target" ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
Service = {
|
Service = {
|
||||||
Type = "dbus";
|
Type = "dbus";
|
||||||
Environment = "PATH=${pkgs.bash}/bin:${pkgs.pavucontrol}/bin";
|
Environment = "PATH=${pkgs.bash}/bin:${pkgs.pavucontrol}/bin:${pkgs.swaynotificationcenter}/bin";
|
||||||
BusName = "fr.arouillard.waybar";
|
BusName = "fr.arouillard.waybar";
|
||||||
ExecStart = "${pkgs.waybar}/bin/waybar";
|
ExecStart = "${pkgs.waybar}/bin/waybar";
|
||||||
};
|
};
|
||||||
|
|
|
@ -26,7 +26,6 @@ in
|
||||||
environment.shells = with pkgs; [
|
environment.shells = with pkgs; [
|
||||||
zsh
|
zsh
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
screen
|
screen
|
||||||
];
|
];
|
||||||
|
@ -40,8 +39,11 @@ in
|
||||||
fd
|
fd
|
||||||
gh
|
gh
|
||||||
glow
|
glow
|
||||||
|
mdbook-multilang
|
||||||
nnn
|
nnn
|
||||||
|
notes
|
||||||
powerline
|
powerline
|
||||||
|
python-wiki-fetch
|
||||||
silver-searcher
|
silver-searcher
|
||||||
vifm
|
vifm
|
||||||
watson
|
watson
|
||||||
|
|
|
@ -13,6 +13,7 @@ set expandtab
|
||||||
set shiftwidth=2
|
set shiftwidth=2
|
||||||
set number
|
set number
|
||||||
set relativenumber
|
set relativenumber
|
||||||
|
set mouse=
|
||||||
|
|
||||||
set undolevels=1000
|
set undolevels=1000
|
||||||
set undoreload=10000
|
set undoreload=10000
|
||||||
|
|
|
@ -73,8 +73,9 @@ lua <<EOF
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Add additional capabilities supported by nvim-cmp
|
-- Add additional capabilities supported by nvim-cmp
|
||||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||||
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
|
-- vscode HTML lsp needs this https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#html
|
||||||
|
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||||
|
|
||||||
-- vscode HTML lsp needs this https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#html
|
-- vscode HTML lsp needs this https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#html
|
||||||
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||||
|
|
99
modules/terminal-life/nvim/neovim-0.6.1.patch
Normal file
99
modules/terminal-life/nvim/neovim-0.6.1.patch
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
diff --git a/modules/terminal-life/nvim/default.nix b/modules/terminal-life/nvim/default.nix
|
||||||
|
index e46c82e..02102c4 100644
|
||||||
|
--- a/modules/terminal-life/nvim/default.nix
|
||||||
|
+++ b/modules/terminal-life/nvim/default.nix
|
||||||
|
@@ -74,9 +74,7 @@ in
|
||||||
|
nodePackages.typescript-language-server
|
||||||
|
nodePackages.vim-language-server
|
||||||
|
nodePackages.vue-language-server
|
||||||
|
- nodePackages.vscode-css-languageserver-bin
|
||||||
|
- nodePackages.vscode-html-languageserver-bin
|
||||||
|
- nodePackages.vscode-json-languageserver-bin
|
||||||
|
+ nodePackages.vscode-langservers-extracted
|
||||||
|
nodePackages.yaml-language-server
|
||||||
|
python39Packages.python-lsp-server
|
||||||
|
python3Full
|
||||||
|
@@ -131,6 +129,7 @@ in
|
||||||
|
vim-go
|
||||||
|
vim-javascript
|
||||||
|
vim-json
|
||||||
|
+ SchemaStore-nvim
|
||||||
|
vim-markdown
|
||||||
|
vim-nix
|
||||||
|
vim-ruby
|
||||||
|
diff --git a/modules/terminal-life/nvim/lsp.vim b/modules/terminal-life/nvim/lsp.vim
|
||||||
|
index 1d5bf4d..83e5d8c 100644
|
||||||
|
--- a/modules/terminal-life/nvim/lsp.vim
|
||||||
|
+++ b/modules/terminal-life/nvim/lsp.vim
|
||||||
|
@@ -40,10 +40,10 @@ lua <<EOF
|
||||||
|
buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||||
|
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||||
|
- buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
|
||||||
|
- buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
|
||||||
|
- buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
|
||||||
|
- buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
|
||||||
|
+ buf_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
|
||||||
|
+ buf_set_keymap('n', 'g[', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
|
||||||
|
+ buf_set_keymap('n', 'g]', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
|
||||||
|
+ buf_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
|
||||||
|
|
||||||
|
end
|
||||||
|
@@ -51,6 +51,8 @@ lua <<EOF
|
||||||
|
-- Add additional capabilities supported by nvim-cmp
|
||||||
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
|
||||||
|
+ -- vscode HTML lsp needs this https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#html
|
||||||
|
+ capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||||
|
|
||||||
|
for lsp_key, lsp_settings in pairs({
|
||||||
|
'bashls', ------------------------------- Bash
|
||||||
|
@@ -76,10 +78,14 @@ lua <<EOF
|
||||||
|
}
|
||||||
|
},
|
||||||
|
['jsonls'] = { -------------------------- JSON
|
||||||
|
- ['cmd'] = {"json-languageserver", "--stdio"}
|
||||||
|
+ ['settings'] = {
|
||||||
|
+ ['json'] = {
|
||||||
|
+ ['schemas' ] = require('schemastore').json.schemas()
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
},
|
||||||
|
'phpactor', ----------------------------- PHP
|
||||||
|
- 'pylsp', --------------------------------- Python
|
||||||
|
+ 'pylsp', -------------------------------- Python
|
||||||
|
'rnix', --------------------------------- Nix
|
||||||
|
'solargraph', --------------------------- Ruby
|
||||||
|
'rust_analyzer', ------------------------ Rust
|
||||||
|
@@ -90,7 +96,6 @@ lua <<EOF
|
||||||
|
['filetypes'] = { "terraform", "hcl", "tf" }
|
||||||
|
},
|
||||||
|
'tsserver', ----------------------------- Typescript / JavaScript
|
||||||
|
- 'angularls', ---------------------------- Angular
|
||||||
|
'vuels', -------------------------------- Vue
|
||||||
|
'svelte', ------------------------------- Svelte
|
||||||
|
['yamlls'] = { -------------------------- YAML
|
||||||
|
@@ -126,6 +131,13 @@ lua <<EOF
|
||||||
|
end
|
||||||
|
end -- ‡
|
||||||
|
|
||||||
|
+ -- configure floating diagnostics appearance, symbols
|
||||||
|
+ local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
|
||||||
|
+ for type, icon in pairs(signs) do
|
||||||
|
+ local hl = "DiagnosticSign" .. type
|
||||||
|
+ vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl })
|
||||||
|
+ end
|
||||||
|
+
|
||||||
|
-- Set completeopt to have a better completion experience
|
||||||
|
vim.o.completeopt = 'menuone,noselect'
|
||||||
|
|
||||||
|
@@ -184,7 +196,7 @@ let g:diagnostic_trimmed_virtual_text = '40'
|
||||||
|
let g:diagnostic_insert_delay = 1
|
||||||
|
|
||||||
|
" Show diagnostic popup on cursor hold
|
||||||
|
-autocmd CursorHold * lua vim.lsp.diagnostic.show_line_diagnostics({ focusable = false })
|
||||||
|
+autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, { focus = false, scope = "cursor" })
|
||||||
|
|
||||||
|
" Goto previous/next diagnostic warning/error
|
||||||
|
" nnoremap <silent> g[ <cmd>PrevDiagnosticCycle<cr>
|
|
@ -1,18 +1,18 @@
|
||||||
let g:base16_shell_path = $XDG_CONFIG_HOME . "/zsh/base16.sh"
|
"let g:base16_shell_path = $XDG_CONFIG_HOME . "/zsh/base16.sh"
|
||||||
let base16colorspace = 256
|
"let base16colorspace = 256
|
||||||
set termguicolors
|
set termguicolors
|
||||||
let g:sonokai_style = 'shusia'
|
"let g:sonokai_style = 'shusia'
|
||||||
let g:sonokai_enable_italic = 1
|
"let g:sonokai_enable_italic = 1
|
||||||
let g:sonokai_disable_italic_comment = 1
|
"let g:sonokai_disable_italic_comment = 1
|
||||||
let g:sonokai_transparent_background = 1
|
"let g:sonokai_transparent_background = 1
|
||||||
colorscheme sonokai
|
|
||||||
set background=dark
|
set background=dark
|
||||||
|
colorscheme apprentice
|
||||||
|
|
||||||
let g:airline#extensions#tabline#enabled = 1 " Enable the list of buffers
|
let g:airline#extensions#tabline#enabled = 1 " Enable the list of buffers
|
||||||
let g:airline#extensions#tabline#fnamemod = ':t' " Show just the filename
|
let g:airline#extensions#tabline#fnamemod = ':t' " Show just the filename
|
||||||
let g:airline#extensions#tabline#formatter = 'unique_tail_improved'
|
let g:airline#extensions#tabline#formatter = 'unique_tail_improved'
|
||||||
let g:airline_powerline_fonts = 1 " Use powerline fonts
|
let g:airline_powerline_fonts = 1 " Use powerline fonts
|
||||||
let g:airline_theme = 'sonokai'
|
let g:airline_theme = 'apprentice'
|
||||||
|
|
||||||
" Customize fzf colors to match your color scheme
|
" Customize fzf colors to match your color scheme
|
||||||
" - fzf#wrap translates this to a set of `--color` options
|
" - fzf#wrap translates this to a set of `--color` options
|
||||||
|
|
|
@ -115,6 +115,5 @@ in
|
||||||
source ${pkgs.fzf}/share/fzf/completion.zsh
|
source ${pkgs.fzf}/share/fzf/completion.zsh
|
||||||
source ${pkgs.git-bug}/share/zsh/site-functions/git-bug
|
source ${pkgs.git-bug}/share/zsh/site-functions/git-bug
|
||||||
eval "$(direnv hook zsh)"
|
eval "$(direnv hook zsh)"
|
||||||
''
|
'';
|
||||||
+ builtins.readFile ./fzf.zsh;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,58 +0,0 @@
|
||||||
# Use ~~ as the trigger sequence instead of the default **
|
|
||||||
export FZF_COMPLETION_TRIGGER='~~'
|
|
||||||
|
|
||||||
# Options to fzf command
|
|
||||||
export FZF_COMPLETION_OPTS='--border --info=inline'
|
|
||||||
|
|
||||||
__fzfcmd() {
|
|
||||||
echo "fzf"
|
|
||||||
}
|
|
||||||
|
|
||||||
# ctrl+r - Paste the selected command from history into the command line
|
|
||||||
fzf-history-widget() {
|
|
||||||
local selected num
|
|
||||||
setopt localoptions noglobsubst noposixbuiltins pipefail HIST_FIND_NO_DUPS 2> /dev/null
|
|
||||||
|
|
||||||
selected=( $(fc -rl 1 |
|
|
||||||
FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} $FZF_DEFAULT_OPTS -n2..,.. --tiebreak=index --bind=ctrl-r:toggle-sort $FZF_CTRL_R_OPTS --query=${(qqq)LBUFFER} +m" $(__fzfcmd)) )
|
|
||||||
local ret=$?
|
|
||||||
if [ -n "$selected" ]; then
|
|
||||||
num=$selected[1]
|
|
||||||
if [ -n "$num" ]; then
|
|
||||||
zle vi-fetch-history -n $num
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
zle redisplay
|
|
||||||
typeset -f zle-line-init >/dev/null && zle zle-line-init
|
|
||||||
return $ret
|
|
||||||
}
|
|
||||||
zle -N fzf-history-widget
|
|
||||||
bindkey '^R' fzf-history-widget
|
|
||||||
|
|
||||||
# Use fd (https://github.com/sharkdp/fd) instead of the default find
|
|
||||||
# command for listing path candidates.
|
|
||||||
# - The first argument to the function ($1) is the base path to start traversal
|
|
||||||
# - See the source code (completion.{bash,zsh}) for the details.
|
|
||||||
_fzf_compgen_path() {
|
|
||||||
fd --hidden --follow --exclude ".git" . "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Use fd to generate the list for directory completion
|
|
||||||
_fzf_compgen_dir() {
|
|
||||||
fd --type d --hidden --follow --exclude ".git" . "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
# (EXPERIMENTAL) Advanced customization of fzf options via _fzf_comprun function
|
|
||||||
# - The first argument to the function is the name of the command.
|
|
||||||
# - You should make sure to pass the rest of the arguments to fzf.
|
|
||||||
_fzf_comprun() {
|
|
||||||
local command=$1
|
|
||||||
shift
|
|
||||||
|
|
||||||
case "$command" in
|
|
||||||
cd) fzf "$@" --preview 'tree -C {} | head -200' ;;
|
|
||||||
export|unset) fzf "$@" --preview "eval 'echo \$'{}" ;;
|
|
||||||
ssh) fzf "$@" --preview 'dig {}' ;;
|
|
||||||
*) fzf "$@" ;;
|
|
||||||
esac
|
|
||||||
}
|
|
|
@ -32,8 +32,9 @@ in
|
||||||
libvirt
|
libvirt
|
||||||
libvirt-glib
|
libvirt-glib
|
||||||
qemu
|
qemu
|
||||||
|
vagrant
|
||||||
virt-manager
|
virt-manager
|
||||||
python38Packages.libvirt
|
python39Packages.libvirt
|
||||||
gvfs
|
gvfs
|
||||||
edk2
|
edk2
|
||||||
OVMF
|
OVMF
|
||||||
|
@ -50,11 +51,11 @@ in
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"f /dev/shm/looking-glass 0660 ${psCfg.user.name} kvm"
|
"f /dev/shm/looking-glass 0660 ${psCfg.user.name} kvm"
|
||||||
];
|
];
|
||||||
networking.bridges.virbr1.interfaces = [ ];
|
#networking.bridges.virbr1.interfaces = [ ];
|
||||||
networking.interfaces.virbr1 = {
|
#networking.interfaces.virbr1 = {
|
||||||
ipv4.addresses = [
|
# ipv4.addresses = [
|
||||||
{ address = "192.168.123.1"; prefixLength = 24; }
|
# { address = "192.168.123.1"; prefixLength = 24; }
|
||||||
];
|
# ];
|
||||||
};
|
#};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
20
overlays/mdbook-multilang.nix
Normal file
20
overlays/mdbook-multilang.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
final: prev: {
|
||||||
|
mdbook-multilang = prev.mdbook.overrideAttrs (oldAttrs: rec {
|
||||||
|
pname = "mdbook";
|
||||||
|
|
||||||
|
version = "pr1306";
|
||||||
|
|
||||||
|
src = prev.fetchFromGitHub {
|
||||||
|
owner = "Ruin0x11";
|
||||||
|
repo = "mdBook";
|
||||||
|
rev = "9d8147c52dd9d50047ba5b29e4af99f92577806e";
|
||||||
|
sha256 = "sha256-gJnQKHssO2ChiT4d037Lncd7hiOa5uh756p8TzPzbgQ=";
|
||||||
|
};
|
||||||
|
|
||||||
|
cargoDeps = oldAttrs.cargoDeps.overrideAttrs (prev.lib.const {
|
||||||
|
name = "${pname}-vendor.tar.gz";
|
||||||
|
inherit src;
|
||||||
|
outputHash = "sha256-QCEyl5FZqECYYb5eRm8mn+R6owt+CLQwCq/AMMPygE0=";
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
|
@ -1,36 +1,49 @@
|
||||||
channels: final: prev: {
|
channels: final: prev: {
|
||||||
|
|
||||||
__dontExport = true; # overrides clutter up actual creations
|
__dontExport = true; # overrides clutter up actual creations
|
||||||
|
|
||||||
inherit (channels.latest)
|
inherit
|
||||||
|
(channels.latest)
|
||||||
cachix
|
cachix
|
||||||
dhall
|
dhall
|
||||||
discord
|
discord
|
||||||
element-desktop
|
element-desktop
|
||||||
rage
|
rage
|
||||||
nix-index
|
nix-index
|
||||||
nixpkgs-fmt
|
|
||||||
qutebrowser
|
qutebrowser
|
||||||
|
alejandra
|
||||||
signal-desktop
|
signal-desktop
|
||||||
starship
|
starship
|
||||||
deploy-rs
|
deploy-rs
|
||||||
nix
|
nix
|
||||||
|
|
||||||
tdesktop
|
tdesktop
|
||||||
arduino
|
arduino
|
||||||
arduino-cli
|
arduino-cli
|
||||||
|
gurk-rs
|
||||||
|
thunderbird
|
||||||
|
swaynotificationcenter
|
||||||
|
yubikey-agent
|
||||||
;
|
;
|
||||||
|
|
||||||
|
#inherit (channels.master)
|
||||||
|
# ;
|
||||||
|
|
||||||
haskellPackages = prev.haskellPackages.override
|
#inherit (channels.fork)
|
||||||
|
# ;
|
||||||
|
|
||||||
|
haskellPackages =
|
||||||
|
prev.haskellPackages.override
|
||||||
(old: {
|
(old: {
|
||||||
overrides = prev.lib.composeExtensions (old.overrides or (_: _: { })) (hfinal: hprev:
|
overrides = prev.lib.composeExtensions (old.overrides or (_: _: {})) (hfinal: hprev: let
|
||||||
let version = prev.lib.replaceChars [ "." ] [ "" ] prev.ghc.version;
|
version = prev.lib.replaceChars ["."] [""] prev.ghc.version;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
# same for haskell packages, matching ghc versions
|
# same for haskell packages, matching ghc versions
|
||||||
inherit (channels.latest.haskell.packages."ghc${version}")
|
inherit
|
||||||
haskell-language-server;
|
(channels.latest.haskell.packages."ghc${version}")
|
||||||
|
haskell-language-server
|
||||||
|
;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
# Example to override node package
|
||||||
|
# nodePackages = prev.nodePackages // { inherit (channels.latest.nodePackages) manta; };
|
||||||
}
|
}
|
||||||
|
|
24
overlays/python-wik.nix
Normal file
24
overlays/python-wik.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
final: prev: with prev.python310Packages; {
|
||||||
|
python-wiki-fetch = buildPythonPackage rec {
|
||||||
|
inherit (prev.sources.wik) pname version src;
|
||||||
|
|
||||||
|
checkPhase = ''
|
||||||
|
cd test
|
||||||
|
${python.interpreter} test.py
|
||||||
|
'';
|
||||||
|
|
||||||
|
format = "flit";
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
beautifulsoup4
|
||||||
|
requests
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with prev.lib; {
|
||||||
|
description = "wik is a tool to view wikipedia pages from your terminal";
|
||||||
|
homepage = "https://github.com/yashsinghcodes/wik";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ teutat3s ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -36,13 +36,13 @@
|
||||||
};
|
};
|
||||||
ohmyzsh = {
|
ohmyzsh = {
|
||||||
pname = "ohmyzsh";
|
pname = "ohmyzsh";
|
||||||
version = "65a1e4edbe678cdac37ad96ca4bc4f6d77e27adf";
|
version = "a7d910c3a61d8599f748a8ddae59ecdd9424022a";
|
||||||
src = fetchFromGitHub ({
|
src = fetchFromGitHub ({
|
||||||
owner = "ohmyzsh";
|
owner = "ohmyzsh";
|
||||||
repo = "ohmyzsh";
|
repo = "ohmyzsh";
|
||||||
rev = "65a1e4edbe678cdac37ad96ca4bc4f6d77e27adf";
|
rev = "a7d910c3a61d8599f748a8ddae59ecdd9424022a";
|
||||||
fetchSubmodules = false;
|
fetchSubmodules = false;
|
||||||
sha256 = "sha256-qyI7CU0vKhhADZfQtD73GsyAbqdMPhDQ1uA03h4erpw=";
|
sha256 = "sha256-BWpvRkUXQhP1VLrlTBqqXvycyPFZaIZmgMfrkqIugSY=";
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
powerlevel10k = {
|
powerlevel10k = {
|
||||||
|
@ -122,6 +122,17 @@
|
||||||
sha256 = "sha256-fhazQQqyFaO0fdoeNI9nBshwTDhKNHH262H/QThtuO0=";
|
sha256 = "sha256-fhazQQqyFaO0fdoeNI9nBshwTDhKNHH262H/QThtuO0=";
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
wik = {
|
||||||
|
pname = "wik";
|
||||||
|
version = "aca76040770543a55b8fb0574901bf52df099c34";
|
||||||
|
src = fetchFromGitHub ({
|
||||||
|
owner = "yashsinghcodes";
|
||||||
|
repo = "wik";
|
||||||
|
rev = "aca76040770543a55b8fb0574901bf52df099c34";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
sha256 = "sha256-qFNRzgXFyOgIvtNKR+7NG5lvQObjgezfRaloA7VH9Lc=";
|
||||||
|
});
|
||||||
|
};
|
||||||
zsh-nix-shell = {
|
zsh-nix-shell = {
|
||||||
pname = "zsh-nix-shell";
|
pname = "zsh-nix-shell";
|
||||||
version = "af6f8a266ea1875b9a3e86e14796cadbe1cfbf08";
|
version = "af6f8a266ea1875b9a3e86e14796cadbe1cfbf08";
|
||||||
|
|
|
@ -3,11 +3,13 @@ with final; {
|
||||||
# keep sources this first
|
# keep sources this first
|
||||||
sources = prev.callPackage (import ./_sources/generated.nix) { };
|
sources = prev.callPackage (import ./_sources/generated.nix) { };
|
||||||
# then, call packages with `final.callPackage`
|
# then, call packages with `final.callPackage`
|
||||||
|
gpu-switch = writeShellScriptBin "gpu-switch" (import ./gpu-switch.nix final);
|
||||||
import-gtk-settings = writeShellScriptBin "import-gtk-settings" (import ./import-gtk-settings.nix final);
|
import-gtk-settings = writeShellScriptBin "import-gtk-settings" (import ./import-gtk-settings.nix final);
|
||||||
lgcl = writeShellScriptBin "lgcl" (import ./lgcl.nix final);
|
lgcl = writeShellScriptBin "lgcl" (import ./lgcl.nix final);
|
||||||
mailto-mutt = writeShellScriptBin "mailto-mutt" (import ./mailto-mutt.nix final);
|
mailto-mutt = writeShellScriptBin "mailto-mutt" (import ./mailto-mutt.nix final);
|
||||||
mopidy-jellyfin = import ./mopidy-jellyfin.nix final;
|
mopidy-jellyfin = import ./mopidy-jellyfin.nix final;
|
||||||
mu = writeShellScriptBin "mu" (import ./mu.nix final);
|
mu = writeShellScriptBin "mu" (import ./mu.nix final);
|
||||||
|
notes = writeShellScriptBin "notes" (import ./notes.nix final);
|
||||||
psos = writeShellScriptBin "psos" (import ./psos.nix final);
|
psos = writeShellScriptBin "psos" (import ./psos.nix final);
|
||||||
psos-docs = import ./psos-docs.nix final;
|
psos-docs = import ./psos-docs.nix final;
|
||||||
s = writeShellScriptBin "s" (import ./s.nix final);
|
s = writeShellScriptBin "s" (import ./s.nix final);
|
||||||
|
|
69
pkgs/gpu-switch.nix
Normal file
69
pkgs/gpu-switch.nix
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
self: with self; ''
|
||||||
|
# Copyright (c) 2014-2015 Bruno Bierbaumer, Andreas Heider
|
||||||
|
|
||||||
|
readonly sysfs_efi_vars='/sys/firmware/efi/efivars'
|
||||||
|
readonly efi_gpu='gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9'
|
||||||
|
|
||||||
|
usage(){
|
||||||
|
cat <<EOF
|
||||||
|
Usage:
|
||||||
|
$(basename $0) --integrated # Switch to the integrated GPU
|
||||||
|
$(basename $0) --dedicated # Switch to the dedicated GPU
|
||||||
|
$(basename $0) --help # Show this message
|
||||||
|
|
||||||
|
Switches between the integrated and dedicated graphics cards of a dual-GPU
|
||||||
|
MacBook Pro for the next reboot.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
-i, --integrated
|
||||||
|
-d, --dedicated
|
||||||
|
-h, --help
|
||||||
|
|
||||||
|
Tested hardware:
|
||||||
|
MacBook Pro 5,2 (Early 2009, Non-Retina)
|
||||||
|
MacBook Pro 5,3 (Mid 2009, Non-Retina)
|
||||||
|
MacBook Pro 8,2 (Late 2011, Non-Retina)
|
||||||
|
MacBook Pro 9,1 (Mid 2012, Non-Retina)
|
||||||
|
MacBook Pro 10,1 (Mid 2012, Retina)
|
||||||
|
MacBook Pro 11,3 (Late 2013, Retina)
|
||||||
|
MacBook Pro 11,5 (Mid 2015, Retina)
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
switch_gpu(){
|
||||||
|
if ! [ -d /sys/firmware/efi ]; then
|
||||||
|
printf "Fatal: $(basename $0) has to be run in EFI mode.\n" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! mount | grep -q $sysfs_efi_vars; then
|
||||||
|
if ! mount -t efivarfs none $sysfs_efi_vars; then
|
||||||
|
printf "Fatal: Couldn't mount ''${sysfs_efi_vars}.\n" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
chattr -i "''${sysfs_efi_vars}/''${efi_gpu}" 2> /dev/null
|
||||||
|
printf "\x07\x00\x00\x00\x''${1}\x00\x00\x00" > "''${sysfs_efi_vars}/''${efi_gpu}"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# -ne 1 ]; then
|
||||||
|
usage 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
-i|--integrated)
|
||||||
|
switch_gpu 1
|
||||||
|
;;
|
||||||
|
-d|--dedicated)
|
||||||
|
switch_gpu 0
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
usage 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
''
|
19
pkgs/notes.nix
Normal file
19
pkgs/notes.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
self: with self; ''
|
||||||
|
#
|
||||||
|
# ack recursively through notes
|
||||||
|
#
|
||||||
|
# uses ack: https://beyondgrep.com
|
||||||
|
|
||||||
|
NOTESDIR=~/pub.solar-nc/Notes
|
||||||
|
ACK_PREFIX="ack --files-with-matches"
|
||||||
|
cd $NOTESDIR || exit
|
||||||
|
file="$(
|
||||||
|
FZF_DEFAULT_COMMAND="$ACK_PREFIX '$1'" \
|
||||||
|
fzf --sort --preview="[[ ! -z {} ]] && ack --colour --context 5 {q} {}" \
|
||||||
|
--phony -q "$1" \
|
||||||
|
--bind "change:reload:$ACK_PREFIX {q}" \
|
||||||
|
--preview-window="70%:wrap"
|
||||||
|
)" &&
|
||||||
|
echo "opening $file" &&
|
||||||
|
bat --theme=TwoDark "$file"
|
||||||
|
''
|
|
@ -3,6 +3,10 @@
|
||||||
src.git = "https://github.com/mlvzk/manix"
|
src.git = "https://github.com/mlvzk/manix"
|
||||||
fetch.github = "mlvzk/manix"
|
fetch.github = "mlvzk/manix"
|
||||||
|
|
||||||
|
[wik]
|
||||||
|
src.git = "https://github.com/yashsinghcodes/wik"
|
||||||
|
fetch.github = "yashsinghcodes/wik"
|
||||||
|
|
||||||
[ohmyzsh]
|
[ohmyzsh]
|
||||||
src.git = "https://github.com/ohmyzsh/ohmyzsh"
|
src.git = "https://github.com/ohmyzsh/ohmyzsh"
|
||||||
fetch.github = "ohmyzsh/ohmyzsh"
|
fetch.github = "ohmyzsh/ohmyzsh"
|
||||||
|
|
|
@ -14,7 +14,6 @@ in
|
||||||
pol = pull
|
pol = pull
|
||||||
ack = -c color.grep.linenumber=\"bold yellow\"\n -c color.grep.filename=\"bold green\"\n -c color.grep.match=\"reverse yellow\"\n grep --break --heading --line-number
|
ack = -c color.grep.linenumber=\"bold yellow\"\n -c color.grep.filename=\"bold green\"\n -c color.grep.match=\"reverse yellow\"\n grep --break --heading --line-number
|
||||||
# define command which will be used when "nvim"is set as a merge tool
|
# define command which will be used when "nvim"is set as a merge tool
|
||||||
|
|
||||||
[mergetool]
|
[mergetool]
|
||||||
prompt = false
|
prompt = false
|
||||||
[merge]
|
[merge]
|
||||||
|
|
12
profiles/base-user/.config/swaync/config.json
Normal file
12
profiles/base-user/.config/swaync/config.json
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"positionX": "right",
|
||||||
|
"positionY": "top",
|
||||||
|
"timeout": 10,
|
||||||
|
"timeout-low": 5,
|
||||||
|
"timeout-critical": 0,
|
||||||
|
"notification-window-width": 500,
|
||||||
|
"keyboard-shortcuts": true,
|
||||||
|
"image-visibility": "always",
|
||||||
|
"transition-time": 200,
|
||||||
|
"hide-on-clear": false
|
||||||
|
}
|
149
profiles/base-user/.config/swaync/style.css
Normal file
149
profiles/base-user/.config/swaync/style.css
Normal file
|
@ -0,0 +1,149 @@
|
||||||
|
/*
|
||||||
|
* vim: ft=less
|
||||||
|
*/
|
||||||
|
|
||||||
|
@define-color border-color rgb(7, 7, 7);
|
||||||
|
@define-color bg rgb(58, 58, 58);
|
||||||
|
@define-color bg-hover rgb(68, 68, 68);
|
||||||
|
@define-color bg-focus rgba(68, 68, 68, 0.6);
|
||||||
|
@define-color bg-selected rgb(0, 128, 255);
|
||||||
|
|
||||||
|
.notification-row {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
.notification-row:focus,
|
||||||
|
.notification-row:hover {
|
||||||
|
background: @bg-focus;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification {
|
||||||
|
border-radius: 10px;
|
||||||
|
margin: 6px 12px;
|
||||||
|
box-shadow: 0px 2px 4px 2px rgba(0, 0, 0, 0.3);
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-content {
|
||||||
|
background: transparent;
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-button {
|
||||||
|
background: black;
|
||||||
|
color: white;
|
||||||
|
text-shadow: none;
|
||||||
|
padding: 0 2px;
|
||||||
|
box-shadow: 0px 2px 4px 2px rgba(0, 0, 0, 0.3);
|
||||||
|
border-radius: 100%;
|
||||||
|
}
|
||||||
|
.close-button:hover {
|
||||||
|
background: rgb(30, 30, 30);
|
||||||
|
transition: all 0.15s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-default-action,
|
||||||
|
.notification-action {
|
||||||
|
padding: 4px;
|
||||||
|
margin: 0;
|
||||||
|
box-shadow: none;
|
||||||
|
background: @bg;
|
||||||
|
border: 1px solid @border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-default-action:hover,
|
||||||
|
.notification-action:hover {
|
||||||
|
background: @bg-hover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-default-action {
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* When alternative actions are visible */
|
||||||
|
.notification-default-action:not(:only-child) {
|
||||||
|
border-bottom-left-radius: 0px;
|
||||||
|
border-bottom-right-radius: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-action {
|
||||||
|
border-radius: 0px;
|
||||||
|
border-top: none;
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* add bottom border radius to eliminate clipping */
|
||||||
|
.notification-action:first-child {
|
||||||
|
border-bottom-left-radius: 10px;
|
||||||
|
}
|
||||||
|
.notification-action:last-child {
|
||||||
|
border-bottom-right-radius: 10px;
|
||||||
|
border-right: 1px solid @border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image {
|
||||||
|
}
|
||||||
|
|
||||||
|
.body-image {
|
||||||
|
margin-top: 6px;
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.summary {
|
||||||
|
color: white;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time {
|
||||||
|
color: white;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.body {
|
||||||
|
background: transparent;
|
||||||
|
color: white;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-action-title {
|
||||||
|
color: white;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-clear-all {
|
||||||
|
color: white;
|
||||||
|
text-shadow: none;
|
||||||
|
background: @bg;
|
||||||
|
border: 1px solid @border-color;
|
||||||
|
box-shadow: none;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.control-center-clear-all:hover {
|
||||||
|
background: @bg-hover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-dnd {
|
||||||
|
border-radius: 10px;
|
||||||
|
background: @bg;
|
||||||
|
border: 1px solid @border-color;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-dnd:checked {
|
||||||
|
background: @bg-selected;
|
||||||
|
}
|
||||||
|
.control-center-dnd slider {
|
||||||
|
background: @bg-hover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center {
|
||||||
|
background: rgba(0, 0, 0, 0.7);
|
||||||
|
}
|
||||||
|
.control-center-list {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications {
|
||||||
|
background: transparent;
|
||||||
|
}
|
|
@ -5,7 +5,17 @@
|
||||||
"height": 26, // Waybar height
|
"height": 26, // Waybar height
|
||||||
"modules-left": ["sway/workspaces", "sway/mode"],
|
"modules-left": ["sway/workspaces", "sway/mode"],
|
||||||
//"modules-center": ["mpd"],
|
//"modules-center": ["mpd"],
|
||||||
"modules-right": ["sway/language", "pulseaudio", "network", "idle_inhibitor", "battery", "clock", "tray"],
|
"modules-right": [
|
||||||
|
"sway/language",
|
||||||
|
"backlight",
|
||||||
|
"custom/notification",
|
||||||
|
"pulseaudio",
|
||||||
|
"network",
|
||||||
|
"idle_inhibitor",
|
||||||
|
"battery",
|
||||||
|
"clock",
|
||||||
|
"tray"
|
||||||
|
],
|
||||||
"sway/workspaces": {
|
"sway/workspaces": {
|
||||||
"disable-scroll": true
|
"disable-scroll": true
|
||||||
},
|
},
|
||||||
|
@ -30,10 +40,8 @@
|
||||||
"format-alt": "{:%a %d. %h %H:%M}"
|
"format-alt": "{:%a %d. %h %H:%M}"
|
||||||
},
|
},
|
||||||
"backlight": {
|
"backlight": {
|
||||||
// "device": "acpi_video1",
|
"device": "gmux_backlight",
|
||||||
"tooltip": true,
|
"format": "<span font='10'> {percent}%</span> {icon}",
|
||||||
"tooltip-format": "Brightness: <big>{percent}%</big>",
|
|
||||||
"format": "<span font='10'>{icon}</span>",
|
|
||||||
"format-icons": ["", ""]
|
"format-icons": ["", ""]
|
||||||
},
|
},
|
||||||
"cpu": {
|
"cpu": {
|
||||||
|
@ -43,7 +51,7 @@
|
||||||
"format": "{}% "
|
"format": "{}% "
|
||||||
},
|
},
|
||||||
"idle_inhibitor": {
|
"idle_inhibitor": {
|
||||||
"format": "<span font='10'>{icon} </span>",
|
"format": "{icon} ",
|
||||||
"format-icons": {
|
"format-icons": {
|
||||||
"activated": "",
|
"activated": "",
|
||||||
"deactivated": ""
|
"deactivated": ""
|
||||||
|
@ -54,9 +62,9 @@
|
||||||
"states": {
|
"states": {
|
||||||
"critical": 25
|
"critical": 25
|
||||||
},
|
},
|
||||||
"full-at": 84,
|
//"full-at": 84,
|
||||||
"format": "<span font='10'>{icon}</span> {capacity}%",
|
"format": "{icon}<span font='10'> {capacity}%</span>",
|
||||||
"format-full": "<span font='10'>{icon}</span>",
|
"format-full": "{icon}",
|
||||||
"format-icons": ["", "", "", "", ""],
|
"format-icons": ["", "", "", "", ""],
|
||||||
},
|
},
|
||||||
"network": {
|
"network": {
|
||||||
|
@ -72,7 +80,7 @@
|
||||||
//\ue04f{volume}%
|
//\ue04f{volume}%
|
||||||
"pulseaudio": {
|
"pulseaudio": {
|
||||||
"tooltip": false,
|
"tooltip": false,
|
||||||
"format": "{volume}% <span font='10'>{icon}</span>",
|
"format": "<span font='10'>{volume}%</span> {icon}",
|
||||||
"format-bluetooth": "{volume}% <span font='10'>{icon}</span>",
|
"format-bluetooth": "{volume}% <span font='10'>{icon}</span>",
|
||||||
"format-muted": "",
|
"format-muted": "",
|
||||||
"on-click": "pavucontrol",
|
"on-click": "pavucontrol",
|
||||||
|
@ -98,5 +106,21 @@
|
||||||
},
|
},
|
||||||
"tooltip-format": "MPD (connected)",
|
"tooltip-format": "MPD (connected)",
|
||||||
"tooltip-format-disconnected": "MPD (disconnected)"
|
"tooltip-format-disconnected": "MPD (disconnected)"
|
||||||
}
|
},
|
||||||
|
"custom/notification": {
|
||||||
|
"tooltip": false,
|
||||||
|
"format": " {icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"notification": "<span foreground='red'><sup></sup></span>",
|
||||||
|
"none": "",
|
||||||
|
"dnd-notification": "<span foreground='red'><sup></sup></span>",
|
||||||
|
"dnd-none": ""
|
||||||
|
},
|
||||||
|
"return-type": "json",
|
||||||
|
"exec-if": "which swaync-client",
|
||||||
|
"exec": "swaync-client -swb",
|
||||||
|
"on-click": "swaync-client -t -sw",
|
||||||
|
"on-click-right": "swaync-client -d -sw",
|
||||||
|
"escape": true
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,6 @@ window#waybar {
|
||||||
color: @base04;
|
color: @base04;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
|
@ -23,7 +22,6 @@ window#waybar {
|
||||||
color: @base04;
|
color: @base04;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#workspaces button.focused {
|
#workspaces button.focused {
|
||||||
color: #f85e84;
|
color: #f85e84;
|
||||||
color: @base07;
|
color: @base07;
|
||||||
|
@ -53,26 +51,29 @@ window#waybar {
|
||||||
#battery.critical {
|
#battery.critical {
|
||||||
color: @base07;
|
color: @base07;
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery.charging {
|
#battery.charging {
|
||||||
color: @base0B;
|
color: @base0B;
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery.full {
|
#battery.full {
|
||||||
margin: 0px 0px 0px 0px;
|
margin: 0px 0px 0px 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#network {
|
#network {
|
||||||
border-top: 1px solid transparent;
|
border-top: 1px solid transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
#network.disconnected {
|
#network.disconnected {
|
||||||
margin: 0px 0px 0px 0px;
|
margin: 0px 0px 0px 0px;
|
||||||
color: rgba(75, 81, 98, 0);
|
color: rgba(75, 81, 98, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#pulseaudio.muted {
|
#pulseaudio.muted {
|
||||||
margin: 0px 0px 0px 0px;
|
margin: 0px 0px 0px 0px;
|
||||||
color: rgba(75, 81, 98, 0);
|
color: rgba(75, 81, 98, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#custom-notification {
|
||||||
|
font-family: "NotoSansMono Nerd Font";
|
||||||
|
}
|
||||||
|
|
111
profiles/base-user/.gitignore
vendored
111
profiles/base-user/.gitignore
vendored
|
@ -1,111 +0,0 @@
|
||||||
*
|
|
||||||
|
|
||||||
!*.nix
|
|
||||||
!/.gitignore
|
|
||||||
|
|
||||||
!/.zshrc
|
|
||||||
!/.Xdefaults
|
|
||||||
!/.Xresources
|
|
||||||
!/.xinitrc
|
|
||||||
!/.config
|
|
||||||
|
|
||||||
!/assets
|
|
||||||
!/assets/wallpaper.jpg
|
|
||||||
|
|
||||||
!/.config/dircolors
|
|
||||||
|
|
||||||
!/.config/xmodmap
|
|
||||||
|
|
||||||
!/.config/environment.d
|
|
||||||
!/.config/environment.d/profile.conf
|
|
||||||
!/.config/environment.d/drone.conf
|
|
||||||
!/.config/environment.d/restic.conf
|
|
||||||
|
|
||||||
!/.config/user-dirs.dirs
|
|
||||||
!/.config/user-dirs.locale
|
|
||||||
|
|
||||||
!/.config/gtk-2.0
|
|
||||||
!/.config/gtk-2.0/gtkrc
|
|
||||||
|
|
||||||
!/.config/gtk-3.0
|
|
||||||
!/.config/gtk-3.0/settings.ini
|
|
||||||
|
|
||||||
!/.config/xsettingsd
|
|
||||||
!/.config/xsettingsd/xsettingsd.conf
|
|
||||||
|
|
||||||
!/.config/mako
|
|
||||||
!/.config/mako/config
|
|
||||||
|
|
||||||
!/.config/alacritty
|
|
||||||
!/.config/alacritty/alacritty.yml
|
|
||||||
|
|
||||||
!/.config/git
|
|
||||||
!/.config/git/config
|
|
||||||
|
|
||||||
!/.config/vifm
|
|
||||||
!/.config/vifm/vifmrc
|
|
||||||
!/.config/vifm/scripts
|
|
||||||
!/.config/vifm/colors
|
|
||||||
!/.config/vifm/colors/base16.vifm
|
|
||||||
|
|
||||||
!/.config/nvim
|
|
||||||
!/.config/nvim/init.vim
|
|
||||||
!/.config/nvim/clipboard.vim
|
|
||||||
!/.config/nvim/lsp.vim
|
|
||||||
!/.config/nvim/quickfixopenall.vim
|
|
||||||
!/.config/nvim/ui.vim
|
|
||||||
|
|
||||||
!/.config/mimeapps.list
|
|
||||||
|
|
||||||
!/.config/libinput-gestures.conf
|
|
||||||
|
|
||||||
!/.config/sway
|
|
||||||
!/.config/sway/config
|
|
||||||
!/.config/sway/config.d
|
|
||||||
!/.config/sway/config.d/applications.conf
|
|
||||||
!/.config/sway/config.d/autostart.conf
|
|
||||||
!/.config/sway/config.d/colorscheme.conf
|
|
||||||
!/.config/sway/config.d/custom-keybindings.conf
|
|
||||||
!/.config/sway/config.d/gaps.conf
|
|
||||||
!/.config/sway/config.d/input-defaults.conf
|
|
||||||
!/.config/sway/config.d/systemd.conf
|
|
||||||
!/.config/sway/config.d/theme.conf
|
|
||||||
!/.config/sway/config.d/biolimo
|
|
||||||
!/.config/sway/config.d/biolimo/screens.conf
|
|
||||||
!/.config/sway/config.d/biolimo/inputs.conf
|
|
||||||
!/.config/sway/config.d/chocolatebar
|
|
||||||
!/.config/sway/config.d/chocolatebar/screens.conf
|
|
||||||
|
|
||||||
!/.config/waybar
|
|
||||||
!/.config/waybar/colorscheme.css
|
|
||||||
!/.config/waybar/config
|
|
||||||
!/.config/waybar/style.css
|
|
||||||
|
|
||||||
!/.config/mutt
|
|
||||||
!/.config/mutt/muttrc
|
|
||||||
!/.config/mutt/base16.muttrc
|
|
||||||
!/.config/mutt/mailcap
|
|
||||||
|
|
||||||
!/.config/offlineimap
|
|
||||||
!/.config/offlineimap/functions.py
|
|
||||||
|
|
||||||
!/.local
|
|
||||||
!/.local/bin
|
|
||||||
!/.local/bin/install-base
|
|
||||||
!/.local/bin/swaylock-bg
|
|
||||||
!/.local/bin/sway-launcher
|
|
||||||
!/.local/bin/sway-service
|
|
||||||
!/.local/bin/toggle-kbd-layout
|
|
||||||
!/.local/bin/wcwd
|
|
||||||
!/.local/bin/vifmrun
|
|
||||||
!/.local/bin/vifmimg
|
|
||||||
!/.local/bin/s
|
|
||||||
!/.local/bin/windows
|
|
||||||
!/.local/bin/import-gtk-settings
|
|
||||||
!/.local/bin/mailto-mutt
|
|
||||||
!/.local/bin/setup-host-conf
|
|
||||||
!/.local/bin/steam-xdg
|
|
||||||
|
|
||||||
!/.local/share
|
|
||||||
!/.local/share/applications
|
|
||||||
!/.local/share/applications/userapp-Firefox.desktop
|
|
File diff suppressed because one or more lines are too long
|
@ -17,11 +17,12 @@ in
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = psCfg.user.description;
|
description = psCfg.user.description;
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"wheel"
|
|
||||||
"input"
|
"input"
|
||||||
"networkmanager"
|
|
||||||
"lp"
|
"lp"
|
||||||
|
"networkmanager"
|
||||||
"scanner"
|
"scanner"
|
||||||
|
"video"
|
||||||
|
"wheel"
|
||||||
];
|
];
|
||||||
initialHashedPassword = if psCfg.user.password != null then psCfg.user.password else "";
|
initialHashedPassword = if psCfg.user.password != null then psCfg.user.password else "";
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
|
|
|
@ -25,6 +25,16 @@ in
|
||||||
programs.dircolors.enable = true;
|
programs.dircolors.enable = true;
|
||||||
programs.dircolors.enableZshIntegration = true;
|
programs.dircolors.enableZshIntegration = true;
|
||||||
|
|
||||||
|
programs.less = {
|
||||||
|
enable = true;
|
||||||
|
keys = ''
|
||||||
|
k forw-line
|
||||||
|
i back-line
|
||||||
|
K forw-scroll
|
||||||
|
I back-scroll
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
home.file."xinitrc".source = ./.xinitrc;
|
home.file."xinitrc".source = ./.xinitrc;
|
||||||
|
|
||||||
xdg.enable = true;
|
xdg.enable = true;
|
||||||
|
@ -43,6 +53,8 @@ in
|
||||||
xdg.configFile."vifm/vifmrc".source = ./.config/vifm/vifmrc;
|
xdg.configFile."vifm/vifmrc".source = ./.config/vifm/vifmrc;
|
||||||
xdg.configFile."vifm/colors/base16.vifm".source = ./.config/vifm/colors/base16.vifm;
|
xdg.configFile."vifm/colors/base16.vifm".source = ./.config/vifm/colors/base16.vifm;
|
||||||
xdg.configFile."libinput-gestures.conf".source = ./.config/libinput-gestures.conf;
|
xdg.configFile."libinput-gestures.conf".source = ./.config/libinput-gestures.conf;
|
||||||
|
xdg.configFile."swaync/config.json".source = ./.config/swaync/config.json;
|
||||||
|
xdg.configFile."swaync/style.css".source = ./.config/swaync/style.css;
|
||||||
xdg.configFile."waybar/config".source = ./.config/waybar/config;
|
xdg.configFile."waybar/config".source = ./.config/waybar/config;
|
||||||
xdg.configFile."waybar/style.css".source = ./.config/waybar/style.css;
|
xdg.configFile."waybar/style.css".source = ./.config/waybar/style.css;
|
||||||
xdg.configFile."waybar/colorscheme.css".source = ./.config/waybar/colorscheme.css;
|
xdg.configFile."waybar/colorscheme.css".source = ./.config/waybar/colorscheme.css;
|
||||||
|
|
|
@ -22,6 +22,6 @@
|
||||||
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
||||||
"x-scheme-handler/mailto" = [ "userapp-Thunderbird.desktop" ];
|
"x-scheme-handler/mailto" = [ "userapp-Thunderbird.desktop" ];
|
||||||
"x-scheme-handler/msteams" = [ "teams.desktop" ];
|
"x-scheme-handler/msteams" = [ "teams.desktop" ];
|
||||||
"x-scheme-handler/tg" = [ "userapp-Telegram Desktop-JBKFU0.desktop" ];
|
"x-scheme-handler/tg" = [ "userapp-Telegram Desktop-1RE3J1.desktop" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
{ pkgs, lib, ... }:
|
{
|
||||||
let
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
folder = ./.;
|
folder = ./.;
|
||||||
toImport = name: value: folder + ("/" + name);
|
toImport = name: value: folder + ("/" + name);
|
||||||
filterCaches = key: value: value == "regular" && lib.hasSuffix ".nix" key && key != "default.nix";
|
filterCaches = key: value: value == "regular" && lib.hasSuffix ".nix" key && key != "default.nix";
|
||||||
imports = lib.mapAttrsToList toImport (lib.filterAttrs filterCaches (builtins.readDir folder));
|
imports = lib.mapAttrsToList toImport (lib.filterAttrs filterCaches (builtins.readDir folder));
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
inherit imports;
|
inherit imports;
|
||||||
nix.binaryCaches = [ "https://cache.nixos.org/" ];
|
nix.settings.substituters = ["https://cache.nixos.org/"];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
nix = {
|
nix.settings = {
|
||||||
binaryCaches = [
|
substituters = [
|
||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
];
|
];
|
||||||
binaryCachePublicKeys = [
|
trusted-public-keys = [
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
nix = {
|
nix.settings = {
|
||||||
binaryCaches = [
|
substituters = [
|
||||||
"https://nrdxp.cachix.org"
|
"https://nrdxp.cachix.org"
|
||||||
];
|
];
|
||||||
binaryCachePublicKeys = [
|
trusted-public-keys = [
|
||||||
"nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4="
|
"nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4="
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
15
secrets/environment-secrets.age
Normal file
15
secrets/environment-secrets.age
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 Wp/X/Q vi9OTQKWNMjcFxcFxjmef3uVhATya9tA1BbS4I5unX0
|
||||||
|
uW3+5JdLQpIhFBwW54uTcI4fQ0wv8mjqTkrfL/VNiYI
|
||||||
|
-> ssh-ed25519 8U1+ng RTZuwmXp/Y32S3Wl49wu1QbPOUcUKpU2wFpPPe0cXEw
|
||||||
|
Zo1l9ZFBaFF/tzOG9zV/xGQBo1pX0AI1+Y75Ak5RSVg
|
||||||
|
-> ssh-ed25519 BVsyTA r4a1leF6KVyx9WlooY0UlQaYukV68xxI/0K1rUU0wzI
|
||||||
|
Pon1jMs8F43fuko3sfr6zLJ2byI4D8dPJt+MsJHncrg
|
||||||
|
-> piv-p256 xGzyzw A/f+lPJUWmFp16qnKAPer03T8zx3THmsgkmuSUfyPzVT
|
||||||
|
wHs2N5YTwGP2FMZLa4xYhq8mFrjMlPjtkG7SYYk0Cc8
|
||||||
|
-> UfCyg+%_-grease -psjj). +>ln{,{q zb&?uh yZk~q(
|
||||||
|
fpOxhJ7HKFoK2YxQCcuU5wiVtclm6sScfZVuXH2lPp7D+W3LVOb+gCMVbzmRlbt3
|
||||||
|
nn/yaOqow+uqekxIyIO16OhHJJf/dOnozOvsvkh5Wqath81g83SW4F4
|
||||||
|
--- LPldrPY9EiCjwcNFm2fkLfsdry24htLFQmabkBT/QPw
|
||||||
|
i´/ëtŠ¯Æ`)¨éñ5<>Æ# Éïݘ6³©à%ª¹ÎÜÃC®Úƒëè—/½q¹µ‡sš¯§a#NsbæÊ|*8
|
||||||
|
n€WÏ®–9<EFBFBD>û)´y)eì4€xz칞½õ1‰£0©ÜIx#'^'1¼<04>=q29ßFƒõ¸?5)œ~j¾…Æ<>¤Z ¡Ý”¦'æ ÐÒÄ×A`|<7C>Ò ÈK5ã<35>7¸4rM—dêõÇÕ<C387>5q§*Éà²Ãqk“m…Ü'!¨×¡ÑÈ\¥ü·Wö³¼êº.K
|
14
secrets/example-secret.age
Normal file
14
secrets/example-secret.age
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 Wp/X/Q rilMAu0gNVmM5kzkfI6LHy8LYpqu6OJ68lnf+/IFuQA
|
||||||
|
7VAOcxVWeIfix5Imuz9IACxHSL/Lfpj4xUmGBTrSs+E
|
||||||
|
-> ssh-ed25519 8U1+ng yHW9NoLk8yIn7q5jzi4cB2TcOMJMjdr0KX9nmhgsVU4
|
||||||
|
mVB5vqHmlyRQwcTil3owI+VZ0gvUqpD3PCh7fdVakmA
|
||||||
|
-> ssh-ed25519 BVsyTA oGjMX1pyf0xHml4uZJr4mPfGCCB7TV1iX3bMLmLM+SU
|
||||||
|
75mURQZr8mVqgAitknaqIOdgfnHqUUItq4JYYaslidM
|
||||||
|
-> piv-p256 xGzyzw AjcLhwpsbCCjjDkdVjLsb7tf3oJe0FoBgkC+jUZzLwcm
|
||||||
|
/GqKWJL1qiVwz9E47rSb4rZEZ+P6fvvTgU4DTnpPGAE
|
||||||
|
-> _NBk)?2K-grease H
|
||||||
|
AntIeBKXk4SPMRdzlsvVp/bdRe6rk0uGHDlECTl8rRoR3/XHDbuYeg8EAyAPc1jQ
|
||||||
|
yh2mQYhV3ztro8ermvxuyYvzjaT22Ox/
|
||||||
|
--- 3qLt8D2zH6sWWqPToa+NQH35jGrTjbB8BxwExrtkZCo
|
||||||
|
]v‚ÍÑÞ¿ëExü¥ìQ<å#¨#Ãì;Q<0E>š—×Í ‘*õõ]w<>,çr
|
7
secrets/identities/age-yubikey-identity-c46cf2cf.txt
Normal file
7
secrets/identities/age-yubikey-identity-c46cf2cf.txt
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# Serial: 10593996, Slot: 1
|
||||||
|
# Name: age-id-0
|
||||||
|
# Created: Mon, 24 Oct 2022 14:47:23 +0000
|
||||||
|
# PIN policy: Once (A PIN is required once per session, if set)
|
||||||
|
# Touch policy: Never (A physical touch is NOT required to decrypt)
|
||||||
|
# Recipient: age1yubikey1qdxpc9qenrkhqxnu2p6sgyfxhnxcvz99jcaq36uqcztuzsy92q596shqxkf
|
||||||
|
AGE-PLUGIN-YUBIKEY-1EJN2ZQYZC3K09NCU47TDH
|
1
secrets/identities/personal-5-nfc.txt
Normal file
1
secrets/identities/personal-5-nfc.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
AGE-PLUGIN-YUBIKEY-1EJN2ZQYZC3K09NCU47TDH
|
|
@ -1,9 +1,17 @@
|
||||||
let
|
let
|
||||||
# set ssh public keys here for your system and user
|
# set ssh public keys here for your system and user
|
||||||
system = "";
|
machines = {
|
||||||
user = "";
|
dumpyourvms = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILDATEWAgDZFfYs1ZPh33Kg4sqQ9tWMVKyk8XqFu3Koe host@dumpyourvms";
|
||||||
allKeys = [ system user ];
|
ryzensun = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH/l7MfEmt510BMeNjuXNPmZ0brcQidvrrpcea+qJMjX root@ryzensun";
|
||||||
|
};
|
||||||
|
users = {
|
||||||
|
teutat3s = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHcU6KPy4b1MQXd6EJhcYwbJu7E+0IrBZF/IP6T7gbMf teutat3s@dumpyourvms";
|
||||||
|
teutat3s-5-nfc = "age1yubikey1qdxpc9qenrkhqxnu2p6sgyfxhnxcvz99jcaq36uqcztuzsy92q596shqxkf";
|
||||||
|
};
|
||||||
|
allKeys = [ machines.dumpyourvms machines.ryzensun users.teutat3s users.teutat3s-5-nfc ];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
"secret.age".publicKeys = allKeys;
|
"example-secret.age".publicKeys = allKeys;
|
||||||
|
"environment-secrets.age".publicKeys = allKeys;
|
||||||
|
"test-secret.age".publicKeys = [ users.teutat3s-5-nfc ];
|
||||||
}
|
}
|
||||||
|
|
8
secrets/test-secret.age
Normal file
8
secrets/test-secret.age
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> piv-p256 xGzyzw A/HuCNXXxY5cxn2SSdo8Vxec/fjRtyHs1635LSlX0Jif
|
||||||
|
D4JxFia0qmBZ4Tbk930rWyqynlv6gLL2FPAaAHAN9II
|
||||||
|
-> :Mvm-grease v] *~hy9uI2
|
||||||
|
ukmMu/ex7QHQIImtAi6H7plG2RGy1HbsTRFr5mSn8eZgnRwU2J188VW3PL0T5jul
|
||||||
|
BLsY/Q1yhtQ
|
||||||
|
--- KtbJqPbJH5uHkxmmuRe0HgawfcSZ6dHwFKKII24kGk8
|
||||||
|
n:êþæ#ÅÇþ¯I*Î`+Š¢ÈRÇ£3)þÛ|ÊÖÒ‚g<E2809A>[Ïï<C38F>ÔÈ!
|
1
secrets/teutat3s-yubikey.pub
Normal file
1
secrets/teutat3s-yubikey.pub
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFro/k4Mgqyh8yV/7Zwjc0dv60ZM7bROBU9JNd99P/4co6fxPt1pJiU/pEz2Dax/HODxgcO+jFZfvPEuLMCeAl0= YubiKey #10593996 PIV Slot 9a
|
|
@ -1,14 +1,27 @@
|
||||||
{ pkgs, extraModulesPath, inputs, lib, ... }:
|
{
|
||||||
let
|
pkgs,
|
||||||
|
extraModulesPath,
|
||||||
inherit (pkgs)
|
inputs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit
|
||||||
|
(pkgs)
|
||||||
agenix
|
agenix
|
||||||
cachix
|
cachix
|
||||||
editorconfig-checker
|
editorconfig-checker
|
||||||
mdbook
|
mdbook
|
||||||
nix
|
nix
|
||||||
nixpkgs-fmt
|
alejandra
|
||||||
nvfetcher
|
nvfetcher
|
||||||
|
shellcheck
|
||||||
|
shfmt
|
||||||
|
treefmt
|
||||||
|
;
|
||||||
|
|
||||||
|
inherit
|
||||||
|
(pkgs.nodePackages)
|
||||||
|
prettier
|
||||||
;
|
;
|
||||||
|
|
||||||
hooks = import ./hooks;
|
hooks = import ./hooks;
|
||||||
|
@ -17,9 +30,7 @@ let
|
||||||
devos = pkgWithCategory "devos";
|
devos = pkgWithCategory "devos";
|
||||||
linter = pkgWithCategory "linter";
|
linter = pkgWithCategory "linter";
|
||||||
docs = pkgWithCategory "docs";
|
docs = pkgWithCategory "docs";
|
||||||
|
in {
|
||||||
in
|
|
||||||
{
|
|
||||||
_file = toString ./.;
|
_file = toString ./.;
|
||||||
|
|
||||||
imports = ["${extraModulesPath}/git/hooks.nix"];
|
imports = ["${extraModulesPath}/git/hooks.nix"];
|
||||||
|
@ -28,7 +39,23 @@ in
|
||||||
# override for our own welcome
|
# override for our own welcome
|
||||||
devshell.name = pkgs.lib.mkForce "PubSolarOS";
|
devshell.name = pkgs.lib.mkForce "PubSolarOS";
|
||||||
|
|
||||||
commands = with pkgs; [
|
# tempfix: remove when merged https://github.com/numtide/devshell/pull/123
|
||||||
|
devshell.startup.load_profiles = pkgs.lib.mkForce (pkgs.lib.noDepEntry ''
|
||||||
|
# PATH is devshell's exorbitant privilige:
|
||||||
|
# fence against its pollution
|
||||||
|
_PATH=''${PATH}
|
||||||
|
# Load installed profiles
|
||||||
|
for file in "$DEVSHELL_DIR/etc/profile.d/"*.sh; do
|
||||||
|
# If that folder doesn't exist, bash loves to return the whole glob
|
||||||
|
[[ -f "$file" ]] && source "$file"
|
||||||
|
done
|
||||||
|
# Exert exorbitant privilige and leave no trace
|
||||||
|
export PATH=''${_PATH}
|
||||||
|
unset _PATH
|
||||||
|
'');
|
||||||
|
|
||||||
|
commands = with pkgs;
|
||||||
|
[
|
||||||
(devos nix)
|
(devos nix)
|
||||||
(devos agenix)
|
(devos agenix)
|
||||||
{
|
{
|
||||||
|
@ -37,8 +64,12 @@ in
|
||||||
help = pkgs.nvfetcher.meta.description;
|
help = pkgs.nvfetcher.meta.description;
|
||||||
command = "cd $PRJ_ROOT/pkgs; ${pkgs.nvfetcher}/bin/nvfetcher -c ./sources.toml $@";
|
command = "cd $PRJ_ROOT/pkgs; ${pkgs.nvfetcher}/bin/nvfetcher -c ./sources.toml $@";
|
||||||
}
|
}
|
||||||
(linter nixpkgs-fmt)
|
(linter alejandra)
|
||||||
(linter editorconfig-checker)
|
(linter editorconfig-checker)
|
||||||
|
(linter nodePackages.prettier)
|
||||||
|
(linter shfmt)
|
||||||
|
(linter shellcheck)
|
||||||
|
(linter treefmt)
|
||||||
|
|
||||||
(docs mdbook)
|
(docs mdbook)
|
||||||
]
|
]
|
||||||
|
@ -48,6 +79,5 @@ in
|
||||||
++ lib.optionals (pkgs.stdenv.hostPlatform.isLinux && !pkgs.stdenv.buildPlatform.isDarwin) [
|
++ lib.optionals (pkgs.stdenv.hostPlatform.isLinux && !pkgs.stdenv.buildPlatform.isDarwin) [
|
||||||
(devos inputs.nixos-generators.defaultPackage.${pkgs.system})
|
(devos inputs.nixos-generators.defaultPackage.${pkgs.system})
|
||||||
(devos deploy-rs)
|
(devos deploy-rs)
|
||||||
]
|
];
|
||||||
;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
if git rev-parse --verify HEAD >/dev/null 2>&1
|
if git rev-parse --verify HEAD >/dev/null 2>&1; then
|
||||||
then
|
|
||||||
against=HEAD
|
against=HEAD
|
||||||
else
|
else
|
||||||
# Initial commit: diff against an empty tree object
|
# Initial commit: diff against an empty tree object
|
||||||
|
@ -10,23 +9,20 @@ fi
|
||||||
|
|
||||||
diff="git diff-index --name-only --cached $against --diff-filter d"
|
diff="git diff-index --name-only --cached $against --diff-filter d"
|
||||||
|
|
||||||
nix_files=($($diff -- '*.nix'))
|
|
||||||
all_files=($($diff))
|
all_files=($($diff))
|
||||||
|
|
||||||
# Format staged nix files.
|
# Format staged files.
|
||||||
if (( ${#nix_files[@]} != 0 )); then
|
if ((${#all_files[@]} != 0)); then
|
||||||
nixpkgs-fmt "${nix_files[@]}" \
|
treefmt "${all_files[@]}" &&
|
||||||
&& git add "${nix_files[@]}"
|
git add "${all_files[@]}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# check editorconfig
|
# check editorconfig
|
||||||
if ((${#all_files[@]} != 0)); then
|
if ((${#all_files[@]} != 0)); then
|
||||||
editorconfig-checker -- "${all_files[@]}"
|
if ! editorconfig-checker -- "${all_files[@]}"; then
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $? != '0' ]]; then
|
|
||||||
printf "%b\n" \
|
printf "%b\n" \
|
||||||
"\nCode is not aligned with .editorconfig" \
|
"\nCode is not aligned with .editorconfig" \
|
||||||
"Review the output and commit your fixes" >&2
|
"Review the output and commit your fixes" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
22
treefmt.toml
Normal file
22
treefmt.toml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
[formatter.nix]
|
||||||
|
command = "alejandra"
|
||||||
|
includes = ["*.nix"]
|
||||||
|
|
||||||
|
[formatter.prettier]
|
||||||
|
command = "prettier"
|
||||||
|
options = ["--write"]
|
||||||
|
includes = [
|
||||||
|
"*.json",
|
||||||
|
"*.yaml",
|
||||||
|
"*.md",
|
||||||
|
]
|
||||||
|
|
||||||
|
[formatter.shell]
|
||||||
|
command = "shfmt"
|
||||||
|
options = [
|
||||||
|
"-s",
|
||||||
|
"-w",
|
||||||
|
"-i",
|
||||||
|
"2",
|
||||||
|
]
|
||||||
|
includes = ["*.sh"]
|
|
@ -13,7 +13,7 @@
|
||||||
password = "$6$Kv0BCLU2Jg7GN8Oa$hc2vERKCbZdczFqyHPfgCaleGP.JuOWyd.bfcIsLDNmExGXI6Rnkze.SWzVzVS311KBznN/P4uUYAUADXkVtr.";
|
password = "$6$Kv0BCLU2Jg7GN8Oa$hc2vERKCbZdczFqyHPfgCaleGP.JuOWyd.bfcIsLDNmExGXI6Rnkze.SWzVzVS311KBznN/P4uUYAUADXkVtr.";
|
||||||
fullName = "Pub Solar";
|
fullName = "Pub Solar";
|
||||||
email = "iso@pub.solar";
|
email = "iso@pub.solar";
|
||||||
publicKeys = [ ];
|
publicKeys = [ ../../secrets/teutat3s-yubikey.pub ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
25
users/teutat3s/.config/git/config.nix
Normal file
25
users/teutat3s/.config/git/config.nix
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
in
|
||||||
|
pkgs.lib.mkAfter ''[sendemail]
|
||||||
|
smtpserver = smtp.mailbox.org
|
||||||
|
smtpuser = jhonas@mailbox.org
|
||||||
|
smtpencryption = tls
|
||||||
|
smtpserverport = 587
|
||||||
|
|
||||||
|
[lfs]
|
||||||
|
repositoryformatversion = 0
|
||||||
|
[filter "lfs"]
|
||||||
|
clean = git-lfs clean -- %f
|
||||||
|
smudge = git-lfs smudge -- %f
|
||||||
|
process = git-lfs filter-process
|
||||||
|
required = true
|
||||||
|
|
||||||
|
[safe]
|
||||||
|
directory = /home/teutat3s/CodeRoom/git.b12f.io/pub-solar/os
|
||||||
|
|
||||||
|
[includeIf "gitdir:~/CodeRoom/greenbaum.cloud/"]
|
||||||
|
path = ~/.config/git/config_greenbaum.cloud
|
||||||
|
|
||||||
|
[includeIf "gitdir:~/CodeRoom/git.b12f.io/"]
|
||||||
|
path = ~/.config/git/config_git.b12f.io''
|
7
users/teutat3s/.config/git/config_git.b12f.io.nix
Normal file
7
users/teutat3s/.config/git/config_git.b12f.io.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
in
|
||||||
|
''[user]
|
||||||
|
name = teutat3s
|
||||||
|
email = teutates@mailbox.org
|
||||||
|
signingkey = 4FA1D3FA524F22C1''
|
7
users/teutat3s/.config/git/config_greenbaum.cloud.nix
Normal file
7
users/teutat3s/.config/git/config_greenbaum.cloud.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
in
|
||||||
|
''[user]
|
||||||
|
name = jhonas
|
||||||
|
email = wernery@greenbaum.cloud
|
||||||
|
signingkey = 924889A86D0B0FEB''
|
29
users/teutat3s/.config/watson/config.nix
Normal file
29
users/teutat3s/.config/watson/config.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
in
|
||||||
|
''# Watson configuration
|
||||||
|
# showing defaults commented out
|
||||||
|
|
||||||
|
# not implemented yet as of 2.0.1
|
||||||
|
#[backend]
|
||||||
|
#url = https://api.crick.fr
|
||||||
|
#token = yourapitoken
|
||||||
|
|
||||||
|
[options]
|
||||||
|
#options.confirm_new_project = false
|
||||||
|
#options.confirm_new_tag = false
|
||||||
|
date_format = %d.%m.%Y
|
||||||
|
#log_current = false
|
||||||
|
pager = false
|
||||||
|
#report_current = false
|
||||||
|
#reverse_log = true
|
||||||
|
stop_on_start = true
|
||||||
|
#stop_on_restart = false
|
||||||
|
time_format = %H:%M%z
|
||||||
|
#week_start = monday
|
||||||
|
|
||||||
|
#[default_tags]
|
||||||
|
#project-name = tag1 tag2
|
||||||
|
#python101 = teaching python
|
||||||
|
#voyager2 = nasa 'space mission'
|
||||||
|
''
|
28
users/teutat3s/default.nix
Normal file
28
users/teutat3s/default.nix
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{ config, hmUsers, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
psCfg = config.pub-solar;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./home.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
home-manager.users = { inherit (hmUsers) teutat3s; };
|
||||||
|
|
||||||
|
pub-solar = {
|
||||||
|
# These are your personal settings
|
||||||
|
# The only required settings are `name` and `password`,
|
||||||
|
# The rest is used for programs like git
|
||||||
|
user = {
|
||||||
|
name = "teutat3s";
|
||||||
|
fullName = "teutat3s";
|
||||||
|
email = "10206665+teutat3s@users.noreply.github.com";
|
||||||
|
gpgKeyId = "18DAE600A6BBE705";
|
||||||
|
password = "$6$guLp1v0G0TxGThXX$y7YeEcYjFpN6gutLCbvAkqppOVLYZjfo4DxofrMm6a9MIjVoKKaY20UzityJsHbQU4THIFfj8gLWVOjyjL.P2.";
|
||||||
|
};
|
||||||
|
|
||||||
|
sway.v4l2loopback.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
83
users/teutat3s/home.nix
Normal file
83
users/teutat3s/home.nix
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
home-manager,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
psCfg = config.pub-solar;
|
||||||
|
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
|
||||||
|
tritonshell = inputs.tritonshell;
|
||||||
|
nix-autobahn = inputs.nix-autobahn;
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
./session-variables.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
pub-solar.social.enable = true;
|
||||||
|
|
||||||
|
pub-solar.graphical.alacritty.settings.font.size = 12;
|
||||||
|
pub-solar.graphical.alacritty.settings.key_bindings = [
|
||||||
|
{
|
||||||
|
key = "V";
|
||||||
|
mods = "Control|Super";
|
||||||
|
action = "Paste";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "C";
|
||||||
|
mods = "Control|Super";
|
||||||
|
action = "Copy";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
#services.kbfs.enable = true;
|
||||||
|
#services.keybase.enable = true;
|
||||||
|
services.yubikey-agent.enable = true;
|
||||||
|
home-manager = pkgs.lib.setAttrByPath ["users" psCfg.user.name] {
|
||||||
|
xdg.configFile."git/config".text = import ./.config/git/config.nix {
|
||||||
|
inherit config;
|
||||||
|
inherit pkgs;
|
||||||
|
};
|
||||||
|
xdg.configFile."git/config_greenbaum.cloud".text = import ./.config/git/config_greenbaum.cloud.nix {
|
||||||
|
inherit config;
|
||||||
|
inherit pkgs;
|
||||||
|
};
|
||||||
|
xdg.configFile."git/config_git.b12f.io".text = import ./.config/git/config_git.b12f.io.nix {
|
||||||
|
inherit config;
|
||||||
|
inherit pkgs;
|
||||||
|
};
|
||||||
|
xdg.configFile."watson/config".text = import ./.config/watson/config.nix {
|
||||||
|
inherit config;
|
||||||
|
inherit pkgs;
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
AusweisApp2
|
||||||
|
consul
|
||||||
|
drone-docker-runner
|
||||||
|
gpu-switch
|
||||||
|
ifmetric
|
||||||
|
ipmitool
|
||||||
|
keybase-gui
|
||||||
|
nomad_1_4
|
||||||
|
thunderbird
|
||||||
|
vault
|
||||||
|
veracrypt
|
||||||
|
waypoint
|
||||||
|
yubikey-agent
|
||||||
|
age-plugin-yubikey
|
||||||
|
nix-autobahn.packages.${pkgs.system}.default
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.zsh = {
|
||||||
|
initExtra = import ./zshrc.nix {inherit config pkgs tritonshell;};
|
||||||
|
};
|
||||||
|
|
||||||
|
# xdg.configFile."wallpaper.jpg".source = ./assets/wallpaper.jpg;
|
||||||
|
};
|
||||||
|
|
||||||
|
#services.mopidy.configuration = mkIf config.pub-solar.audio.enable (builtins.readFile ../../secrets/mopidy.conf);
|
||||||
|
};
|
||||||
|
}
|
13
users/teutat3s/session-variables.nix
Normal file
13
users/teutat3s/session-variables.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
psCfg = config.pub-solar;
|
||||||
|
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home-manager = pkgs.lib.setAttrByPath [ "users" psCfg.user.name ] {
|
||||||
|
home.sessionVariables = {
|
||||||
|
DRONE_SERVER = "https://ci.b12f.io";
|
||||||
|
GOPATH = "/home/${psCfg.user.name}/CodeRoom/go";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
105
users/teutat3s/zshrc.nix
Normal file
105
users/teutat3s/zshrc.nix
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
tritonshell,
|
||||||
|
...
|
||||||
|
}: ''
|
||||||
|
bindkey "^[[1;3D" backward-word
|
||||||
|
bindkey "^[[1;3C" forward-word
|
||||||
|
bindkey "^[p" backward-word
|
||||||
|
bindkey "^[n" forward-word
|
||||||
|
|
||||||
|
# make cursor jump to slash, period, dash, underscore, dollar sign, equals sign
|
||||||
|
# by default: export WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>'
|
||||||
|
export WORDCHARS='*?[]~&;!#$%^(){}'
|
||||||
|
|
||||||
|
# Alt+Backspace stops at /
|
||||||
|
bindkey "^[^?" backward-kill-word
|
||||||
|
backward-kill-dir () {
|
||||||
|
local WORDCHARS=''${WORDCHARS/\/}
|
||||||
|
zle backward-kill-word
|
||||||
|
}
|
||||||
|
zle -N backward-kill-dir
|
||||||
|
bindkey '^[^?' backward-kill-dir
|
||||||
|
|
||||||
|
# git aliases
|
||||||
|
alias ga="git add"
|
||||||
|
alias gau="git add --update"
|
||||||
|
alias gb="git branch"
|
||||||
|
alias gbd="git branch --delete"
|
||||||
|
alias gc="git commit"
|
||||||
|
alias gcm="git commit --message"
|
||||||
|
alias gco="git checkout"
|
||||||
|
alias gcob="git checkout -b"
|
||||||
|
alias gd="git diff"
|
||||||
|
alias gm="git merge"
|
||||||
|
alias gma="git merge --abort"
|
||||||
|
alias gmc="git merge --continue"
|
||||||
|
alias gp="git pull"
|
||||||
|
alias gs="git status"
|
||||||
|
|
||||||
|
# misc aliases
|
||||||
|
alias zshconfig="vim ~/.zshrc"
|
||||||
|
alias zshhistory="vim $XDG_DATA_HOME/zsh/zsh_history"
|
||||||
|
alias zshsource="source ~/.zshrc"
|
||||||
|
|
||||||
|
alias tp="triton profile set"
|
||||||
|
alias tt="triton"
|
||||||
|
alias ttco="triton-compose"
|
||||||
|
alias tf="terraform"
|
||||||
|
|
||||||
|
alias dstart="sudo systemctl start docker"
|
||||||
|
alias dstop="sudo systemctl stop docker"
|
||||||
|
alias lvstart="sudo systemctl start libvirtd"
|
||||||
|
alias lvstop="sudo systemctl stop libvirtd"
|
||||||
|
|
||||||
|
|
||||||
|
alias wg-up="sudo systemctl start wg-quick@wg0.service"
|
||||||
|
alias wg-down="sudo systemctl stop wg-quick@wg0.service"
|
||||||
|
|
||||||
|
# Helper function for docker on triton
|
||||||
|
ttp() {
|
||||||
|
if [[ "$1" == "set" ]]; then
|
||||||
|
if [[ -n "$2" ]]; then
|
||||||
|
source ${tritonshell.packages.${pkgs.system}.triton-utils}/bin/unset-env.sh
|
||||||
|
triton profile set "$2"
|
||||||
|
fi
|
||||||
|
source ${tritonshell.packages.${pkgs.system}.triton-docker-env}/bin/triton-docker-env.sh
|
||||||
|
elif [[ "$1" == "unset" ]]; then
|
||||||
|
source ${tritonshell.packages.${pkgs.system}.triton-utils}/bin/unset-env.sh
|
||||||
|
elif [[ "$1" == "env" ]]; then
|
||||||
|
env | grep "DOCKER\|MANTA\|SDC\|TRITON" | sort
|
||||||
|
else
|
||||||
|
echo "this is a helper function to quickly switch triton profiles"
|
||||||
|
echo "and setup the required environment variables"
|
||||||
|
echo "for triton, manta and the remote docker host (API)"
|
||||||
|
echo
|
||||||
|
echo 'use "ttp set your-profile" to switch to a profile'
|
||||||
|
echo
|
||||||
|
echo 'use "ttp unset" to clear all environment variables used by these CLIs'
|
||||||
|
echo "useful if you'd like to run a docker command against the"
|
||||||
|
echo "local docker host"
|
||||||
|
echo
|
||||||
|
echo 'use "ttp env" to view the currently set environment variables'
|
||||||
|
echo "used by the triton & manta CLIs"
|
||||||
|
echo
|
||||||
|
echo 'use "ttp help" to view this help'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# remove @machine from prompt
|
||||||
|
DEFAULT_USER=$(whoami)
|
||||||
|
|
||||||
|
# autocomplete cd ..
|
||||||
|
zstyle ':completion:*' special-dirs true
|
||||||
|
|
||||||
|
autoload -U +X bashcompinit && bashcompinit
|
||||||
|
complete -o nospace -C ${pkgs.consul}/bin/consul consul
|
||||||
|
complete -o nospace -C ${pkgs.nomad_1_4}/bin/nomad nomad
|
||||||
|
complete -o nospace -C ${pkgs.vault}/bin/vault vault
|
||||||
|
complete -o nospace -C ${pkgs.terraform}/bin/terraform terraform
|
||||||
|
complete -o nospace -C ${pkgs.waypoint}/bin/waypoint waypoint
|
||||||
|
complete -C '${pkgs.awscli2}/bin/aws_completer' ${pkgs.awscli2}/bin/aws
|
||||||
|
|
||||||
|
source ${config.age.secrets.environment-secrets.path}
|
||||||
|
''
|
Loading…
Reference in a new issue