Compare commits
1088 Commits
4bcfb6a660
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| c1ed6a497b | |||
|
13ad7a6d25
|
|||
| d217d901b5 | |||
|
b1215a6f9f
|
|||
|
a2bdfdd4d2
|
|||
| 83c68257e5 | |||
| 9f825a7217 | |||
|
98fb5e039b
|
|||
|
d4706ae65a
|
|||
| 4ee36c3121 | |||
| cda5f092a1 | |||
|
5464df4407
|
|||
| e134860d43 | |||
|
e601dc1fb6
|
|||
|
1eed8a02b3
|
|||
| d2a7007549 | |||
|
5f7aa85257
|
|||
| 517cf4abcf | |||
|
3d90fd01df
|
|||
| 86f3d07711 | |||
|
93018d369f
|
|||
| 15aaadfe32 | |||
| 0671a72d9d | |||
|
0414372143
|
|||
|
48df0bdd21
|
|||
|
0d209b887b
|
|||
|
85825f23fb
|
|||
| bb4666e3a2 | |||
| 59d87a2189 | |||
| 3844e4b705 | |||
|
cb8a198c64
|
|||
|
d8c976ec47
|
|||
|
5ab5e53476
|
|||
| 99532f8c28 | |||
| e5afec1928 | |||
|
b43062fed3
|
|||
|
3844b1542d
|
|||
| cef96a23d6 | |||
| 8329233701 | |||
| 2410375f61 | |||
| 859900c38c | |||
| 3a943c0314 | |||
|
61f3aad45b
|
|||
|
b5b65f5672
|
|||
| 55120942e5 | |||
|
91024754a1
|
|||
|
cb18344397
|
|||
|
0bcdc41512
|
|||
| c04cb4bf34 | |||
|
289472df3a
|
|||
|
f15e80ec24
|
|||
| c7d99e5049 | |||
|
3ebf4eb126
|
|||
| e4eff8237e | |||
|
32a882e6d1
|
|||
| 7cf462b994 | |||
| c5589f5fc2 | |||
|
4dabfca256
|
|||
| 474779949f | |||
| 0ed0a380aa | |||
|
209547aa6f
|
|||
|
35b7783082
|
|||
| e655f2281a | |||
| c925d178ad | |||
| 8c4f3e66c5 | |||
| 0868df2645 | |||
| 9d7ca5c738 | |||
|
773ce12f0b
|
|||
| 15181280db | |||
| a5d2ba155a | |||
| e7c882e2e5 | |||
| 7f0fa004ad | |||
| 47be52d22d | |||
|
973af2ff33
|
|||
| 5b07a6db24 | |||
| c1c6d26cfe | |||
| 0849018907 | |||
| 640b6d3fd0 | |||
| ab428e34ac | |||
| f94ee3cd4d | |||
| df07bba9e8 | |||
| 8bfae8cc83 | |||
| 44b3e2e99e | |||
| 441e1f2828 | |||
| 3e7eb7ff8c | |||
| ca9815fd76 | |||
| b88f7c2620 | |||
|
c67a370092
|
|||
| db7065e449 | |||
| af7199c344 | |||
|
b5721ace60
|
|||
|
e625ae661c
|
|||
|
4ecd8939ba
|
|||
| 202b7157b4 | |||
| 18d452ae76 | |||
|
46ab5472f0
|
|||
|
e970b4b18b
|
|||
| 56f125040d | |||
| e607242486 | |||
|
a208e0673a
|
|||
| ca3b67584d | |||
|
863df12783
|
|||
| d7480d3685 | |||
| 9713f7bc50 | |||
| f079165525 | |||
| b394f9a44d | |||
| 9ee3d4cafd | |||
| 9405b92b3b | |||
| 0fd98ebf99 | |||
| 95930641f6 | |||
|
eaadb0bb26
|
|||
|
0e858cb5e8
|
|||
| ba743d791c | |||
| db09abbaed | |||
|
e3d6e304b2
|
|||
|
abcdb8060f
|
|||
| 7d9fcb17cd | |||
| 282cfe96d9 | |||
|
555140d9f6
|
|||
| 426d004020 | |||
|
966bb50149
|
|||
|
a5a305e907
|
|||
|
7056667392
|
|||
|
27f5e3e350
|
|||
|
4f0ab8b741
|
|||
|
bdadda5249
|
|||
|
12112b319b
|
|||
|
1f2ab17d6b
|
|||
|
b9a06eb264
|
|||
|
dfe7f043f1
|
|||
|
367d899455
|
|||
|
4c641d82c9
|
|||
|
0cc8d9b467
|
|||
|
00d77b7cad
|
|||
|
7d4def613a
|
|||
|
33dfef43c8
|
|||
|
472cf6518c
|
|||
|
90939f3311
|
|||
|
b9df372c6c
|
|||
|
a87db6c9e8
|
|||
|
682a8ddfee
|
|||
|
ab8898fcd1
|
|||
|
0c0748b223
|
|||
|
ab9ce09885
|
|||
|
3febac0eab
|
|||
|
3970c118cf
|
|||
|
236e037b9d
|
|||
|
13a8582ab9
|
|||
|
bfbdbe40b2
|
|||
|
471a2a05de
|
|||
|
7645afa79d
|
|||
|
7820c4a07d
|
|||
|
4661b91508
|
|||
|
7d4fd51dcf
|
|||
|
361314584e
|
|||
|
7552a752a9
|
|||
|
3a13160741
|
|||
| 5c03440098 | |||
| 2d3335b7e7 | |||
| f2e7a1fa97 | |||
| 3540b0aeda | |||
| f0eea2aae0 | |||
| 269602b7d8 | |||
| f4c89107c9 | |||
| ceeeadbad3 | |||
|
77fb08e746
|
|||
| 66fd237de3 | |||
| 3fbb0369af | |||
| ceb77d4b59 | |||
| f004dd83c2 | |||
| 9327a5c8b7 | |||
|
6281ffb58a
|
|||
| 09d4470257 | |||
| 781b1ace8c | |||
|
4d08eff8e3
|
|||
| f062583231 | |||
|
177128ada5
|
|||
|
ce6dd8d606
|
|||
|
a806ba4ef2
|
|||
|
42b8f67be8
|
|||
|
0565c43ef9
|
|||
|
c9fc8cf3bc
|
|||
| 135455402d | |||
| e850212f22 | |||
| 9ee42eacf1 | |||
| 9e6039cece | |||
| b6abc055b2 | |||
| 1e93af6f06 | |||
|
725e6309ea
|
|||
|
e00f3fe3a9
|
|||
|
6eb9f538c5
|
|||
| 907e108f8c | |||
|
0d09a74855
|
|||
| 8fbe09ab14 | |||
| 2c88c607f2 | |||
| 1195fa70a6 | |||
| f3c3dd53a6 | |||
| 0560cdcd71 | |||
| 77a85d1cc2 | |||
| eedd0f9b99 | |||
| 6073f6292e | |||
| 732c8f71e5 | |||
| 94e76b98fa | |||
| 1d3be9d7be | |||
| f5a4ad2dd3 | |||
| 9e30371f3b | |||
| 23ef0774de | |||
| a40c6ca775 | |||
| 8e52863e23 | |||
| 213e600bcc | |||
| a32f885301 | |||
| db30d7451c | |||
|
d6656ef5ee
|
|||
| 10d7ecb081 | |||
| b753384499 | |||
| fa189392a1 | |||
| 355b4da549 | |||
| f5292f6ac4 | |||
| 794db4ae78 | |||
| c834b9b1c2 | |||
| 447e2a2e07 | |||
|
bc523132eb
|
|||
|
932ebfe679
|
|||
|
845a7e5db8
|
|||
|
842b8c8de3
|
|||
| 45c57f25e4 | |||
| e8d7fae116 | |||
| c0b572630a | |||
| 1e95d4a1d7 | |||
| 95a463fd18 | |||
| e32b4e4a1e | |||
| 1ddeeb64af | |||
| f0e0e242ae | |||
| b1828d4228 | |||
| 59f8c28813 | |||
| 2679b92a8d | |||
| aa46ec8089 | |||
| 00be3b9add | |||
| 343408a2e0 | |||
| d81a32d740 | |||
| 57ae80c64f | |||
| 982c7e65dd | |||
| 16aa141159 | |||
| 7f092eb68a | |||
| 2574b73161 | |||
| ac08e7a8aa | |||
| 7029b266c9 | |||
| 6682616441 | |||
| f6b2c0b9c4 | |||
| 54f316a435 | |||
| 8cb30b6f4e | |||
| 184bf8890c | |||
| 9aea1524c3 | |||
| dfd27a23ba | |||
| 98e9221d64 | |||
| 3b7ee5473d | |||
| d8a4cde58c | |||
| b4f506bba8 | |||
| 3f55b98c74 | |||
| f94af98225 | |||
| 27cd9c96e2 | |||
| d3354f44cd | |||
| 4b7bdea3cf | |||
| 9091727350 | |||
| 2b5096b14b | |||
| 47310574a3 | |||
| fa2ebc6930 | |||
|
8ad5bf3b49
|
|||
| 20fe966586 | |||
| b82013442c | |||
| 80077edb4b | |||
| 685bd9e3a0 | |||
| 3c4d1d3ec3 | |||
| 96fccb2c47 | |||
|
37f0a44f32
|
|||
|
7a43470f18
|
|||
|
490d2e9ffa
|
|||
| 1c59223881 | |||
|
c9e0462e35
|
|||
|
3d8bce9b08
|
|||
| b9d3c93f8b | |||
| 1321e9cc11 | |||
| dc8c92252b | |||
|
00bd877640
|
|||
|
3312e9ecbc
|
|||
|
30fe89fb7c
|
|||
| 6b8671fd4b | |||
| 23ac1848ff | |||
| 3da1ef7572 | |||
| 181c888cb8 | |||
| 161fd8acf2 | |||
|
470a70148a
|
|||
|
93f2da8b1f
|
|||
|
82571a725e
|
|||
|
3fe2e94257
|
|||
|
eb94158c04
|
|||
|
7eae8b6d83
|
|||
|
5ab0651127
|
|||
|
2327c2d031
|
|||
|
5e0b44d6ff
|
|||
|
48657ff49e
|
|||
|
388dbc4322
|
|||
|
9ed157478a
|
|||
|
df9b94e856
|
|||
| f657849184 | |||
| 2902bf63ce | |||
| afe817af96 | |||
| 1be39d5e09 | |||
| 3d04d6f636 | |||
| 606561265f | |||
| 76226df025 | |||
| ccb5385d43 | |||
| 7e47f48c32 | |||
| a2d2de8838 | |||
| 3aab05af41 | |||
| 8c8520c877 | |||
| 0950853bf8 | |||
| 39f3d1c115 | |||
|
7506a3b2fc
|
|||
|
de6ebee180
|
|||
|
830d8435da
|
|||
|
b4c0722d1d
|
|||
|
01492d6a40
|
|||
| af06250333 | |||
| 3817a0ae37 | |||
| 290f5e4734 | |||
| 8bf126729a | |||
| e5c915cee6 | |||
| 911ed3b5d3 | |||
| 521548715a | |||
| c12862633c | |||
| 144c2b07ac | |||
| 978d380f45 | |||
| d55d93e094 | |||
| f3132928de | |||
| 321628cc37 | |||
|
e69f5a3a08
|
|||
|
dab465b581
|
|||
| 304165c68d | |||
| 3e4f50921c | |||
| 0449a9eb05 | |||
| 59b00cf4fa | |||
| d558275dd2 | |||
| ec5791850c | |||
| fd1c7bbf77 | |||
| 1dca229467 | |||
| 53a6a9c1a0 | |||
| 2edae3dda9 | |||
| 9639e5bfb2 | |||
| 43faf3dadc | |||
| 67990b858c | |||
|
c4b313f780
|
|||
|
8b41227479
|
|||
| 5bb03a9137 | |||
|
0aae0cfe45
|
|||
| 724fb20316 | |||
| 0e139f7d7d | |||
| a1cf56f546 | |||
|
ee5fb41f14
|
|||
| 0b31ff0edf | |||
|
984b9d1d51
|
|||
|
18a57605ac
|
|||
|
e60cd27492
|
|||
|
a4af9abe38
|
|||
| 91cd785278 | |||
| bfd23e7a08 | |||
| 814f2f1c25 | |||
|
d395ca1625
|
|||
| fe8413602a | |||
| dd18039a7a | |||
|
633f2ee6b3
|
|||
| d404551376 | |||
| 1288586467 | |||
| e754889842 | |||
| cd33e71d59 | |||
|
ebc7620407
|
|||
|
35d0196e66
|
|||
| d470cbf4e6 | |||
|
5cd3cb7b2b
|
|||
| ac896b654a | |||
| d254c1f2b4 | |||
| 6d74d2be70 | |||
|
fb3a76796e
|
|||
| a2c3fde7f2 | |||
| abb8f504bf | |||
| afae38d660 | |||
| cd4a9104d7 | |||
|
1759fafbb9
|
|||
|
777261e105
|
|||
| 15f7306032 | |||
| c5115df293 | |||
| 7e848e776e | |||
| c6c8644ffc | |||
|
b4d44d4a2f
|
|||
| 80290c72b6 | |||
| 829ff57062 | |||
| 8f97d79e72 | |||
|
e144fc5881
|
|||
| 6e9d70e1de | |||
| 1c9f9cac9e | |||
| cdd48a3900 | |||
| e90a666593 | |||
|
44946c535a
|
|||
|
732f4cdcd9
|
|||
| 291a319531 | |||
| 3b80a791c0 | |||
|
25e069d129
|
|||
|
ca154114f1
|
|||
|
ddbc9d217a
|
|||
|
a2f83bbeb6
|
|||
|
74c8f76cb9
|
|||
|
cacd057223
|
|||
| 9ee0074742 | |||
| e6ca24e03b | |||
| 4a6948cfff | |||
| d87e44ef07 | |||
| a2c5d8e6ad | |||
| a9a9d349ac | |||
| 65b13ab8ea | |||
| edb5aedfbd | |||
| 8c1d9b2afb | |||
| 9cb5be51be | |||
| 38b09ebcc7 | |||
| 6672aacf13 | |||
| f25ee052ee | |||
| 9f60e3ee5b | |||
| 4bc650d08b | |||
| 0c40977dd3 | |||
|
0b7422b01c
|
|||
| 0a5e89d2d6 | |||
| d65e37cbbb | |||
|
58678046f3
|
|||
| 6f2a82c983 | |||
| 664f1c240c | |||
|
f4d43c48f2
|
|||
| a7d1ac9d3e | |||
| e29e0e3497 | |||
| 67b0ae6e43 | |||
| 103480ccce | |||
| 396cb8104e | |||
| 70daa2df1c | |||
| a3884f3f4a | |||
|
107d8e7d63
|
|||
| f04a9a8dba | |||
| bb1ff516d8 | |||
| 38867e136b | |||
| 6659e17bea | |||
|
3b38b7cc05
|
|||
| 88a719de9f | |||
| 5af1fee3e6 | |||
| fa32d362f6 | |||
| faf8ec3350 | |||
|
8f511e86c0
|
|||
| 82f8b20a07 | |||
|
85e572b2b0
|
|||
| b58d1dcc40 | |||
| 605dfe2946 | |||
| 847d51956a | |||
| 98b47f36cb | |||
| 9bdf04aebe | |||
|
89d240518c
|
|||
|
40eaf64284
|
|||
|
13f513408d
|
|||
|
a7cdd22e53
|
|||
|
cb33074baa
|
|||
|
a542c7dd04
|
|||
|
e5f686dcb6
|
|||
|
04710a36e1
|
|||
|
c0e417854b
|
|||
|
a2458ac39d
|
|||
|
112595d12c
|
|||
|
7a2de994d3
|
|||
| 00ade68908 | |||
|
19d00f703a
|
|||
|
a709f88dc7
|
|||
|
a7220f1cc7
|
|||
| 8d86ea2e73 | |||
| c74882ed8f | |||
|
854db23add
|
|||
|
76b2e9949f
|
|||
|
fa7359da55
|
|||
|
bb00673bb0
|
|||
|
1b4a73db46
|
|||
| 841fb16ac1 | |||
|
b8d6691f1a
|
|||
| 086d0679e0 | |||
| dd0be5a8e2 | |||
|
f5369848f5
|
|||
|
650d0fd68e
|
|||
| 771100bc54 | |||
| 3df061dd3e | |||
|
bfb58c764e
|
|||
| ad404040cd | |||
| 391022211d | |||
| 7a5787b507 | |||
| ae2b4051db | |||
| 3760e3967f | |||
| fbfc2379b6 | |||
| 6071bde8bf | |||
| 3151d3dc63 | |||
| 52a6bf093b | |||
|
901b1f6a68
|
|||
|
3e4a9098df
|
|||
|
146d9eac0f
|
|||
| ab11fd9452 | |||
| c7d0e5daaf | |||
|
42f535a430
|
|||
| 3b535a6d4d | |||
| 0b4fcc6c33 | |||
| 6eaa5895b4 | |||
| 06abb384c6 | |||
| 7274d768f6 | |||
|
07e97a593b
|
|||
| 2f6abf638f | |||
| 21453b1fca | |||
|
ee4886bd8b
|
|||
| 181f3fde63 | |||
| fcc7a8379e | |||
|
7aed3b7e6f
|
|||
| 05a47479f8 | |||
|
d834717a83
|
|||
| 454c7adbb2 | |||
|
832e3879ac
|
|||
|
83ac6f694d
|
|||
|
032487f615
|
|||
|
edfc063dfd
|
|||
|
446b13d9de
|
|||
|
17c4d45fca
|
|||
|
cbf4718195
|
|||
|
5bf5d1ca97
|
|||
|
36aa174ef3
|
|||
|
1ebce3e481
|
|||
|
9034cd6f3c
|
|||
| f118d7d975 | |||
|
d36734ecfc
|
|||
|
446aa835dd
|
|||
|
d368a96e18
|
|||
|
ae67cfc7c9
|
|||
|
fb2467cd2e
|
|||
| e99d6301ea | |||
| 1577c2c682 | |||
|
66cca22c37
|
|||
| f4a4df6c51 | |||
|
596963d834
|
|||
|
473b942bec
|
|||
|
ec122d1ae4
|
|||
| 23edeb47b6 | |||
| 65993197cd | |||
| dca365fec9 | |||
| 89d991f97a | |||
| 8e4f383b0f | |||
| 457d6d5750 | |||
|
7d8d35e511
|
|||
| 03cc9279e5 | |||
| 12055319de | |||
| 83c49e385f | |||
| 3bfc754199 | |||
|
033f81ec83
|
|||
| e1812e77a8 | |||
| fe6fdbd755 | |||
|
c089a20c12
|
|||
| 0a43799e48 | |||
| 753e5c5472 | |||
|
28e01ee287
|
|||
| 1d3e53c062 | |||
| 2a6373603b | |||
| 48b334dad9 | |||
|
2b5176c6f0
|
|||
|
e0343322ad
|
|||
|
cba0214a03
|
|||
|
a2dd22a7a1
|
|||
|
2e7a912294
|
|||
|
6dfbc88614
|
|||
| 8cf8082bc9 | |||
| f3a2bfb96c | |||
| 87854b25bc | |||
| ededb56a7f | |||
| b1f1ac86b0 | |||
| 791a433400 | |||
| a2d3968720 | |||
|
c9b9c04fd0
|
|||
| bbd4baae80 | |||
| 663521fba6 | |||
|
e05de5d1f5
|
|||
|
76d2ac9017
|
|||
|
590eb0286e
|
|||
|
8b22d91e5b
|
|||
|
f9e4d45c21
|
|||
|
7083b288f5
|
|||
|
220b862eb3
|
|||
|
65267340b4
|
|||
|
a23c940deb
|
|||
|
3ef99fee1d
|
|||
|
ff58df1fa2
|
|||
|
15871451e0
|
|||
|
35509d12e9
|
|||
| 34b122ee89 | |||
|
d755924e61
|
|||
|
1589558d3b
|
|||
|
7f08c57d19
|
|||
| 38dcea9e85 | |||
|
323d4a4e48
|
|||
| 7a5372f030 | |||
| c46c178fa9 | |||
|
e6ceda1a4a
|
|||
| fdef727783 | |||
|
ab8f6a1d58
|
|||
|
f78b6303b9
|
|||
|
58f36e85e7
|
|||
|
9bf57ae6e2
|
|||
|
8fcc638011
|
|||
|
492f6ef3b9
|
|||
|
5b0dbeb0b5
|
|||
| 121d26c956 | |||
| 1e2f796e6d | |||
|
51c4806d69
|
|||
| 96568f007d | |||
| f344f8de76 | |||
| 80018968f3 | |||
|
c29db9d610
|
|||
|
2db5e7f79f
|
|||
|
cf7f387b14
|
|||
|
9d5950e3cd
|
|||
| 7c59f7c629 | |||
| 16d53b1a4a | |||
| 1ae5d3a459 | |||
| 34d1d522fc | |||
|
e4e7826b21
|
|||
|
efefbc84fc
|
|||
|
484583316c
|
|||
| 18d92de511 | |||
|
bf9ad26eab
|
|||
|
99bcc08ea5
|
|||
|
2df8924a56
|
|||
|
c94ed99d22
|
|||
|
521335677f
|
|||
|
f08f066634
|
|||
|
75f821077c
|
|||
|
8fdbd32fac
|
|||
|
3492a08cd9
|
|||
|
44dbce395d
|
|||
|
6556eda0be
|
|||
|
ac978985c7
|
|||
|
0abbbe202b
|
|||
|
8e0320f119
|
|||
|
f115dd4294
|
|||
| 9f272830b3 | |||
| 33f4307574 | |||
| 7d35fc0d09 | |||
| f546b3e96a | |||
| 0d9fee2bf7 | |||
| f107054ed0 | |||
|
fa739cfb87
|
|||
|
b21acadd8e
|
|||
|
038d45e154
|
|||
|
d2718394b8
|
|||
|
b824604f59
|
|||
|
a61403765a
|
|||
| 077de9d3bf | |||
|
fb13557e7f
|
|||
|
48ee36713d
|
|||
|
14be05d141
|
|||
|
26eb004888
|
|||
|
cd127f3647
|
|||
| 89ccf6d08c | |||
| 3da06d4b56 | |||
| 3fcebd16ab | |||
| e9be7df70b | |||
| b3a9069b9c | |||
| a96bfcfc3d | |||
|
b68e130700
|
|||
|
22772c000d
|
|||
|
151a7467fc
|
|||
|
92e47ccb6c
|
|||
|
772f6c9737
|
|||
|
4ea74d6075
|
|||
|
1f4e3d5978
|
|||
|
23970d8851
|
|||
|
fe8f9bd738
|
|||
|
e9be8dfe42
|
|||
|
0ae6707d70
|
|||
|
cbe2de25a8
|
|||
|
d98f0d57f3
|
|||
|
2f4ae5d2a0
|
|||
|
49afdbc7a9
|
|||
|
3138a07da3
|
|||
|
b4424311be
|
|||
|
958119c53e
|
|||
|
2704bbab2b
|
|||
|
f8d6d12056
|
|||
|
fcb920f00a
|
|||
| e50317de0c | |||
| 0582e81d06 | |||
| 54ed5e5060 | |||
| 6b151cfc71 | |||
| f2f90816ff | |||
| aed18357f4 | |||
| d11c1cca07 | |||
|
5dc9d94c60
|
|||
| ed692af8d0 | |||
|
32c3bf2d77
|
|||
|
2e5fcf2975
|
|||
| d8813bdfff | |||
| e074d8e23a | |||
| 7317957a82 | |||
| 52c111f688 | |||
| 16dd63ccf9 | |||
|
e1f13ac6dd
|
|||
|
85cd41739c
|
|||
| 3143c07a29 | |||
| dc955661af | |||
| 03024f728f | |||
| 1dbe51707b | |||
|
639729bdef
|
|||
| c45b414d7c | |||
|
6760720d05
|
|||
|
3065deb6e1
|
|||
|
eaa60c2149
|
|||
| 9d6aeafe92 | |||
| c229d861bb | |||
|
7ddf0c07b5
|
|||
|
28876dd62d
|
|||
| 64c42b5938 | |||
|
6a8b719949
|
|||
|
38e7020fe9
|
|||
|
fbcefecba6
|
|||
| 854b2e5baf | |||
|
50c2f6b8bd
|
|||
| f315d62b7d | |||
|
fe8e449475
|
|||
| a8f748b350 | |||
|
a4aeb9d398
|
|||
|
bcce239a93
|
|||
| 774c628c1e | |||
|
2d59419197
|
|||
| 92c427b79f | |||
|
d20c8d40a4
|
|||
|
1b859d89ed
|
|||
|
c036f51c91
|
|||
|
44cbc50d57
|
|||
|
c73731a56c
|
|||
|
bd6f476d87
|
|||
|
9eb6a1ca70
|
|||
|
078b18a404
|
|||
|
3a8f9696e1
|
|||
|
1a16f29e56
|
|||
| fbc9b1fd06 | |||
| 9fa746ff1b | |||
|
8e7d1cd82f
|
|||
|
1529a9ee8e
|
|||
|
e2768f1983
|
|||
| 0aeb573392 | |||
|
7496ab5cf2
|
|||
|
c23248514d
|
|||
| 4a273dd812 | |||
|
ea4739ab0b
|
|||
| ebc7bc7e4d | |||
|
fd5577fdbd
|
|||
|
1fca5ab697
|
|||
| e1dcdd948d | |||
|
d47d36016a
|
|||
|
ae5f23e793
|
|||
| 1120cd4034 | |||
|
3fea4bcaaa
|
|||
|
a1f6aad037
|
|||
|
a2c0337bae
|
|||
|
6af773d35a
|
|||
|
9f19dd871e
|
|||
|
01b9e34dd9
|
|||
|
11f3993dbc
|
|||
|
37381adc33
|
|||
|
d48ec5fab2
|
|||
|
cbe77015ba
|
|||
|
dc80ff9527
|
|||
|
b29794165f
|
|||
|
ce676449a6
|
|||
|
674966001b
|
|||
|
5b8bba9c63
|
|||
|
a20426c850
|
|||
|
b165ca7e1f
|
|||
|
14eadfd653
|
|||
|
c42d36bb5e
|
|||
|
bdc3d38f38
|
|||
|
40ef421948
|
|||
|
cde20f895a
|
|||
|
13c454491e
|
|||
|
73aae35a59
|
|||
|
e2a41f20a4
|
|||
|
d041980712
|
|||
|
2943e19eac
|
|||
|
2965bdb38d
|
|||
|
1f71a68dd0
|
|||
|
70475ce7c9
|
|||
|
2c0034fc82
|
|||
|
cf92337f0b
|
|||
|
7ff713bac1
|
|||
|
91512c2b50
|
|||
|
b4c009de91
|
|||
|
f581b4c3c2
|
|||
|
a6ff1a5972
|
|||
|
1a38405c89
|
|||
|
742447a411
|
|||
|
514f2c8d07
|
|||
|
01a56c145f
|
|||
|
bc8605a2ee
|
|||
|
950f2ff69d
|
|||
|
fbceccefe6
|
|||
|
ea8e8a25e9
|
|||
|
36400cc44c
|
|||
|
ca7afc9a24
|
|||
|
3e97c17e8f
|
|||
|
c8c3e4404f
|
|||
|
c3e4afd640
|
|||
|
bc9ae72fa8
|
|||
|
3f4756e19e
|
|||
|
2473bbb90b
|
|||
|
3313f6eb0f
|
|||
|
a71155007c
|
|||
|
1dce59a7cd
|
|||
|
ddb3a85be5
|
|||
|
ff3d88746a
|
|||
|
68daf57cae
|
|||
|
877bf1fef9
|
|||
|
7e928be885
|
|||
|
0888fe1f61
|
|||
|
6cfedc8735
|
|||
|
c46284571a
|
|||
|
9e89e81a08
|
|||
|
6c706c5a1b
|
|||
|
8f9f8c6337
|
|||
|
dfca783211
|
|||
|
72daa838d4
|
|||
|
b6d0c0a73e
|
|||
|
e0c794dfdb
|
|||
|
2591de7f3d
|
|||
|
f8db4b376a
|
|||
|
59553009a6
|
|||
|
25364899cd
|
|||
|
b5cb9e187d
|
|||
|
03ac07acec
|
|||
|
3165a35df8
|
|||
|
6f34b15361
|
|||
|
0da1a7956d
|
|||
|
ae2242fa0d
|
|||
|
8a97f01aa2
|
|||
|
8ba41e00e3
|
|||
|
910aa9941f
|
|||
|
34fa980b89
|
|||
|
eed5ea6111
|
|||
|
e697f8db51
|
|||
|
baeec2f0ad
|
|||
|
a2cca37af0
|
|||
|
7f995df196
|
|||
|
19d084525d
|
|||
|
5a67909017
|
|||
|
f4ea09f056
|
|||
|
6a551c2d46
|
|||
|
c834c9862e
|
|||
|
494644c554
|
|||
|
20339dd41a
|
|||
|
66d750f196
|
|||
|
de3573b88d
|
|||
|
2b159d74f3
|
|||
|
d3a9ce7505
|
|||
|
e10ef1c20d
|
|||
|
f92f547fd1
|
|||
|
0a9cf686af
|
|||
|
da0bbceb5f
|
|||
|
bdf7e9e242
|
|||
|
ffd6b664cd
|
|||
|
dea7abd19a
|
|||
|
ca0e576484
|
|||
|
d76793463d
|
|||
|
61e7f6f9e5
|
|||
|
47dc168b44
|
|||
|
1ea4683400
|
|||
|
dbbd8d668e
|
|||
|
e70dfb5468
|
|||
|
2cfd1078ce
|
|||
|
0c153ff2e5
|
|||
|
fecf154707
|
|||
|
613271d36b
|
|||
|
95dbe11e51
|
|||
|
fe6708b9e3
|
|||
|
adb10b8d3a
|
|||
|
e3e4b6166f
|
|||
|
e71dfaa534
|
|||
|
d5e0cbd7e2
|
|||
|
f67c8d6518
|
|||
|
e9094491f5
|
|||
|
c9ab177cd4
|
|||
|
bcd4e8841d
|
|||
|
bfbc52b1f7
|
|||
|
e18869e073
|
|||
|
55b4aba216
|
|||
|
8e44e20e4c
|
|||
|
f8f618037f
|
|||
|
24b80ea503
|
|||
|
12680bce3a
|
|||
|
c19d943ab8
|
|||
|
22fecfef37
|
|||
|
87b137bd81
|
|||
|
b5dafa9b70
|
|||
|
89e18e6f6a
|
|||
|
7e1b7b2aa3
|
|||
|
22a3846493
|
|||
|
da1807d403
|
|||
|
73eb4f8bb9
|
|||
|
aff803f0b9
|
|||
|
0ff6f77fe5
|
|||
|
fcc7e151f4
|
|||
|
1de794889c
|
|||
|
f6b602349b
|
|||
|
fa1ec47778
|
|||
|
6237a2f93e
|
|||
|
644b06f2bb
|
|||
|
3442b6e57e
|
|||
|
ad68c47d84
|
|||
|
38a2fd5eab
|
|||
|
0aa1724bba
|
|||
|
c621d70c9c
|
|||
|
15462fdba4
|
|||
|
a08e0908a9
|
|||
|
f5b58f97ca
|
|||
|
88a7394651
|
|||
|
71d8daf782
|
|||
|
fcf246beab
|
|||
|
70db021027
|
|||
|
0c6587ec87
|
|||
|
ed32a149b0
|
|||
|
96fce82d98
|
|||
|
6f9c70110a
|
|||
|
765388dcf0
|
|||
|
269679ac52
|
|||
|
0d86259eda
|
|||
|
c6853bf1a1
|
|||
|
7b128480e8
|
|||
|
1c4cd4232d
|
|||
|
641b6c99d8
|
|||
|
093d8aa023
|
|||
|
c360921b51
|
|||
|
fbc00c9fe7
|
|||
|
767abe161d
|
|||
|
0e7cb62870
|
|||
|
b2691a751a
|
|||
|
f702474d22
|
|||
|
d4c548695f
|
|||
|
8569716323
|
|||
|
3c7c463fee
|
|||
|
a8af2a0e92
|
|||
|
f6f655af5c
|
|||
|
e78f0d194d
|
|||
|
2eebba8b7d
|
|||
|
44f4484951
|
|||
|
d2f47cf1e8
|
|||
|
3490f97f1d
|
|||
|
7b097f84e9
|
|||
|
0aa80c3927
|
|||
|
3566c001f6
|
|||
|
6796b82332
|
|||
|
6618960b0d
|
|||
|
6094779fde
|
|||
|
e0e3ddcbcb
|
|||
|
1d4dcc04ab
|
|||
|
150f26d906
|
|||
|
a9bc2afbd0
|
|||
|
cbf0038c6f
|
|||
|
28e16734d0
|
|||
|
8b3b7f0505
|
|||
|
d239b2cc82
|
|||
|
c9004ff245
|
|||
|
9e1e3a00e8
|
|||
|
00b125633a
|
|||
|
08aa783a1b
|
|||
|
cc7c6ac0ac
|
|||
|
912b9071a5
|
|||
|
d8431fcd57
|
|||
|
1b866e74c0
|
|||
|
a46bb0e0cc
|
|||
|
9c3a0621b1
|
|||
|
b99ee77ea7
|
|||
|
cc0bf7072f
|
|||
|
dd55d64aef
|
|||
|
229de0cfee
|
|||
|
882ee5c70d
|
|||
|
4df25fcfc0
|
|||
|
dfbdffb6a1
|
|||
|
53e844883d
|
|||
|
3a24cc1e16
|
|||
|
93d8ac4e00
|
|||
|
994dbc5b3b
|
|||
|
42b782b9f8
|
|||
|
8a3a98bf54
|
|||
|
1eb8ce2f7e
|
|||
|
6df8593a29
|
|||
|
8f6e53235c
|
|||
|
5c55f3b508
|
|||
|
96285e4b11
|
|||
|
75c83a743e
|
|||
|
112593ef31
|
|||
|
3f63234965
|
|||
|
287e5615a4
|
|||
|
695badd6ba
|
|||
|
da3d6b1b46
|
|||
|
789200877a
|
|||
|
6878f96336
|
|||
|
1831ea58a8
|
|||
|
0f0659c9f4
|
|||
|
f46aee72b4
|
|||
|
56f4729941
|
|||
|
c5973e3646
|
|||
|
54ceb36ed9
|
|||
|
50193e5563
|
|||
|
a74a6c8aa9
|
|||
|
fbe8ed39d3
|
|||
|
b7cc6e40b4
|
|||
|
98357ef81e
|
|||
|
5363124625
|
|||
|
8efaadf936
|
|||
|
1337c894b6
|
|||
|
7f667bb6e6
|
|||
|
97662f1d2b
|
|||
|
6a47bd824e
|
|||
|
2d0a2ae459
|
|||
|
1f5d0dc707
|
|||
|
1e752b7b71
|
|||
|
306a2628ca
|
|||
|
db7575b6ca
|
|||
|
9e88ab28c3
|
|||
|
dac2cefb67
|
|||
|
66183e761c
|
|||
|
6196850d1f
|
|||
|
7d23e7f63a
|
|||
|
425eb99ce6
|
|||
|
78e8bc0182
|
|||
|
d112123a1f
|
|||
|
e12054740c
|
|||
|
1223542226
|
|||
|
f0ae1f74cd
|
|||
|
fba79883f5
|
|||
|
92c0ea18ca
|
|||
|
046d1484a8
|
|||
|
e705d0cbcc
|
|||
|
f166ba76d8
|
|||
|
4b57f49353
|
|||
|
3699684117
|
|||
|
a61a2f79bd
|
|||
|
73a0aef2bd
|
|||
|
fad3f46d0a
|
|||
|
d9e41ad63d
|
|||
|
027d8cc012
|
|||
|
ba6d7c264d
|
|||
|
a74b24ae50
|
|||
|
0ce5635ba2
|
|||
|
f6e9fca158
|
|||
|
302863b446
|
|||
|
084ca7060c
|
|||
|
8284fe074c
|
|||
|
b5929a75f9
|
|||
|
c0545c2165
|
|||
|
8fc28e18c0
|
|||
|
3bda9fd647
|
|||
|
22efe947e7
|
|||
|
b2b0056399
|
|||
|
d7f664f45a
|
|||
|
a84b359419
|
|||
|
88ff6e36ef
|
|||
|
ded7c7f8ee
|
|||
|
3a91370ba7
|
|||
|
0da24150b0
|
|||
|
60451af687
|
|||
|
398a8378f1
|
|||
|
48d592277e
|
|||
|
1a907fed8b
|
|||
|
c524c4c51a
|
|||
|
b0df5f4dc0
|
|||
|
379ec5badd
|
|||
|
fd6d86cdef
|
|||
|
38d5815291
|
|||
|
60bda7ed7a
|
|||
|
da80c09dc8
|
|||
|
031934047c
|
|||
|
cfc7d90a99
|
|||
|
92d27c0020
|
|||
|
b977babf29
|
|||
|
3eebf8e140
|
|||
|
ce494aa7a2
|
|||
|
3147727b77
|
5
.gitattributes
vendored
Normal file
5
.gitattributes
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
secrets/soundcloud_token filter=git-crypt diff=git-crypt
|
||||||
|
secrets/bandcamp_token filter=git-crypt diff=git-crypt
|
||||||
|
assets/bitwig/activation.bwreg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
assets/bitwig/bitwig-studio.deb filter=lfs diff=lfs merge=lfs -text
|
||||||
|
assets/bitwig/bitwig.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
!*.jar
|
||||||
17
Makefile
Normal file
17
Makefile
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
switch:
|
||||||
|
nixos-rebuild switch --target-host root@localhost \
|
||||||
|
--build-host root@localhost --flake path://$(PWD)#panacea
|
||||||
|
|
||||||
|
update:
|
||||||
|
nix flake update --commit-lock-file
|
||||||
|
|
||||||
|
upgrade:
|
||||||
|
make update && make switch
|
||||||
|
|
||||||
|
install:
|
||||||
|
./scripts/install.sh
|
||||||
|
|
||||||
|
backup:
|
||||||
|
./scripts/backup.sh
|
||||||
|
|
||||||
|
.DEFAULT_GOAL := switch
|
||||||
19
README.org
19
README.org
@@ -1,13 +1,20 @@
|
|||||||
* NixOS Laptop
|
* NixOS Laptop
|
||||||
|
|
||||||
Configuration files for my personal machine, powered by [[https://nixos.org/][NixOS]].
|
Configuration files for my personal machine, powered by [[https://nixos.org/][NixOS]].
|
||||||
|
|
||||||
** Modules
|
** Modules
|
||||||
|
|
||||||
The configuration is sliced into different files, per category:
|
The configuration is sliced into different files, per category:
|
||||||
|
|
||||||
- ZFS pool configuration: hardware-configuration.nix
|
- ZFS pool configuration: hardware-configuration.nix
|
||||||
- Network configuration: networking.nix
|
- Globally installed packages: software.nix
|
||||||
- Printing and scanner client: printing.nix
|
- Network and VPN configuration: networking.nix
|
||||||
|
- Window manager and userland services: gui.nix
|
||||||
|
- Synchronization and backup services: datasync.nix
|
||||||
|
- Sound and music setup: audio.nix
|
||||||
|
- Development tools: development.nix
|
||||||
|
- Printing and scanner client: printing.nix
|
||||||
|
- Systemd user services and timers: periodic.nix
|
||||||
|
- Power management: power.nix
|
||||||
|
|
||||||
All the modules are imported in *configuration.nix*
|
All the modules are imported in *configuration.nix*
|
||||||
|
|||||||
BIN
assets/bitwig/activation.bwreg
LFS
Normal file
BIN
assets/bitwig/activation.bwreg
LFS
Normal file
Binary file not shown.
BIN
assets/bitwig/bitwig-studio.deb
LFS
Normal file
BIN
assets/bitwig/bitwig-studio.deb
LFS
Normal file
Binary file not shown.
BIN
assets/bitwig/bitwig.jar
LFS
Normal file
BIN
assets/bitwig/bitwig.jar
LFS
Normal file
Binary file not shown.
@@ -1,54 +1,78 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with pkgs;
|
||||||
|
|
||||||
{
|
{
|
||||||
# Kernel configuration
|
# Kernel configuration
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
blacklistedKernelModules = [
|
||||||
kernelParams = [ "zfs.zfs_arc_max=536870912" ];
|
"btusb"
|
||||||
kernelModules = [ "i915" "acpi_call" ];
|
"bluetooth"
|
||||||
extraModulePackages = with config.boot.kernelPackages; [ acpi_call ];
|
];
|
||||||
|
kernelParams = [
|
||||||
|
"zfs.zfs_arc_max=8589934592"
|
||||||
|
"zfs.zfs_arc_min=1073741824"
|
||||||
|
];
|
||||||
supportedFilesystems = [ "zfs" ];
|
supportedFilesystems = [ "zfs" ];
|
||||||
zfs.requestEncryptionCredentials = true;
|
zfs = {
|
||||||
|
requestEncryptionCredentials = true;
|
||||||
|
package = zfs_unstable;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Intel CPU tweaks
|
# Device firmware updates
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
services.fwupd.enable = true;
|
||||||
|
|
||||||
hardware.opengl.extraPackages = with pkgs; [
|
# Secure boot using lanzaboote
|
||||||
vaapiIntel
|
|
||||||
vaapiVdpau
|
|
||||||
libvdpau-va-gl
|
|
||||||
];
|
|
||||||
|
|
||||||
# Bootloader configuration
|
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
systemd-boot = {
|
systemd-boot = {
|
||||||
enable = true;
|
enable = false;
|
||||||
configurationLimit = 50;
|
configurationLimit = 50;
|
||||||
|
editor = false;
|
||||||
};
|
};
|
||||||
|
timeout = 3;
|
||||||
|
};
|
||||||
|
boot.lanzaboote = {
|
||||||
|
enable = true;
|
||||||
|
pkiBundle = "/etc/secureboot";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Run Nix garbage collector, while avoiding compiling
|
# Run Nix garbage collector and enable flakes
|
||||||
nix = {
|
nix = {
|
||||||
|
settings = {
|
||||||
|
auto-optimise-store = true;
|
||||||
|
trusted-users = [
|
||||||
|
"root"
|
||||||
|
"coolneng"
|
||||||
|
];
|
||||||
|
lazy-trees = true;
|
||||||
|
eval-cores = 2;
|
||||||
|
};
|
||||||
gc = {
|
gc = {
|
||||||
automatic = true;
|
automatic = true;
|
||||||
options = "--delete-older-than 14d";
|
options = "--delete-older-than 7d";
|
||||||
|
dates = "Tue 23:00";
|
||||||
};
|
};
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
keep-outputs = true
|
keep-outputs = true
|
||||||
|
keep-derivations = true
|
||||||
gc-keep-outputs = true
|
gc-keep-outputs = true
|
||||||
|
experimental-features = nix-command flakes
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Clean tmp directory on shutdown
|
# Clean tmp directory on shutdown
|
||||||
boot.cleanTmpDir = true;
|
boot.tmp.cleanOnBoot = true;
|
||||||
|
|
||||||
# Rotate logs after 7 days
|
# Keep logs for a month
|
||||||
services.journald.extraConfig = "SystemMaxFiles=7";
|
services.journald.extraConfig = "MaxRetentionSec=4week";
|
||||||
|
|
||||||
# Allow propietary software
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
# Scrub zpool monthly
|
# Scrub zpool monthly
|
||||||
services.zfs.autoScrub = {
|
services.zfs.autoScrub = {
|
||||||
@@ -58,31 +82,109 @@
|
|||||||
|
|
||||||
# Set timezone and synchronize NTP
|
# Set timezone and synchronize NTP
|
||||||
time.timeZone = "Europe/Brussels";
|
time.timeZone = "Europe/Brussels";
|
||||||
services.timesyncd.enable = true;
|
services.chrony.enable = true;
|
||||||
|
|
||||||
# Enable the TLP daemon
|
|
||||||
services.tlp.enable = true;
|
|
||||||
|
|
||||||
# NixOS version
|
# NixOS version
|
||||||
system.stateVersion = "20.09";
|
system.stateVersion = "24.05";
|
||||||
|
|
||||||
# Create coolneng user
|
# Create coolneng user
|
||||||
users.users.coolneng = {
|
users.users.coolneng = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
home = "/home/coolneng";
|
home = "/home/coolneng";
|
||||||
extraGroups = [ "wheel" "video" "audio" ];
|
extraGroups = [
|
||||||
shell = "/run/current-system/sw/bin/fish";
|
"wheel"
|
||||||
|
"video"
|
||||||
|
"audio"
|
||||||
|
"lp"
|
||||||
|
];
|
||||||
|
shell = fish;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Set shell for root user
|
||||||
|
users.users.root.shell = fish;
|
||||||
|
|
||||||
|
# Specify secrets
|
||||||
|
age = {
|
||||||
|
secrets.wireguard = {
|
||||||
|
file = secrets/wireguard.age;
|
||||||
|
owner = "systemd-network";
|
||||||
|
group = "systemd-network";
|
||||||
|
};
|
||||||
|
secrets.syncthing.file = secrets/syncthing.age;
|
||||||
|
secrets.msmtp.file = secrets/msmtp.age;
|
||||||
|
identityPaths = [ "/etc/ssh/id_ed25519" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Use same version of nixpkgs for nix-shell
|
||||||
|
nix.nixPath =
|
||||||
|
let
|
||||||
|
path = toString ./.;
|
||||||
|
in
|
||||||
|
[
|
||||||
|
"nixpkgs=${inputs.nixpkgs}"
|
||||||
|
"nixos-config=${path}/configuration.nix"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Auto-upgrade the system
|
||||||
|
system.autoUpgrade = {
|
||||||
|
enable = true;
|
||||||
|
dates = "22:30";
|
||||||
|
flake = "/home/coolneng/Projects/panacea";
|
||||||
|
flags = [
|
||||||
|
"--update-input"
|
||||||
|
"nixpkgs"
|
||||||
|
"--commit-lock-file"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Add required dependencies to the auto-upgrade service
|
||||||
|
systemd.services.nixos-upgrade.path = [
|
||||||
|
coreutils
|
||||||
|
gnutar
|
||||||
|
xz.bin
|
||||||
|
gzip
|
||||||
|
gitMinimal
|
||||||
|
config.nix.package.out
|
||||||
|
config.programs.ssh.package
|
||||||
|
git-crypt
|
||||||
|
git-lfs
|
||||||
|
inputs.agenix.packages.${config.nixpkgs.localSystem.system}.default
|
||||||
|
];
|
||||||
|
|
||||||
|
# Configure git for auto-upgrade
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
user.name = "coolneng";
|
||||||
|
user.email = "akasroua@gmail.com";
|
||||||
|
safe.directory = "/home/coolneng/Projects/panacea";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable fish package completion
|
||||||
|
programs.fish.enable = true;
|
||||||
|
|
||||||
|
# Enable nix-index
|
||||||
|
programs.command-not-found.enable = false;
|
||||||
|
programs.nix-index = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Import other configuration modules
|
# Import other configuration modules
|
||||||
imports = [
|
imports = [
|
||||||
|
./modules/hardware-configuration.nix
|
||||||
./modules/software.nix
|
./modules/software.nix
|
||||||
./modules/networking.nix
|
./modules/networking.nix
|
||||||
./modules/gui.nix
|
./modules/gui.nix
|
||||||
./modules/datasync.nix
|
./modules/datasync.nix
|
||||||
./modules/audio.nix
|
./modules/audio.nix
|
||||||
./modules/development.nix
|
./modules/development.nix
|
||||||
./modules/hardware-configuration.nix
|
./modules/printing.nix
|
||||||
|
./modules/periodic.nix
|
||||||
|
./modules/power.nix
|
||||||
|
./modules/monitoring.nix
|
||||||
|
./modules/latest-zfs-kernel.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
500
flake.lock
generated
Normal file
500
flake.lock
generated
Normal file
@@ -0,0 +1,500 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"agenix": {
|
||||||
|
"inputs": {
|
||||||
|
"darwin": "darwin",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1762618334,
|
||||||
|
"narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=",
|
||||||
|
"owner": "ryantm",
|
||||||
|
"repo": "agenix",
|
||||||
|
"rev": "fcdea223397448d35d9b31f798479227e80183f6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ryantm",
|
||||||
|
"repo": "agenix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"crane": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765739568,
|
||||||
|
"narHash": "sha256-gQYx35Of4UDKUjAYvmxjUEh/DdszYeTtT6MDin4loGE=",
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"rev": "67d2baff0f9f677af35db61b32b5df6863bcc075",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cyrus-sasl-xoauth2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1611713742,
|
||||||
|
"narHash": "sha256-IaH8tNUhM0lUOmFiG4G9cGzsuM9mTWfQrzoQ78MIgZ0=",
|
||||||
|
"owner": "robn",
|
||||||
|
"repo": "sasl2-oauth",
|
||||||
|
"rev": "4236b6fb904d836b85b55ba32128b843fd8c2362",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "robn",
|
||||||
|
"repo": "sasl2-oauth",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"agenix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744478979,
|
||||||
|
"narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "43975d782b418ebf4969e9ccba82466728c2851b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"determinate": {
|
||||||
|
"inputs": {
|
||||||
|
"determinate-nixd-aarch64-darwin": "determinate-nixd-aarch64-darwin",
|
||||||
|
"determinate-nixd-aarch64-linux": "determinate-nixd-aarch64-linux",
|
||||||
|
"determinate-nixd-x86_64-linux": "determinate-nixd-x86_64-linux",
|
||||||
|
"nix": "nix",
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765254444,
|
||||||
|
"narHash": "sha256-kAO/ZeBnjaF+uqOP6qweXlRk2ylocLuv/9Dn8FsuPlU=",
|
||||||
|
"rev": "3ccc0297525e51ac3d7905509e0616c9c8350108",
|
||||||
|
"revCount": 316,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/determinate/3.14.0/019b0160-c5de-7941-9c26-cb47bc17eec3/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/DeterminateSystems/determinate/%2A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"determinate-nixd-aarch64-darwin": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"narHash": "sha256-6PWoqx52nvlWzlElTjcn7KAPKitfcKZYEFSsC3PoEoE=",
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.14.0/macOS"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.14.0/macOS"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"determinate-nixd-aarch64-linux": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"narHash": "sha256-b1e25BUPL7Qf0QVbYlfZ/+QiClrP/SHIjMPtA47aOLc=",
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.14.0/aarch64-linux"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.14.0/aarch64-linux"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"determinate-nixd-x86_64-linux": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"narHash": "sha256-8EI2f8IftPcRFlR6K4+cpIEAVf5UIeMCjHysEtVqDw0=",
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.14.0/x86_64-linux"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.14.0/x86_64-linux"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1761588595,
|
||||||
|
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"determinate",
|
||||||
|
"nix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748821116,
|
||||||
|
"narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=",
|
||||||
|
"rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1",
|
||||||
|
"revCount": 377,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/hercules-ci/flake-parts/0.1.377%2Brev-49f0870db23e8c1ca0b5259734a02cd9e1e371a1/01972f28-554a-73f8-91f4-d488cc502f08/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/hercules-ci/flake-parts/0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"git-hooks-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"gitignore": [
|
||||||
|
"determinate",
|
||||||
|
"nix"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"determinate",
|
||||||
|
"nix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1747372754,
|
||||||
|
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
||||||
|
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
||||||
|
"revCount": 1026,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/cachix/git-hooks.nix/0.1.1026%2Brev-80479b6ec16fefd9c1db3ea13aeb038c60530f46/0196d79a-1b35-7b8e-a021-c894fb62163d/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/cachix/git-hooks.nix/0.1.941"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"lanzaboote",
|
||||||
|
"pre-commit",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709087332,
|
||||||
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"agenix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1745494811,
|
||||||
|
"narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lanzaboote": {
|
||||||
|
"inputs": {
|
||||||
|
"crane": "crane",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pre-commit": "pre-commit",
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765887029,
|
||||||
|
"narHash": "sha256-s6LGO6kMlHRdnspV0LReSi47iaYaJ/Oveb4rM9fklPM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "lanzaboote",
|
||||||
|
"rev": "5a8c9b5339588bb6ec388da5d0a6e701a46a82c4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "lanzaboote",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"local-bitwig": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765321606,
|
||||||
|
"narHash": "sha256-WteEWi5GPrGGfzLNTEmgQaH5/DAT/zeZofbBE6D+Po8=",
|
||||||
|
"path": "/home/coolneng/Projects/panacea/assets/bitwig",
|
||||||
|
"type": "path"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"path": "/home/coolneng/Projects/panacea/assets/bitwig",
|
||||||
|
"type": "path"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"git-hooks-nix": "git-hooks-nix",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"nixpkgs-23-11": "nixpkgs-23-11",
|
||||||
|
"nixpkgs-regression": "nixpkgs-regression"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765252170,
|
||||||
|
"narHash": "sha256-p98D44tYJMgB5Qet5S8cTQFdffk/GmoaGkpQtZ3hqJU=",
|
||||||
|
"rev": "1ddd28880651054346c34009d7bb9de36f1db2c1",
|
||||||
|
"revCount": 23362,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nix-src/3.14.0/019b0159-8907-7fab-a120-9d287c7e6d2e/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/DeterminateSystems/nix-src/%2A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-index-database": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765267181,
|
||||||
|
"narHash": "sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws=",
|
||||||
|
"owner": "Mic92",
|
||||||
|
"repo": "nix-index-database",
|
||||||
|
"rev": "82befcf7dc77c909b0f2a09f5da910ec95c5b78f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Mic92",
|
||||||
|
"repo": "nix-index-database",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-hardware": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1764440730,
|
||||||
|
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1761597516,
|
||||||
|
"narHash": "sha256-wxX7u6D2rpkJLWkZ2E932SIvDJW8+ON/0Yy8+a5vsDU=",
|
||||||
|
"rev": "daf6dc47aa4b44791372d6139ab7b25269184d55",
|
||||||
|
"revCount": 811874,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2505.811874%2Brev-daf6dc47aa4b44791372d6139ab7b25269184d55/019a3494-3498-707e-9086-1fb81badc7fe/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.2505"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-23-11": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1717159533,
|
||||||
|
"narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-regression": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1643052045,
|
||||||
|
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1764611609,
|
||||||
|
"narHash": "sha256-yU9BNcP0oadUKupw0UKmO9BKDOVIg9NStdJosEbXf8U=",
|
||||||
|
"rev": "8c29968b3a942f2903f90797f9623737c215737c",
|
||||||
|
"revCount": 905078,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nixpkgs-weekly/0.1.905078%2Brev-8c29968b3a942f2903f90797f9623737c215737c/019add91-3add-7a0d-8a25-9569cbe01efe/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/DeterminateSystems/nixpkgs-weekly/0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1766309749,
|
||||||
|
"narHash": "sha256-3xY8CZ4rSnQ0NqGhMKAy5vgC+2IVK0NoVEzDoOh4DA4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "a6531044f6d0bef691ea18d4d4ce44d0daa6e816",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pre-commit": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"gitignore": "gitignore",
|
||||||
|
"nixpkgs": [
|
||||||
|
"lanzaboote",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765464257,
|
||||||
|
"narHash": "sha256-dixPWKiHzh80PtD0aLuxYNQ0xP+843dfXG/yM3OzaYQ=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"rev": "09e45f2598e1a8499c3594fe11ec2943f34fe509",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"agenix": "agenix",
|
||||||
|
"cyrus-sasl-xoauth2": "cyrus-sasl-xoauth2",
|
||||||
|
"determinate": "determinate",
|
||||||
|
"lanzaboote": "lanzaboote",
|
||||||
|
"local-bitwig": "local-bitwig",
|
||||||
|
"nix-index-database": "nix-index-database",
|
||||||
|
"nixos-hardware": "nixos-hardware",
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"lanzaboote",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765680428,
|
||||||
|
"narHash": "sha256-fyPmRof9SZeI14ChPk5rVPOm7ISiiGkwGCunkhM+eUg=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "eb3898d8ef143d4bf0f7f2229105fc51c7731b2f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
82
flake.nix
Normal file
82
flake.nix
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
description = "System configuration for panacea";
|
||||||
|
|
||||||
|
nixConfig = {
|
||||||
|
extra-substituters = "https://cachix.cachix.org https://nix-community.cachix.org https://install.determinate.systems";
|
||||||
|
extra-trusted-public-keys = ''
|
||||||
|
cachix.cachix.org-1:eWNHQldwUO7G2VkjpnjDbWwy4KQ/HNxht7H4SSoMckM=
|
||||||
|
nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
|
||||||
|
cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM=
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||||
|
agenix = {
|
||||||
|
url = "github:ryantm/agenix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
cyrus-sasl-xoauth2 = {
|
||||||
|
url = "github:robn/sasl2-oauth";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
nix-index-database = {
|
||||||
|
url = "github:Mic92/nix-index-database";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
lanzaboote = {
|
||||||
|
url = "github:nix-community/lanzaboote";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/*";
|
||||||
|
local-bitwig = {
|
||||||
|
url = "path:/home/coolneng/Projects/panacea/assets/bitwig";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs =
|
||||||
|
{ self, nixpkgs, ... }@inputs:
|
||||||
|
let
|
||||||
|
system = "x86_64-linux";
|
||||||
|
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
config.allowUnfree = true;
|
||||||
|
overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
emacs-vterm = (
|
||||||
|
(pkgs.emacsPackagesFor pkgs.emacs-pgtk).emacsWithPackages (
|
||||||
|
epkgs: with epkgs; [
|
||||||
|
vterm
|
||||||
|
mu4e
|
||||||
|
]
|
||||||
|
)
|
||||||
|
);
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
lib = nixpkgs.lib;
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixosConfigurations.panacea = lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
modules = [
|
||||||
|
(import ./configuration.nix)
|
||||||
|
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-e14-amd
|
||||||
|
inputs.agenix.nixosModules.age
|
||||||
|
inputs.nix-index-database.nixosModules.nix-index
|
||||||
|
inputs.lanzaboote.nixosModules.lanzaboote
|
||||||
|
inputs.determinate.nixosModules.default
|
||||||
|
];
|
||||||
|
specialArgs = {
|
||||||
|
inherit inputs;
|
||||||
|
inherit pkgs;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,15 +1,105 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
# Enable ALSA
|
config,
|
||||||
sound.enable = true;
|
lib,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
# Configure PulseAudio with mopidy tweaks
|
with pkgs;
|
||||||
hardware.pulseaudio = {
|
|
||||||
|
let
|
||||||
|
# HACK Replace youtube-dl with yt-dlp in mopidy-youtube
|
||||||
|
mopidy-youtube-yt_dlp = mopidy-youtube.overrideAttrs (old: rec {
|
||||||
|
propagatedBuildInputs = old.propagatedBuildInputs ++ [
|
||||||
|
python3.pkgs.yt-dlp
|
||||||
|
python3.pkgs.ytmusicapi
|
||||||
|
];
|
||||||
|
});
|
||||||
|
soundcloud_token = builtins.readFile ../secrets/soundcloud_token;
|
||||||
|
bandcamp_token = builtins.readFile ../secrets/bandcamp_token;
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# Configure pipewire as sound server
|
||||||
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
tcp = {
|
alsa = {
|
||||||
enable = true;
|
enable = true;
|
||||||
anonymousClients.allowedIpRanges = [ "127.0.0.1" ];
|
support32Bit = true;
|
||||||
|
};
|
||||||
|
pulse.enable = true;
|
||||||
|
wireplumber.enable = true;
|
||||||
|
# Enable pipewire-pulse's audio via TCP
|
||||||
|
extraConfig.pipewire-pulse.tcp-server = {
|
||||||
|
"pulse.properties" = {
|
||||||
|
"server.address" = [
|
||||||
|
"unix:native"
|
||||||
|
"tcp:127.0.0.1:4713"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
|
# Set up Mopidy
|
||||||
|
services.mopidy = {
|
||||||
|
enable = true;
|
||||||
|
extensionPackages = [
|
||||||
|
mopidy-mpd
|
||||||
|
mopidy-local
|
||||||
|
mopidy-youtube-yt_dlp
|
||||||
|
mopidy-bandcamp
|
||||||
|
mopidy-somafm
|
||||||
|
mopidy-soundcloud
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
audio.output = "pulsesink server=127.0.0.1";
|
||||||
|
|
||||||
|
local = {
|
||||||
|
media_dir = "/home/coolneng/Music";
|
||||||
|
directories = ''
|
||||||
|
Album Artists local:directory?type=artist&role=albumartist
|
||||||
|
Albums local:directory?type=album
|
||||||
|
Artists local:directory?type=artist
|
||||||
|
Genres local:directory?type=genre
|
||||||
|
'';
|
||||||
|
excluded_file_extensions = ''
|
||||||
|
.directory
|
||||||
|
.html
|
||||||
|
.jpeg
|
||||||
|
.jpg
|
||||||
|
.log
|
||||||
|
.nfo
|
||||||
|
.png
|
||||||
|
.txt
|
||||||
|
'';
|
||||||
|
scan_timeout = 3000;
|
||||||
|
};
|
||||||
|
|
||||||
|
mpd.zeroconf = "";
|
||||||
|
|
||||||
|
m3u = {
|
||||||
|
playlists_dir = "/home/coolneng/.config/mpd/playlists";
|
||||||
|
base_dir = "/home/coolneng/Music";
|
||||||
|
};
|
||||||
|
|
||||||
|
youtube = {
|
||||||
|
search_results = 50;
|
||||||
|
youtube_dl_package = "yt_dlp";
|
||||||
|
musicapi_enabled = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
somafm = {
|
||||||
|
encoding = "aac";
|
||||||
|
quality = "highest";
|
||||||
|
};
|
||||||
|
|
||||||
|
soundcloud = {
|
||||||
|
auth_token = soundcloud_token;
|
||||||
|
explore_songs = 100;
|
||||||
|
};
|
||||||
|
bandcamp.identity = bandcamp_token;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
13
modules/cachix.nix
Normal file
13
modules/cachix.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# WARN: this file will get overwritten by $ cachix use <name>
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
folder = ../cachix;
|
||||||
|
toImport = name: value: folder + ("/" + name);
|
||||||
|
filterCaches = key: value: value == "regular" && lib.hasSuffix ".nix" key;
|
||||||
|
imports = lib.mapAttrsToList toImport (lib.filterAttrs filterCaches (builtins.readDir folder));
|
||||||
|
in
|
||||||
|
{
|
||||||
|
inherit imports;
|
||||||
|
nix.binaryCaches = [ "https://cache.nixos.org/" ];
|
||||||
|
}
|
||||||
@@ -1,35 +1,19 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
# ZFS automatic backup solution
|
# ZFS automatic snapshots
|
||||||
services.znapzend = {
|
services.zfs.autoSnapshot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autoCreation = true;
|
frequent = 4;
|
||||||
features = {
|
hourly = 24;
|
||||||
compressed = true;
|
daily = 7;
|
||||||
recvu = true;
|
weekly = 4;
|
||||||
};
|
monthly = 12;
|
||||||
zetup = {
|
|
||||||
"syscea/stateful/root" = {
|
|
||||||
plan = "1d=>1h,1m=>1d,1y=>1m";
|
|
||||||
recursive = true;
|
|
||||||
mbuffer.enable = true;
|
|
||||||
destinations.remote = {
|
|
||||||
host = "coolneng@zion";
|
|
||||||
dataset = "vault/backups/panacea/root";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
"syscea/stateful/home" = {
|
|
||||||
plan = "1d=>1h,1m=>1d,1y=>1m";
|
|
||||||
recursive = true;
|
|
||||||
mbuffer.enable = true;
|
|
||||||
destinations.remote = {
|
|
||||||
host = "coolneng@zion";
|
|
||||||
dataset = "vault/backups/panacea/home";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Syncthing configuration
|
# Syncthing configuration
|
||||||
@@ -37,9 +21,10 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
user = "coolneng";
|
user = "coolneng";
|
||||||
dataDir = "/home/coolneng";
|
dataDir = "/home/coolneng";
|
||||||
declarative = {
|
settings = {
|
||||||
devices = {
|
devices.zion = {
|
||||||
zion = { id = "XABIMVG-K5RKMAF-KNC33AR-TDAVEGK-GHUIVFD-NIFCX6L-6PQXRM5-KLK2PAU"; };
|
id = "FLI2RS7-GNI5PDM-SQRNF7P-YJIOXJ7-46FRPEI-NRLQGBC-HXRWG7O-RKOVLAF";
|
||||||
|
addresses = [ "tcp://192.168.128.2:22000" ];
|
||||||
};
|
};
|
||||||
folders = {
|
folders = {
|
||||||
Documents = {
|
Documents = {
|
||||||
@@ -48,9 +33,7 @@
|
|||||||
devices = [ "zion" ];
|
devices = [ "zion" ];
|
||||||
versioning = {
|
versioning = {
|
||||||
type = "simple";
|
type = "simple";
|
||||||
params = {
|
params.keep = "5";
|
||||||
keep = "5";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -60,9 +43,7 @@
|
|||||||
devices = [ "zion" ];
|
devices = [ "zion" ];
|
||||||
versioning = {
|
versioning = {
|
||||||
type = "simple";
|
type = "simple";
|
||||||
params = {
|
params.keep = "5";
|
||||||
keep = "5";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -83,7 +64,33 @@
|
|||||||
path = "/home/coolneng/Projects";
|
path = "/home/coolneng/Projects";
|
||||||
devices = [ "zion" ];
|
devices = [ "zion" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Phone = {
|
||||||
|
id = "m2007j20cg_vc7r-photos";
|
||||||
|
type = "receiveonly";
|
||||||
|
path = "/home/coolneng/Photos/Phone";
|
||||||
|
devices = [ "zion" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
Phone-screenshots = {
|
||||||
|
id = "pp70r-pbr70";
|
||||||
|
type = "receiveonly";
|
||||||
|
path = "/home/coolneng/Photos/Phone-screenshots";
|
||||||
|
devices = [ "zion" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
Files = {
|
||||||
|
id = "tsk52-u6rbk";
|
||||||
|
path = "/home/coolneng/Files";
|
||||||
|
devices = [ "zion" ];
|
||||||
|
};
|
||||||
|
Audio = {
|
||||||
|
id = "tarrs-5mxck";
|
||||||
|
path = "/home/coolneng/Audio";
|
||||||
|
devices = [ "zion" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,36 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
# Improve nix-shell and direnv integration
|
# Improve nix-shell and direnv integration
|
||||||
services.lorri.enable = true;
|
environment.pathsToLink = [ "/share/nix-direnv" ];
|
||||||
|
programs.direnv.enable = true;
|
||||||
|
|
||||||
|
# Set up podman
|
||||||
|
virtualisation = {
|
||||||
|
containers.enable = true;
|
||||||
|
containers.storage.settings.storage = {
|
||||||
|
driver = "zfs";
|
||||||
|
graphroot = "/var/lib/containers/storage";
|
||||||
|
runroot = "/run/containers/storage";
|
||||||
|
};
|
||||||
|
|
||||||
|
oci-containers.backend = "podman";
|
||||||
|
|
||||||
|
podman = {
|
||||||
|
enable = true;
|
||||||
|
dockerCompat = true;
|
||||||
|
extraPackages = with pkgs; [ zfs ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Run unpatched binaries with Nix
|
||||||
|
programs.nix-ld.enable = true;
|
||||||
|
|
||||||
|
# Embedded development with PlatformIO
|
||||||
|
services.udev.packages = with pkgs; [ platformio ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,71 +1,103 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with pkgs;
|
||||||
|
|
||||||
{
|
{
|
||||||
# Display manager
|
# Display manager
|
||||||
services.xserver.enable = true;
|
services.greetd = {
|
||||||
services.xserver.displayManager = {
|
|
||||||
defaultSession = "sway";
|
|
||||||
sddm = {
|
|
||||||
enable = true;
|
|
||||||
autoLogin = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
settings = rec {
|
||||||
|
initial_session = {
|
||||||
|
command = "${sway}/bin/sway";
|
||||||
user = "coolneng";
|
user = "coolneng";
|
||||||
};
|
};
|
||||||
|
default_session = initial_session;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Window manager
|
# Window manager
|
||||||
programs.sway = {
|
programs.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPackages = with pkgs; [
|
extraPackages = [
|
||||||
xwayland
|
xwayland
|
||||||
swaylock
|
swaylock
|
||||||
swayidle
|
swayidle
|
||||||
swaybg
|
swaybg
|
||||||
rofi
|
rofi
|
||||||
waybar
|
waybar
|
||||||
clipman
|
cliphist
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
grim
|
grim
|
||||||
slurp
|
slurp
|
||||||
light
|
swayimg
|
||||||
imv
|
|
||||||
kanshi
|
kanshi
|
||||||
kitty
|
kitty
|
||||||
|
qt5.qtwayland
|
||||||
|
glib
|
||||||
];
|
];
|
||||||
extraSessionCommands = ''
|
extraSessionCommands = ''
|
||||||
export MOZ_ENABLE_WAYLAND=1
|
export MOZ_ENABLE_WAYLAND=1
|
||||||
export MOZ_DBUS_REMOTE=1
|
export MOZ_USE_XINPUT2=1
|
||||||
export GRIM_DEFAULT_DIR=/home/coolneng/Photos/Screenshots
|
export GRIM_DEFAULT_DIR=/home/coolneng/Photos/Screenshots
|
||||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||||
export QT_QPA_PLATFORM=wayland
|
|
||||||
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
|
|
||||||
export SDL_VIDEODRIVER=wayland
|
export SDL_VIDEODRIVER=wayland
|
||||||
|
export XDG_SESSION_TYPE=wayland
|
||||||
|
export XDG_CURRENT_DESKTOP=sway
|
||||||
|
export NVIM_LISTEN_ADDRESS=/tmp/nvimsocket
|
||||||
|
export GIT_CONFIG_NOSYSTEM=true
|
||||||
|
export SYSTEMD_LESS=FRSMK
|
||||||
|
export WLR_RENDERER=vulkan
|
||||||
'';
|
'';
|
||||||
|
wrapperFeatures.gtk = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Backlight
|
# Backlight
|
||||||
programs.light.enable = true;
|
programs.light.enable = true;
|
||||||
|
|
||||||
# Blue light filter
|
# Blue light filter
|
||||||
|
location.provider = "geoclue2";
|
||||||
|
|
||||||
services.redshift = {
|
services.redshift = {
|
||||||
package = pkgs.redshift-wlr;
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = gammastep;
|
||||||
|
executable = "/bin/gammastep";
|
||||||
temperature = {
|
temperature = {
|
||||||
day = 6500;
|
day = 6500;
|
||||||
night = 5000;
|
night = 5300;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
location = {
|
|
||||||
latitude = 35.89;
|
|
||||||
longitude = -5.32;
|
|
||||||
provider = "manual";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Bar
|
|
||||||
programs.waybar.enable = true;
|
|
||||||
|
|
||||||
# GPG agent
|
# GPG agent
|
||||||
programs.gnupg.agent = { enable = true; };
|
programs.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
pinentryPackage = pinentry-gnome3;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Tmux
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
historyLimit = 5000;
|
||||||
|
keyMode = "vi";
|
||||||
|
shortcut = "x";
|
||||||
|
terminal = "screen-256";
|
||||||
|
baseIndex = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Integrate pass with the browser
|
||||||
|
programs.browserpass.enable = true;
|
||||||
|
programs.firefox.enable = true;
|
||||||
|
|
||||||
|
# Enable WebRTC screensharing
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
wlr.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Allow dbus to communicate with storage devices
|
||||||
|
services.udisks2.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,46 +1,76 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "sd_mod" "rtsx_pci_sdmmc" ];
|
boot.initrd.availableKernelModules = [
|
||||||
|
"nvme"
|
||||||
|
"xhci_pci"
|
||||||
|
"usbhid"
|
||||||
|
];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "syscea/stateful/root";
|
device = "syscea/stateful/root";
|
||||||
fsType = "zfs";
|
fsType = "zfs";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/nix" =
|
fileSystems."/nix" = {
|
||||||
{ device = "syscea/ephemeral/nix";
|
device = "syscea/ephemeral/nix";
|
||||||
fsType = "zfs";
|
fsType = "zfs";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/tmp" =
|
fileSystems."/ugent" = {
|
||||||
{ device = "syscea/ephemeral/tmp";
|
device = "systemd-1";
|
||||||
|
fsType = "autofs";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/home/coolneng" = {
|
||||||
|
device = "syscea/stateful/home";
|
||||||
fsType = "zfs";
|
fsType = "zfs";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/home" =
|
fileSystems."/tmp" = {
|
||||||
{ device = "syscea/stateful/home";
|
device = "syscea/ephemeral/tmp";
|
||||||
fsType = "zfs";
|
fsType = "zfs";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/home/coolneng/Downloads" = {
|
||||||
{ device = "/dev/disk/by-uuid/4AED-6F54";
|
device = "syscea/stateful/home/downloads";
|
||||||
|
fsType = "zfs";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/C374-A2FD";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices =
|
swapDevices = [
|
||||||
[ { device = "/dev/disk/by-uuid/29d26e6a-b421-41c3-9826-76e4da00e3bb"; }
|
{ device = "/dev/disk/by-uuid/1231a42f-a71a-4c67-b4d8-7506c02a8328"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wg0.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
}
|
}
|
||||||
|
|||||||
100
modules/home.nix
100
modules/home.nix
@@ -1,100 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# User packages
|
|
||||||
home.packages = [
|
|
||||||
# Text editors
|
|
||||||
doom-emacs
|
|
||||||
pkgs.neovim
|
|
||||||
# Terminals
|
|
||||||
pkgs.tmux
|
|
||||||
pkgs.tmuxp
|
|
||||||
# Development
|
|
||||||
pkgs.git
|
|
||||||
pkgs.direnv
|
|
||||||
pkgs.lorri
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enable home manager
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
|
|
||||||
# Terminal emulator
|
|
||||||
programs.kitty = {
|
|
||||||
enable = true;
|
|
||||||
font.name = "Go Mono 11";
|
|
||||||
settings = {
|
|
||||||
repaint_delay = 30;
|
|
||||||
input_delay = 10;
|
|
||||||
enable_audio_bell = false;
|
|
||||||
foreground = "#c6c8d1";
|
|
||||||
background = "#161821";
|
|
||||||
color0 = "#161821";
|
|
||||||
color8 = "#6b7089";
|
|
||||||
color1 = "#e27878";
|
|
||||||
color9 = "#e98989";
|
|
||||||
color2 = "#b4be82";
|
|
||||||
color10= "#c0ca8e";
|
|
||||||
color3 = "#e2a478";
|
|
||||||
color11= "#e9b189";
|
|
||||||
color4 = "#84a0c6";
|
|
||||||
color12= "#91acd1";
|
|
||||||
color5 = "#a093c7";
|
|
||||||
color13= "#ada0d3";
|
|
||||||
color6 = "#89b8c2";
|
|
||||||
color14= "#95c4ce";
|
|
||||||
color7 = "#c6c8d1";
|
|
||||||
color15= "#d2d4de";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Shell
|
|
||||||
home.sessionVariables = {
|
|
||||||
# fff colors [0-9]
|
|
||||||
FFF_COL1 = 4;
|
|
||||||
FFF_COL2 = 8;
|
|
||||||
# fff favourites;
|
|
||||||
FFF_FAV1 = "$HOME/Documents/Uni";
|
|
||||||
FFF_FAV2 = "$HOME/Documents/Papers";
|
|
||||||
FFF_FAV3 = "$HOME/Documents/Books/Academic";
|
|
||||||
FFF_FAV4 = "$HOME/Documents/Education";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.fish = {
|
|
||||||
enable = true;
|
|
||||||
shellAbbrs = {
|
|
||||||
la = "ls -lA";
|
|
||||||
f = "fff";
|
|
||||||
vim = "nvim";
|
|
||||||
};
|
|
||||||
shellAliases = {
|
|
||||||
wlan = "iw dev wlp2s0 scan | grep SSID";
|
|
||||||
bc = "bc -l";
|
|
||||||
docker = "podman";
|
|
||||||
docker-compose = "podman-compose";
|
|
||||||
};
|
|
||||||
plugins = [
|
|
||||||
{
|
|
||||||
name = "colored-man";
|
|
||||||
src = builtins.fetchGit {
|
|
||||||
name = "fish-colored-man";
|
|
||||||
url = "https://github.com/decors/fish-colored-man";
|
|
||||||
rev = "c1e9db7765c932587b795d6c8965e9cff2fd849a";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
name = "prompt-theme";
|
|
||||||
src = builtins.fetchGit {
|
|
||||||
name = "fish-colored-man";
|
|
||||||
url = "https://github.com/oh-my-fish/theme-nai";
|
|
||||||
rev = "9616e644e95fe79eb59b8c9d77fe44b9f096db2f";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Emacs startup
|
|
||||||
home.file.".emacs.d/init.el".text = ''
|
|
||||||
(load "default.el")
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
28
modules/latest-zfs-kernel.nix
Normal file
28
modules/latest-zfs-kernel.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
isUnstable = config.boot.zfs.package == pkgs.zfs_unstable;
|
||||||
|
zfsCompatibleKernelPackages = lib.filterAttrs (
|
||||||
|
name: kernelPackages:
|
||||||
|
(builtins.match "linux_[0-9]+_[0-9]+" name) != null
|
||||||
|
&& (builtins.tryEval kernelPackages).success
|
||||||
|
&& (
|
||||||
|
(!isUnstable && !kernelPackages.zfs.meta.broken)
|
||||||
|
|| (isUnstable && !kernelPackages.zfs_unstable.meta.broken)
|
||||||
|
)
|
||||||
|
) pkgs.linuxKernel.packages;
|
||||||
|
latestKernelPackage = lib.last (
|
||||||
|
lib.sort (a: b: (lib.versionOlder a.kernel.version b.kernel.version)) (
|
||||||
|
builtins.attrValues zfsCompatibleKernelPackages
|
||||||
|
)
|
||||||
|
);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# Note this might jump back and worth as kernel get added or removed.
|
||||||
|
boot.kernelPackages = lib.mkIf (lib.meta.availableOn pkgs.hostPlatform pkgs.zfs) latestKernelPackage;
|
||||||
|
}
|
||||||
63
modules/monitoring.nix
Normal file
63
modules/monitoring.nix
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with pkgs;
|
||||||
|
|
||||||
|
let
|
||||||
|
sender = "akasroua@disroot.org";
|
||||||
|
recipient = "akasroua+smart@disroot.org";
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# Notify when a disk starts going haywire
|
||||||
|
services.smartd = {
|
||||||
|
enable = true;
|
||||||
|
defaults.monitored = "-H -f -t -C 197 -U 198 -d nvme";
|
||||||
|
autodetect = false;
|
||||||
|
devices = [ { device = "/dev/nvme0"; } ];
|
||||||
|
notifications.mail = {
|
||||||
|
enable = true;
|
||||||
|
sender = sender;
|
||||||
|
recipient = recipient;
|
||||||
|
mailer = "${msmtp}/bin/msmtp -t --read-envelope-from";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Notify about zpool problems
|
||||||
|
services.zfs.zed = {
|
||||||
|
enableMail = false;
|
||||||
|
settings = {
|
||||||
|
ZED_EMAIL_ADDR = [ "root" ];
|
||||||
|
ZED_EMAIL_PROG = "${msmtp}/bin/msmtp";
|
||||||
|
ZED_EMAIL_OPTS = "-s '@SUBJECT@' @ADDRESS@";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# HACK Use an alias to use msmtp instead of the ZED mailer
|
||||||
|
environment.etc.aliases.text = ''
|
||||||
|
root: ${recipient}
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Set up msmtp as notifier
|
||||||
|
programs.msmtp = {
|
||||||
|
enable = true;
|
||||||
|
defaults = {
|
||||||
|
auth = true;
|
||||||
|
aliases = "/etc/aliases";
|
||||||
|
port = 587;
|
||||||
|
tls = true;
|
||||||
|
};
|
||||||
|
accounts = {
|
||||||
|
default = {
|
||||||
|
host = "disroot.org";
|
||||||
|
user = "akasroua@disroot.org";
|
||||||
|
passwordeval = "${coreutils}/bin/cat ${config.age.secrets.msmtp.path}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,41 +1,158 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
config,
|
||||||
avahi
|
lib,
|
||||||
wireguard
|
pkgs,
|
||||||
];
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
# Set hostname and hostid
|
let
|
||||||
|
wireguard_port = "1194";
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# Set hostname, hostid and enable WiFi
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "panacea";
|
hostName = "panacea";
|
||||||
hostId = "8feb0bb8";
|
hostId = "8feb0bb8";
|
||||||
wireless = {
|
wireless.iwd.enable = true;
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable zeroconf
|
# Enable systemd-networkd
|
||||||
services.avahi = {
|
networking = {
|
||||||
|
useDHCP = false;
|
||||||
|
interfaces = {
|
||||||
|
enp0s31f6.useDHCP = true;
|
||||||
|
wlan0.useDHCP = true;
|
||||||
|
};
|
||||||
|
useNetworkd = true;
|
||||||
|
dhcpcd.enable = false;
|
||||||
|
};
|
||||||
|
systemd.network.wait-online.enable = false;
|
||||||
|
|
||||||
|
# Enable mDNS
|
||||||
|
services.resolved = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nssmdns = true;
|
llmnr = "false";
|
||||||
|
extraConfig = ''
|
||||||
|
MulticastDNS=yes
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Wireguard setup
|
# Prioritize ethernet over WiFi
|
||||||
networking.wireguard.interfaces = {
|
systemd.network.networks."40-enp0s31f6" = {
|
||||||
wg0 = {
|
dhcpV4Config.RouteMetric = 10;
|
||||||
ips = [ "10.8.0.4/32" ];
|
networkConfig.MulticastDNS = "yes";
|
||||||
privateKeyFile = "/home/coolneng/.wg/keys/privatekey";
|
};
|
||||||
peers = [
|
systemd.network.networks."40-wlan0" = {
|
||||||
# zion
|
dhcpV4Config.RouteMetric = 20;
|
||||||
|
networkConfig.MulticastDNS = "yes";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Static IP for home network
|
||||||
|
systemd.network.networks."24-home" = {
|
||||||
|
name = "wlan0";
|
||||||
|
matchConfig = {
|
||||||
|
Name = "wlan0";
|
||||||
|
SSID = "anakinosi-5GHz";
|
||||||
|
};
|
||||||
|
address = [ "192.168.129.3/23" ];
|
||||||
|
gateway = [ "192.168.128.1" ];
|
||||||
|
dns = [ "192.168.128.2" ];
|
||||||
|
networkConfig.MulticastDNS = "yes";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.networks."25-home" = {
|
||||||
|
name = "wlan0";
|
||||||
|
matchConfig = {
|
||||||
|
Name = "wlan0";
|
||||||
|
SSID = "Aminkas-5Ghz";
|
||||||
|
};
|
||||||
|
address = [ "192.168.13.3/24" ];
|
||||||
|
gateway = [ "192.168.13.1" ];
|
||||||
|
dns = [ "1.1.1.1" ];
|
||||||
|
networkConfig.MulticastDNS = "yes";
|
||||||
|
};
|
||||||
|
|
||||||
|
# VPN setup
|
||||||
|
systemd.network.netdevs."wg0" = {
|
||||||
|
netdevConfig = {
|
||||||
|
Kind = "wireguard";
|
||||||
|
Name = "wg0";
|
||||||
|
};
|
||||||
|
wireguardConfig = {
|
||||||
|
ListenPort = wireguard_port;
|
||||||
|
PrivateKeyFile = config.age.secrets.wireguard.path;
|
||||||
|
FirewallMark = 34952;
|
||||||
|
};
|
||||||
|
wireguardPeers = [
|
||||||
{
|
{
|
||||||
publicKey = "GN8lqPBZYOulh6xD4GhkoEWI65HMMCpSxJSH5871YnU=";
|
PublicKey = "GN8lqPBZYOulh6xD4GhkoEWI65HMMCpSxJSH5871YnU=";
|
||||||
allowedIPs = [ "0.0.0.0/0" ];
|
AllowedIPs = [
|
||||||
endpoint = "coolneng.duckdns.org:1194";
|
"0.0.0.0/0"
|
||||||
persistentKeepalive = 25;
|
"::0"
|
||||||
|
];
|
||||||
|
Endpoint = "psydnd.org:1194";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
systemd.network.networks."wg0" = {
|
||||||
|
matchConfig.Name = "wg0";
|
||||||
|
networkConfig = {
|
||||||
|
Address = [
|
||||||
|
"10.8.0.2/32"
|
||||||
|
"fd00::2/128"
|
||||||
|
];
|
||||||
|
DNS = [
|
||||||
|
"10.8.0.1"
|
||||||
|
"fd00::2"
|
||||||
|
];
|
||||||
|
DNSDefaultRoute = true;
|
||||||
|
};
|
||||||
|
routingPolicyRules = [
|
||||||
|
{
|
||||||
|
FirewallMark = 34952;
|
||||||
|
InvertRule = true;
|
||||||
|
Table = 1000;
|
||||||
|
Priority = 10;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
routes = [
|
||||||
|
{
|
||||||
|
Gateway = "10.8.0.1";
|
||||||
|
GatewayOnLink = true;
|
||||||
|
Table = 1000;
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Firewall configuration
|
||||||
|
networking.firewall = {
|
||||||
|
allowedTCPPorts = [
|
||||||
|
9090 # Calibre Wireless
|
||||||
|
];
|
||||||
|
allowedUDPPorts = [
|
||||||
|
54982 # Calibre Wireless
|
||||||
|
5353 # mDNS
|
||||||
|
];
|
||||||
|
# Allow wireguard traffic
|
||||||
|
extraCommands = ''
|
||||||
|
iptables -t mangle -I nixos-fw-rpfilter -p udp -m udp --sport ${wireguard_port} -j RETURN
|
||||||
|
iptables -t mangle -I nixos-fw-rpfilter -p udp -m udp --dport ${wireguard_port} -j RETURN
|
||||||
|
'';
|
||||||
|
extraStopCommands = ''
|
||||||
|
iptables -t mangle -D nixos-fw-rpfilter -p udp -m udp --sport ${wireguard_port} -j RETURN || true
|
||||||
|
iptables -t mangle -D nixos-fw-rpfilter -p udp -m udp --dport ${wireguard_port} -j RETURN || true
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable localhost SSH
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = false;
|
||||||
|
startWhenNeeded = true;
|
||||||
|
settings = {
|
||||||
|
PermitRootLogin = "without-password";
|
||||||
|
PasswordAuthentication = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
128
modules/periodic.nix
Normal file
128
modules/periodic.nix
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with pkgs;
|
||||||
|
|
||||||
|
let
|
||||||
|
isync-oauth2 = (isync.override { withCyrusSaslXoauth2 = true; });
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# Upgrade Doom Emacs daily
|
||||||
|
systemd.user.services.doom-upgrade = {
|
||||||
|
description = "Upgrade Doom Emacs";
|
||||||
|
path = [
|
||||||
|
bash
|
||||||
|
emacs-vterm
|
||||||
|
git
|
||||||
|
coreutils
|
||||||
|
];
|
||||||
|
script = ''
|
||||||
|
/home/coolneng/.emacs.d/bin/doom -! upgrade
|
||||||
|
'';
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
startAt = "22:00:00";
|
||||||
|
after = [ "network-online.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Push password-store changes to git daily
|
||||||
|
systemd.user.services.password-store-push = {
|
||||||
|
description = "Push password-store changes to git";
|
||||||
|
path = [
|
||||||
|
pass-wayland
|
||||||
|
git
|
||||||
|
pass-git-helper
|
||||||
|
];
|
||||||
|
script = "${pkgs.pass-wayland}/bin/pass git push";
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
startAt = "18:00:00";
|
||||||
|
after = [ "network-online.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Sync mail using IMAP IDLE
|
||||||
|
systemd.user.services.goimapnotify = {
|
||||||
|
description = "Sync mail using IMAP IDLE";
|
||||||
|
wantedBy = [ "default.target" ];
|
||||||
|
path = [
|
||||||
|
goimapnotify
|
||||||
|
pass-wayland
|
||||||
|
isync-oauth2
|
||||||
|
mu
|
||||||
|
procps
|
||||||
|
emacs-vterm
|
||||||
|
];
|
||||||
|
script = ''
|
||||||
|
${pkgs.goimapnotify}/bin/goimapnotify -conf /home/coolneng/.config/goimapnotify/goimapnotify.yaml
|
||||||
|
'';
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStartPre = "/home/coolneng/.local/share/scripts/mail-sync";
|
||||||
|
Type = "simple";
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = 20;
|
||||||
|
};
|
||||||
|
after = [ "network-online.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Do a full mail sync periodically
|
||||||
|
systemd.user.services.periodic-mail-sync = {
|
||||||
|
description = "Run a mail sync operation periodically";
|
||||||
|
wantedBy = [ "default.target" ];
|
||||||
|
path = [
|
||||||
|
pass-wayland
|
||||||
|
isync-oauth2
|
||||||
|
mu
|
||||||
|
procps
|
||||||
|
emacs-vterm
|
||||||
|
python3
|
||||||
|
gnupg
|
||||||
|
nix
|
||||||
|
];
|
||||||
|
script = ''
|
||||||
|
/home/coolneng/.local/share/scripts/mail-sync -a
|
||||||
|
'';
|
||||||
|
after = [ "network-online.target" ];
|
||||||
|
startAt = "*-*-* *:00,30:00";
|
||||||
|
};
|
||||||
|
|
||||||
|
# HACK Change home partition permissions for mopidy
|
||||||
|
systemd.services.chmod-home = {
|
||||||
|
description = "Change home partition permissions for Mopidy";
|
||||||
|
wantedBy = [ "default.target" ];
|
||||||
|
script = "chmod 751 /home/coolneng";
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
after = [ "home-coolneng.mount" ];
|
||||||
|
before = [
|
||||||
|
"mopidy.service"
|
||||||
|
"mopidy-scan.service"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Push panacea changes to git daily
|
||||||
|
systemd.user.services.panacea-push = {
|
||||||
|
description = "Push panacea changes to git";
|
||||||
|
path = [
|
||||||
|
pass-wayland
|
||||||
|
git
|
||||||
|
pass-git-helper
|
||||||
|
];
|
||||||
|
script = "${pkgs.git}/bin/git -C /home/coolneng/Projects/panacea push";
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
startAt = "18:00:00";
|
||||||
|
after = [ "network-online.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Show notification when the battery is low
|
||||||
|
systemd.user.services.swaynag-battery = {
|
||||||
|
description = "Show notification when the battery is low";
|
||||||
|
path = [
|
||||||
|
swaynag-battery
|
||||||
|
sway
|
||||||
|
];
|
||||||
|
script = "${pkgs.swaynag-battery}/bin/swaynag-battery --threshold 10";
|
||||||
|
wantedBy = [ "sway-session.target" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
16
modules/power.nix
Normal file
16
modules/power.nix
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Enable power-profiles-daemon
|
||||||
|
services.power-profiles-daemon.enable = true;
|
||||||
|
|
||||||
|
# Suspend when the battery is critical
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{model_name}=="01AV405", ATTR{capacity}=="[0-5]", RUN+="${config.systemd.package}/bin/systemctl suspend -i"
|
||||||
|
'';
|
||||||
|
}
|
||||||
23
modules/printing.nix
Normal file
23
modules/printing.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Enable CUPS
|
||||||
|
services.printing = {
|
||||||
|
enable = true;
|
||||||
|
drivers = with pkgs; [
|
||||||
|
brgenml1cupswrapper
|
||||||
|
hplip
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable SANE
|
||||||
|
hardware.sane = {
|
||||||
|
enable = true;
|
||||||
|
brscan4.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,25 +1,56 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with pkgs;
|
||||||
|
|
||||||
|
let
|
||||||
|
custom-mpv = (
|
||||||
|
mpv-unwrapped.wrapper {
|
||||||
|
mpv = mpv-unwrapped;
|
||||||
|
scripts = with mpvScripts; [
|
||||||
|
sponsorblock-minimal
|
||||||
|
mpv-cheatsheet
|
||||||
|
];
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
patched-bitwig = bitwig-studio.overrideAttrs (old: rec {
|
||||||
|
src = "${inputs.local-bitwig}/bitwig-studio.deb";
|
||||||
|
postInstall = ''
|
||||||
|
cp -r ${inputs.local-bitwig}/bitwig.jar $out/libexec/bin/bitwig.jar
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
environment.systemPackages = [
|
||||||
# Monitoring
|
# Monitoring
|
||||||
htop
|
htop
|
||||||
|
acpi
|
||||||
# Password management
|
# Password management
|
||||||
gnupg
|
gnupg
|
||||||
pinentry-curses
|
|
||||||
pass-wayland
|
pass-wayland
|
||||||
passff-host
|
passff-host
|
||||||
gitAndTools.pass-git-helper
|
pass-git-helper
|
||||||
|
inputs.agenix.packages.${config.nixpkgs.localSystem.system}.default
|
||||||
|
git-crypt
|
||||||
|
git-lfs
|
||||||
# Browsers
|
# Browsers
|
||||||
(firefox.override { extraNativeMessagingHosts = [ passff-host ]; })
|
ungoogled-chromium
|
||||||
chromium
|
|
||||||
# LaTeX
|
# LaTeX
|
||||||
texlive.combined.scheme-full
|
texlive.combined.scheme-full
|
||||||
pandoc
|
pandoc
|
||||||
|
texlab
|
||||||
# Text editors
|
# Text editors
|
||||||
neovim
|
neovim
|
||||||
emacs
|
emacs-vterm
|
||||||
ripgrep
|
# Emacs dependencies
|
||||||
|
(ripgrep.override { withPCRE2 = true; })
|
||||||
fd
|
fd
|
||||||
clang
|
clang
|
||||||
coreutils
|
coreutils
|
||||||
@@ -30,22 +61,74 @@
|
|||||||
# Development
|
# Development
|
||||||
git
|
git
|
||||||
direnv
|
direnv
|
||||||
lorri
|
nix-direnv
|
||||||
nixfmt
|
gnumake
|
||||||
|
pre-commit
|
||||||
|
emacs-lsp-booster
|
||||||
# Rice
|
# Rice
|
||||||
adapta-gtk-theme
|
adapta-gtk-theme
|
||||||
paper-icon-theme
|
paper-icon-theme
|
||||||
|
# Audio
|
||||||
|
mopidy
|
||||||
|
ncmpcpp
|
||||||
|
mpc
|
||||||
|
pulsemixer
|
||||||
|
easyeffects
|
||||||
|
patched-bitwig
|
||||||
|
# Productivity
|
||||||
|
zathura
|
||||||
|
libreoffice-fresh
|
||||||
|
simple-scan
|
||||||
|
bc
|
||||||
|
pdfgrep
|
||||||
|
# Mail stack
|
||||||
|
mu
|
||||||
|
(isync.override { withCyrusSaslXoauth2 = true; })
|
||||||
|
msmtp
|
||||||
|
# Media
|
||||||
|
gimp
|
||||||
|
custom-mpv
|
||||||
|
deluge
|
||||||
|
yt-dlp-light
|
||||||
|
ffmpeg
|
||||||
|
calibre
|
||||||
|
beets
|
||||||
|
# File management
|
||||||
|
zip
|
||||||
|
unzip
|
||||||
|
unar
|
||||||
|
# Overlays
|
||||||
|
cachix
|
||||||
|
# Budgeting
|
||||||
|
beancount
|
||||||
|
beancount-language-server
|
||||||
|
fava
|
||||||
|
# Programming tools
|
||||||
|
## Shell
|
||||||
|
shellcheck
|
||||||
|
shfmt
|
||||||
|
## Nix
|
||||||
|
nixfmt-rfc-style
|
||||||
|
## Python
|
||||||
|
ty
|
||||||
|
ruff
|
||||||
|
## C/C++
|
||||||
|
clang-tools
|
||||||
|
## Go
|
||||||
|
gopls
|
||||||
|
gotests
|
||||||
|
gore
|
||||||
|
golangci-lint
|
||||||
];
|
];
|
||||||
|
|
||||||
# Fonts declaration
|
# Fonts declaration
|
||||||
fonts = {
|
fonts.packages = with pkgs; [
|
||||||
fonts = with pkgs; [
|
|
||||||
google-fonts
|
google-fonts
|
||||||
siji
|
terminus_font_ttf
|
||||||
cherry
|
iosevka-bin
|
||||||
iosevka
|
libertine
|
||||||
emacs-all-the-icons-fonts
|
nerd-fonts.inconsolata
|
||||||
|
nerd-fonts.symbols-only
|
||||||
];
|
];
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
8
scripts/backup.sh
Executable file
8
scripts/backup.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
wifi_backup() {
|
||||||
|
zip /tmp/iwd-networks.zip /var/lib/iwd
|
||||||
|
scp /tmp/iwd-networks.zip zion:/vault/backups/panacea/iwd
|
||||||
|
}
|
||||||
|
|
||||||
|
wifi_backup
|
||||||
69
scripts/install.sh
Executable file
69
scripts/install.sh
Executable file
@@ -0,0 +1,69 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
partition_disk() {
|
||||||
|
parted "$DISK" -- mklabel gpt
|
||||||
|
parted "$DISK" -- mkpart ESP fat32 1MiB 512MiB
|
||||||
|
parted "$DISK" -- mkpart primary 512MiB 100%
|
||||||
|
parted "$DISK" -- set 1 boot on
|
||||||
|
mkfs.fat -F32 -n BOOT "$DISK"p1
|
||||||
|
}
|
||||||
|
|
||||||
|
zfs_setup() {
|
||||||
|
zpool create -f -o ashift=13 -o autotrim=on -O acltype=posixacl -O relatime=on \
|
||||||
|
-O xattr=sa -O dnodesize=legacy -O normalization=formD -O mountpoint=none \
|
||||||
|
-O canmount=off -O devices=off -R /mnt -O compression=zstd -O encryption=aes-256-gcm \
|
||||||
|
-O keyformat=passphrase -O keylocation=prompt syscea "$DISK"p2
|
||||||
|
zfs create -o mountpoint=legacy -o com.sun:auto-snapshot=false syscea/ephemeral
|
||||||
|
zfs create -o mountpoint=legacy -o com.sun:auto-snapshot=false syscea/ephemeral/nix
|
||||||
|
zfs create -o mountpoint=legacy -o com.sun:auto-snapshot=false -o sync=disabled -o setuid=off syscea/ephemeral/tmp
|
||||||
|
zfs create -o mountpoint=legacy -o com.sun:auto-snapshot=false syscea/stateful
|
||||||
|
zfs create -o mountpoint=legacy -o com.sun:auto-snapshot=true syscea/stateful/home
|
||||||
|
zfs create -o mountpoint=legacy -o com.sun:auto-snapshot=false syscea/stateful/home/downloads
|
||||||
|
zfs create -o mountpoint=legacy -o com.sun:auto-snapshot=false syscea/stateful/root
|
||||||
|
zfs create -V 6G -b "$(getconf PAGESIZE)" -o compression=zle -o logbias=throughput -o sync=always \
|
||||||
|
-o primarycache=metadata -o secondarycache=none -o com.sun:auto-snapshot=false syscea/ephemeral/swap
|
||||||
|
mkswap -f /dev/zvol/syscea/ephemeral/swap && swapon /dev/zvol/syscea/ephemeral/swap
|
||||||
|
}
|
||||||
|
|
||||||
|
mount_datasets() {
|
||||||
|
mount -t zfs syscea/stateful/root /mnt
|
||||||
|
mkdir -p /mnt/boot
|
||||||
|
mount "$DISK"p1 /mnt/boot
|
||||||
|
mkdir -p /mnt/home/coolneng
|
||||||
|
mount -t zfs syscea/stateful/home /mnt/home/coolneng
|
||||||
|
mkdir -p /mnt/home/coolneng/Downloads
|
||||||
|
mount -t zfs syscea/stateful/home/downloads /mnt/home/coolneng/Downloads
|
||||||
|
mkdir -p /mnt/nix
|
||||||
|
mount -t zfs syscea/ephemeral/nix /mnt/nix
|
||||||
|
mkdir -p /mnt/tmp
|
||||||
|
mount -t zfs syscea/ephemeral/tmp /mnt/tmp
|
||||||
|
}
|
||||||
|
|
||||||
|
install_system() {
|
||||||
|
nixos-generate-config --root /mnt
|
||||||
|
sed -i "s/\${soundcloud_token}/PLACEHOLDER/" modules/audio.nix
|
||||||
|
mv /mnt/etc/nixos/hardware-configuration.nix modules/hardware-configuration.nix
|
||||||
|
nix-shell -p git nixFlakes --command "nixos-install --root /mnt --flake .#panacea"
|
||||||
|
}
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage: install.sh <disk>"
|
||||||
|
echo "disk: full path to the disk (e.g. /dev/sda)"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# != 1 ]; then
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
|
||||||
|
DISK="$1"
|
||||||
|
|
||||||
|
echo "Let's start by partitioning the disk"
|
||||||
|
partition_disk
|
||||||
|
echo "Starting up the ZFS machinery"
|
||||||
|
zfs_setup
|
||||||
|
echo "Mounting the horse"
|
||||||
|
mount_datasets
|
||||||
|
echo "Lift off to the NixOS planet"
|
||||||
|
install_system
|
||||||
|
echo "All ready, time to rejoice"
|
||||||
BIN
secrets/bandcamp_token
Normal file
BIN
secrets/bandcamp_token
Normal file
Binary file not shown.
8
secrets/msmtp.age
Normal file
8
secrets/msmtp.age
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 G5UUhw yZ6q0+opG1dPd+bziS6EK4Da2R1HI4SN5CNZTFR0NFI
|
||||||
|
xx6fet9CzAuWdwEzQrR7qc6DJZDPUM+Ug995OHJnO+w
|
||||||
|
-> -ENU/-grease sB@d>Z >aJ<En""
|
||||||
|
rUSbcqOSzKWJRomQ8uqM0L1wq1OeKtmbAXRtDhisJcSIg82+eIF2jwf8Id7tMEyk
|
||||||
|
KrTfLHN7Ts9b/duzBrM9FDqm6pE9DqxUp652Tyo9ENa/
|
||||||
|
--- 07ccdiEaTyEPofLC2xPqYeF3lkMMFiAM2g1MKqv2pwc
|
||||||
|
<20><>+4<>/ǃTR٠<52><D9A0><EFBFBD><EFBFBD>ym<79>*<18>p<EFBFBD><70>~<7E><>E<>g5v<35>ʽ<13>Pn'<27><>i<01><>><3E><><EFBFBD>^$R<>P<14><>zS<1E>!<<3C><><EFBFBD><EFBFBD>><3E><><1F>#<23><>Ϟ<><CF9E>h<EFBFBD><01><>
|
||||||
8
secrets/secrets.nix
Normal file
8
secrets/secrets.nix
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
let
|
||||||
|
coolneng = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC57m1j/G6iQyi2EpU3nj3+df5Z4PL/XbiOmDcqA7ODg";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
"wireguard.age".publicKeys = [ coolneng ];
|
||||||
|
"syncthing.age".publicKeys = [ coolneng ];
|
||||||
|
"msmtp.age".publicKeys = [ coolneng ];
|
||||||
|
}
|
||||||
BIN
secrets/soundcloud_token
Normal file
BIN
secrets/soundcloud_token
Normal file
Binary file not shown.
BIN
secrets/syncthing.age
Normal file
BIN
secrets/syncthing.age
Normal file
Binary file not shown.
7
secrets/wireguard.age
Normal file
7
secrets/wireguard.age
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 G5UUhw ORYEDFD+GUYWiTOhOgjFNa/SQ7DGPIdDFXTUnYkjKUg
|
||||||
|
4oM7eE8cg15T8gbHBNOa/oB97SCaSANd7/7vM6+EbNc
|
||||||
|
-> ",?]B-grease #sF Zg_{'
|
||||||
|
P+bwL7YflfWA4f9LRIM
|
||||||
|
--- O+3vZIjCS6xIQwO/fwmdfeMcFqBCpQWTe9UltdlXx5o
|
||||||
|
9ߢ<EFBFBD>]?<3F><18>w><17><><EFBFBD><EFBFBD>ͯ<EFBFBD>8sn<73><6E><EFBFBD>"_<01><><EFBFBD><EFBFBD>@4<>w<EFBFBD>c<11><04><>W<10><>N<EFBFBD><4E><EFBFBD><EFBFBD>x<19>e<EFBFBD>~<7E>O<EFBFBD><4F><EFBFBD><EFBFBD>P<EFBFBD>!<21>~1<><31>>
|
||||||
Reference in New Issue
Block a user