home-manager
modules
nixos
overlays
pkgs
···
1
1
+
{
2
2
+
"nodes": {
3
3
+
"alejandra": {
4
4
+
"inputs": {
5
5
+
"fenix": "fenix",
6
6
+
"flakeCompat": "flakeCompat",
7
7
+
"nixpkgs": [
8
8
+
"ki-editor",
9
9
+
"nixpkgs"
10
10
+
]
11
11
+
},
12
12
+
"locked": {
13
13
+
"lastModified": 1744324181,
14
14
+
"narHash": "sha256-Oi1n2ncF4/AWeY6X55o2FddIRICokbciqFYK64XorYk=",
15
15
+
"owner": "kamadorueda",
16
16
+
"repo": "alejandra",
17
17
+
"rev": "3e2a85506627062313e131bf8a85315f3387c8e0",
18
18
+
"type": "github"
19
19
+
},
20
20
+
"original": {
21
21
+
"owner": "kamadorueda",
22
22
+
"ref": "4.0.0",
23
23
+
"repo": "alejandra",
24
24
+
"type": "github"
25
25
+
}
26
26
+
},
27
27
+
"aquamarine": {
28
28
+
"inputs": {
29
29
+
"hyprutils": [
30
30
+
"hyprland",
31
31
+
"hyprutils"
32
32
+
],
33
33
+
"hyprwayland-scanner": [
34
34
+
"hyprland",
35
35
+
"hyprwayland-scanner"
36
36
+
],
37
37
+
"nixpkgs": [
38
38
+
"hyprland",
39
39
+
"nixpkgs"
40
40
+
],
41
41
+
"systems": [
42
42
+
"hyprland",
43
43
+
"systems"
44
44
+
]
45
45
+
},
46
46
+
"locked": {
47
47
+
"lastModified": 1780756231,
48
48
+
"narHash": "sha256-tXQxKdG5716uB9/LIkLQqQwHKf5mRSpHoZhz3lyI2Cg=",
49
49
+
"owner": "hyprwm",
50
50
+
"repo": "aquamarine",
51
51
+
"rev": "6ecde03f47172753fe5a2f334f9d3facfb7e6784",
52
52
+
"type": "github"
53
53
+
},
54
54
+
"original": {
55
55
+
"owner": "hyprwm",
56
56
+
"repo": "aquamarine",
57
57
+
"type": "github"
58
58
+
}
59
59
+
},
60
60
+
"crane": {
61
61
+
"locked": {
62
62
+
"lastModified": 1754269165,
63
63
+
"narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=",
64
64
+
"owner": "ipetkov",
65
65
+
"repo": "crane",
66
66
+
"rev": "444e81206df3f7d92780680e45858e31d2f07a08",
67
67
+
"type": "github"
68
68
+
},
69
69
+
"original": {
70
70
+
"owner": "ipetkov",
71
71
+
"repo": "crane",
72
72
+
"type": "github"
73
73
+
}
74
74
+
},
75
75
+
"fenix": {
76
76
+
"inputs": {
77
77
+
"nixpkgs": [
78
78
+
"ki-editor",
79
79
+
"alejandra",
80
80
+
"nixpkgs"
81
81
+
],
82
82
+
"rust-analyzer-src": "rust-analyzer-src"
83
83
+
},
84
84
+
"locked": {
85
85
+
"lastModified": 1730615655,
86
86
+
"narHash": "sha256-2HBR3zLn57LXKNRtxBb+O+uDqHM4n0pz51rPayMl4cg=",
87
87
+
"owner": "nix-community",
88
88
+
"repo": "fenix",
89
89
+
"rev": "efeb50e2535b17ffd4a135e6e3e5fd60a525180c",
90
90
+
"type": "github"
91
91
+
},
92
92
+
"original": {
93
93
+
"owner": "nix-community",
94
94
+
"repo": "fenix",
95
95
+
"type": "github"
96
96
+
}
97
97
+
},
98
98
+
"flake-compat": {
99
99
+
"flake": false,
100
100
+
"locked": {
101
101
+
"lastModified": 1767039857,
102
102
+
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
103
103
+
"owner": "NixOS",
104
104
+
"repo": "flake-compat",
105
105
+
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
106
106
+
"type": "github"
107
107
+
},
108
108
+
"original": {
109
109
+
"owner": "NixOS",
110
110
+
"repo": "flake-compat",
111
111
+
"type": "github"
112
112
+
}
113
113
+
},
114
114
+
"flake-utils": {
115
115
+
"inputs": {
116
116
+
"systems": "systems_2"
117
117
+
},
118
118
+
"locked": {
119
119
+
"lastModified": 1731533236,
120
120
+
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
121
121
+
"owner": "numtide",
122
122
+
"repo": "flake-utils",
123
123
+
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
124
124
+
"type": "github"
125
125
+
},
126
126
+
"original": {
127
127
+
"owner": "numtide",
128
128
+
"repo": "flake-utils",
129
129
+
"type": "github"
130
130
+
}
131
131
+
},
132
132
+
"flakeCompat": {
133
133
+
"flake": false,
134
134
+
"locked": {
135
135
+
"lastModified": 1696426674,
136
136
+
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
137
137
+
"owner": "edolstra",
138
138
+
"repo": "flake-compat",
139
139
+
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
140
140
+
"type": "github"
141
141
+
},
142
142
+
"original": {
143
143
+
"owner": "edolstra",
144
144
+
"repo": "flake-compat",
145
145
+
"type": "github"
146
146
+
}
147
147
+
},
148
148
+
"gitignore": {
149
149
+
"inputs": {
150
150
+
"nixpkgs": [
151
151
+
"hyprland",
152
152
+
"pre-commit-hooks",
153
153
+
"nixpkgs"
154
154
+
]
155
155
+
},
156
156
+
"locked": {
157
157
+
"lastModified": 1709087332,
158
158
+
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
159
159
+
"owner": "hercules-ci",
160
160
+
"repo": "gitignore.nix",
161
161
+
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
162
162
+
"type": "github"
163
163
+
},
164
164
+
"original": {
165
165
+
"owner": "hercules-ci",
166
166
+
"repo": "gitignore.nix",
167
167
+
"type": "github"
168
168
+
}
169
169
+
},
170
170
+
"helix-master": {
171
171
+
"inputs": {
172
172
+
"nixpkgs": "nixpkgs",
173
173
+
"rust-overlay": "rust-overlay"
174
174
+
},
175
175
+
"locked": {
176
176
+
"lastModified": 1782281189,
177
177
+
"narHash": "sha256-pr0uoMp72SkUkh6VQtQd+OVTqxAaat+3FN+o5yMJvQE=",
178
178
+
"owner": "helix-editor",
179
179
+
"repo": "helix",
180
180
+
"rev": "6b7c7c6e0784d7c34295c24064deb36418c0b4b5",
181
181
+
"type": "github"
182
182
+
},
183
183
+
"original": {
184
184
+
"owner": "helix-editor",
185
185
+
"repo": "helix",
186
186
+
"type": "github"
187
187
+
}
188
188
+
},
189
189
+
"home-manager": {
190
190
+
"inputs": {
191
191
+
"nixpkgs": [
192
192
+
"nixpkgs"
193
193
+
]
194
194
+
},
195
195
+
"locked": {
196
196
+
"lastModified": 1782233665,
197
197
+
"narHash": "sha256-h/xOtrByoA/Ak1lWHn0O1lVZz4qWYbwOSLQ8YSwQO0I=",
198
198
+
"owner": "nix-community",
199
199
+
"repo": "home-manager",
200
200
+
"rev": "062581938b4a378a82dfbb294b494808157153a1",
201
201
+
"type": "github"
202
202
+
},
203
203
+
"original": {
204
204
+
"owner": "nix-community",
205
205
+
"repo": "home-manager",
206
206
+
"type": "github"
207
207
+
}
208
208
+
},
209
209
+
"hy3": {
210
210
+
"inputs": {
211
211
+
"hyprland": [
212
212
+
"hyprland"
213
213
+
]
214
214
+
},
215
215
+
"locked": {
216
216
+
"lastModified": 1781851358,
217
217
+
"narHash": "sha256-6mLY3Y9ar0owm1KtFBh4YYfzdlnsXelzp7Llh79EzRs=",
218
218
+
"owner": "outfoxxed",
219
219
+
"repo": "hy3",
220
220
+
"rev": "ded5e168f3a8d1290b34d696930098e8c141404d",
221
221
+
"type": "github"
222
222
+
},
223
223
+
"original": {
224
224
+
"owner": "outfoxxed",
225
225
+
"repo": "hy3",
226
226
+
"type": "github"
227
227
+
}
228
228
+
},
229
229
+
"hyprcursor": {
230
230
+
"inputs": {
231
231
+
"hyprlang": [
232
232
+
"hyprland",
233
233
+
"hyprlang"
234
234
+
],
235
235
+
"nixpkgs": [
236
236
+
"hyprland",
237
237
+
"nixpkgs"
238
238
+
],
239
239
+
"systems": [
240
240
+
"hyprland",
241
241
+
"systems"
242
242
+
]
243
243
+
},
244
244
+
"locked": {
245
245
+
"lastModified": 1776511930,
246
246
+
"narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=",
247
247
+
"owner": "hyprwm",
248
248
+
"repo": "hyprcursor",
249
249
+
"rev": "39435900785d0c560c6ae8777d29f28617d031ef",
250
250
+
"type": "github"
251
251
+
},
252
252
+
"original": {
253
253
+
"owner": "hyprwm",
254
254
+
"repo": "hyprcursor",
255
255
+
"type": "github"
256
256
+
}
257
257
+
},
258
258
+
"hyprgraphics": {
259
259
+
"inputs": {
260
260
+
"hyprutils": [
261
261
+
"hyprland",
262
262
+
"hyprutils"
263
263
+
],
264
264
+
"nixpkgs": [
265
265
+
"hyprland",
266
266
+
"nixpkgs"
267
267
+
],
268
268
+
"systems": [
269
269
+
"hyprland",
270
270
+
"systems"
271
271
+
]
272
272
+
},
273
273
+
"locked": {
274
274
+
"lastModified": 1776426399,
275
275
+
"narHash": "sha256-RUESLKNikIeEq9ymGJ6nmcDXiSFQpUW1IhJ245nL3xM=",
276
276
+
"owner": "hyprwm",
277
277
+
"repo": "hyprgraphics",
278
278
+
"rev": "68d064434787cf1ed4a2fe257c03c5f52f33cf84",
279
279
+
"type": "github"
280
280
+
},
281
281
+
"original": {
282
282
+
"owner": "hyprwm",
283
283
+
"repo": "hyprgraphics",
284
284
+
"type": "github"
285
285
+
}
286
286
+
},
287
287
+
"hyprland": {
288
288
+
"inputs": {
289
289
+
"aquamarine": "aquamarine",
290
290
+
"hyprcursor": "hyprcursor",
291
291
+
"hyprgraphics": "hyprgraphics",
292
292
+
"hyprland-guiutils": "hyprland-guiutils",
293
293
+
"hyprland-protocols": "hyprland-protocols",
294
294
+
"hyprlang": "hyprlang",
295
295
+
"hyprutils": "hyprutils",
296
296
+
"hyprwayland-scanner": "hyprwayland-scanner",
297
297
+
"hyprwire": "hyprwire",
298
298
+
"nixpkgs": "nixpkgs_2",
299
299
+
"pre-commit-hooks": "pre-commit-hooks",
300
300
+
"systems": "systems",
301
301
+
"xdph": "xdph"
302
302
+
},
303
303
+
"locked": {
304
304
+
"lastModified": 1782226626,
305
305
+
"narHash": "sha256-aFkQmqXUPXzV117P853JKe6s/pzohzxZSjzCs9Pw9fc=",
306
306
+
"owner": "hyprwm",
307
307
+
"repo": "Hyprland",
308
308
+
"rev": "049595e196db4a4ab162ce58aadd016e929327c8",
309
309
+
"type": "github"
310
310
+
},
311
311
+
"original": {
312
312
+
"owner": "hyprwm",
313
313
+
"repo": "Hyprland",
314
314
+
"type": "github"
315
315
+
}
316
316
+
},
317
317
+
"hyprland-guiutils": {
318
318
+
"inputs": {
319
319
+
"aquamarine": [
320
320
+
"hyprland",
321
321
+
"aquamarine"
322
322
+
],
323
323
+
"hyprgraphics": [
324
324
+
"hyprland",
325
325
+
"hyprgraphics"
326
326
+
],
327
327
+
"hyprlang": [
328
328
+
"hyprland",
329
329
+
"hyprlang"
330
330
+
],
331
331
+
"hyprtoolkit": "hyprtoolkit",
332
332
+
"hyprutils": [
333
333
+
"hyprland",
334
334
+
"hyprutils"
335
335
+
],
336
336
+
"hyprwayland-scanner": [
337
337
+
"hyprland",
338
338
+
"hyprwayland-scanner"
339
339
+
],
340
340
+
"nixpkgs": [
341
341
+
"hyprland",
342
342
+
"nixpkgs"
343
343
+
],
344
344
+
"systems": [
345
345
+
"hyprland",
346
346
+
"systems"
347
347
+
]
348
348
+
},
349
349
+
"locked": {
350
350
+
"lastModified": 1776426575,
351
351
+
"narHash": "sha256-KI6nIfVihn/DPaeB5Et46Xg3dkNHrrEtUd5LBBVomB0=",
352
352
+
"owner": "hyprwm",
353
353
+
"repo": "hyprland-guiutils",
354
354
+
"rev": "a968d211048e3ed538e47b84cb3649299578f19d",
355
355
+
"type": "github"
356
356
+
},
357
357
+
"original": {
358
358
+
"owner": "hyprwm",
359
359
+
"repo": "hyprland-guiutils",
360
360
+
"type": "github"
361
361
+
}
362
362
+
},
363
363
+
"hyprland-plugins": {
364
364
+
"inputs": {
365
365
+
"hyprland": [
366
366
+
"hyprland"
367
367
+
],
368
368
+
"nixpkgs": [
369
369
+
"hyprland-plugins",
370
370
+
"hyprland",
371
371
+
"nixpkgs"
372
372
+
],
373
373
+
"systems": [
374
374
+
"hyprland-plugins",
375
375
+
"hyprland",
376
376
+
"systems"
377
377
+
]
378
378
+
},
379
379
+
"locked": {
380
380
+
"lastModified": 1781442805,
381
381
+
"narHash": "sha256-Kt56e6Bq2sfqN8yq1RHsS6z+8QKCZelmhaeQQRtZyqU=",
382
382
+
"owner": "hyprwm",
383
383
+
"repo": "hyprland-plugins",
384
384
+
"rev": "1f90c674d51a1ef83c725cd6d02280b4c969fdf7",
385
385
+
"type": "github"
386
386
+
},
387
387
+
"original": {
388
388
+
"owner": "hyprwm",
389
389
+
"repo": "hyprland-plugins",
390
390
+
"type": "github"
391
391
+
}
392
392
+
},
393
393
+
"hyprland-protocols": {
394
394
+
"inputs": {
395
395
+
"nixpkgs": [
396
396
+
"hyprland",
397
397
+
"nixpkgs"
398
398
+
],
399
399
+
"systems": [
400
400
+
"hyprland",
401
401
+
"systems"
402
402
+
]
403
403
+
},
404
404
+
"locked": {
405
405
+
"lastModified": 1772460177,
406
406
+
"narHash": "sha256-/6G/MsPvtn7bc4Y32pserBT/Z4SUUdBd4XYJpOEKVR4=",
407
407
+
"owner": "hyprwm",
408
408
+
"repo": "hyprland-protocols",
409
409
+
"rev": "1cb6db5fd6bb8aee419f4457402fa18293ace917",
410
410
+
"type": "github"
411
411
+
},
412
412
+
"original": {
413
413
+
"owner": "hyprwm",
414
414
+
"repo": "hyprland-protocols",
415
415
+
"type": "github"
416
416
+
}
417
417
+
},
418
418
+
"hyprlang": {
419
419
+
"inputs": {
420
420
+
"hyprutils": [
421
421
+
"hyprland",
422
422
+
"hyprutils"
423
423
+
],
424
424
+
"nixpkgs": [
425
425
+
"hyprland",
426
426
+
"nixpkgs"
427
427
+
],
428
428
+
"systems": [
429
429
+
"hyprland",
430
430
+
"systems"
431
431
+
]
432
432
+
},
433
433
+
"locked": {
434
434
+
"lastModified": 1777320127,
435
435
+
"narHash": "sha256-Qu+Wf2Bp5qUjyn2YpZNq8a7JyzTGowhT1knrwE38a9U=",
436
436
+
"owner": "hyprwm",
437
437
+
"repo": "hyprlang",
438
438
+
"rev": "090117506ddc3d7f26e650ff344d378c2ec329cc",
439
439
+
"type": "github"
440
440
+
},
441
441
+
"original": {
442
442
+
"owner": "hyprwm",
443
443
+
"repo": "hyprlang",
444
444
+
"type": "github"
445
445
+
}
446
446
+
},
447
447
+
"hyprtoolkit": {
448
448
+
"inputs": {
449
449
+
"aquamarine": [
450
450
+
"hyprland",
451
451
+
"hyprland-guiutils",
452
452
+
"aquamarine"
453
453
+
],
454
454
+
"hyprgraphics": [
455
455
+
"hyprland",
456
456
+
"hyprland-guiutils",
457
457
+
"hyprgraphics"
458
458
+
],
459
459
+
"hyprlang": [
460
460
+
"hyprland",
461
461
+
"hyprland-guiutils",
462
462
+
"hyprlang"
463
463
+
],
464
464
+
"hyprutils": [
465
465
+
"hyprland",
466
466
+
"hyprland-guiutils",
467
467
+
"hyprutils"
468
468
+
],
469
469
+
"hyprwayland-scanner": [
470
470
+
"hyprland",
471
471
+
"hyprland-guiutils",
472
472
+
"hyprwayland-scanner"
473
473
+
],
474
474
+
"nixpkgs": [
475
475
+
"hyprland",
476
476
+
"hyprland-guiutils",
477
477
+
"nixpkgs"
478
478
+
],
479
479
+
"systems": [
480
480
+
"hyprland",
481
481
+
"hyprland-guiutils",
482
482
+
"systems"
483
483
+
]
484
484
+
},
485
485
+
"locked": {
486
486
+
"lastModified": 1772462885,
487
487
+
"narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=",
488
488
+
"owner": "hyprwm",
489
489
+
"repo": "hyprtoolkit",
490
490
+
"rev": "9af245a69fa6b286b88ddfc340afd288e00a6998",
491
491
+
"type": "github"
492
492
+
},
493
493
+
"original": {
494
494
+
"owner": "hyprwm",
495
495
+
"repo": "hyprtoolkit",
496
496
+
"type": "github"
497
497
+
}
498
498
+
},
499
499
+
"hyprutils": {
500
500
+
"inputs": {
501
501
+
"nixpkgs": [
502
502
+
"hyprland",
503
503
+
"nixpkgs"
504
504
+
],
505
505
+
"systems": [
506
506
+
"hyprland",
507
507
+
"systems"
508
508
+
]
509
509
+
},
510
510
+
"locked": {
511
511
+
"lastModified": 1780251518,
512
512
+
"narHash": "sha256-fG9xbb1SOAAJ+2kJRakp3ch+BmA/3dEg/K3PoAZTKkw=",
513
513
+
"owner": "hyprwm",
514
514
+
"repo": "hyprutils",
515
515
+
"rev": "40ede2e7bdec80ba5d4c443160d905e9f841ae5f",
516
516
+
"type": "github"
517
517
+
},
518
518
+
"original": {
519
519
+
"owner": "hyprwm",
520
520
+
"repo": "hyprutils",
521
521
+
"type": "github"
522
522
+
}
523
523
+
},
524
524
+
"hyprwayland-scanner": {
525
525
+
"inputs": {
526
526
+
"nixpkgs": [
527
527
+
"hyprland",
528
528
+
"nixpkgs"
529
529
+
],
530
530
+
"systems": [
531
531
+
"hyprland",
532
532
+
"systems"
533
533
+
]
534
534
+
},
535
535
+
"locked": {
536
536
+
"lastModified": 1777159683,
537
537
+
"narHash": "sha256-Jxixw6wZphUp+nHYxOKUYSckL17QMBx2d5Zp0rJHr1g=",
538
538
+
"owner": "hyprwm",
539
539
+
"repo": "hyprwayland-scanner",
540
540
+
"rev": "b8632713a6beaf28b56f2a7b0ab2fb7088dbb404",
541
541
+
"type": "github"
542
542
+
},
543
543
+
"original": {
544
544
+
"owner": "hyprwm",
545
545
+
"repo": "hyprwayland-scanner",
546
546
+
"type": "github"
547
547
+
}
548
548
+
},
549
549
+
"hyprwire": {
550
550
+
"inputs": {
551
551
+
"hyprutils": [
552
552
+
"hyprland",
553
553
+
"hyprutils"
554
554
+
],
555
555
+
"nixpkgs": [
556
556
+
"hyprland",
557
557
+
"nixpkgs"
558
558
+
],
559
559
+
"systems": [
560
560
+
"hyprland",
561
561
+
"systems"
562
562
+
]
563
563
+
},
564
564
+
"locked": {
565
565
+
"lastModified": 1778410714,
566
566
+
"narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=",
567
567
+
"owner": "hyprwm",
568
568
+
"repo": "hyprwire",
569
569
+
"rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc",
570
570
+
"type": "github"
571
571
+
},
572
572
+
"original": {
573
573
+
"owner": "hyprwm",
574
574
+
"repo": "hyprwire",
575
575
+
"type": "github"
576
576
+
}
577
577
+
},
578
578
+
"ki-editor": {
579
579
+
"inputs": {
580
580
+
"alejandra": "alejandra",
581
581
+
"crane": "crane",
582
582
+
"flake-utils": "flake-utils",
583
583
+
"nixpkgs": "nixpkgs_3",
584
584
+
"rust-overlay": "rust-overlay_2"
585
585
+
},
586
586
+
"locked": {
587
587
+
"lastModified": 1782084082,
588
588
+
"narHash": "sha256-RxBQdLruEoAPwZ6EI/M0q9mh7y/8meNk59agjVxNIhs=",
589
589
+
"owner": "ki-editor",
590
590
+
"repo": "ki-editor",
591
591
+
"rev": "c015a8e06449a3c9ff5058171cc51abb45cacf26",
592
592
+
"type": "github"
593
593
+
},
594
594
+
"original": {
595
595
+
"owner": "ki-editor",
596
596
+
"repo": "ki-editor",
597
597
+
"type": "github"
598
598
+
}
599
599
+
},
600
600
+
"nixpkgs": {
601
601
+
"locked": {
602
602
+
"lastModified": 1775036866,
603
603
+
"narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=",
604
604
+
"owner": "nixos",
605
605
+
"repo": "nixpkgs",
606
606
+
"rev": "6201e203d09599479a3b3450ed24fa81537ebc4e",
607
607
+
"type": "github"
608
608
+
},
609
609
+
"original": {
610
610
+
"owner": "nixos",
611
611
+
"ref": "nixos-unstable",
612
612
+
"repo": "nixpkgs",
613
613
+
"type": "github"
614
614
+
}
615
615
+
},
616
616
+
"nixpkgs_2": {
617
617
+
"locked": {
618
618
+
"lastModified": 1780749050,
619
619
+
"narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=",
620
620
+
"owner": "NixOS",
621
621
+
"repo": "nixpkgs",
622
622
+
"rev": "a799d3e3886da994fa307f817a6bc705ae538eeb",
623
623
+
"type": "github"
624
624
+
},
625
625
+
"original": {
626
626
+
"owner": "NixOS",
627
627
+
"ref": "nixos-unstable",
628
628
+
"repo": "nixpkgs",
629
629
+
"type": "github"
630
630
+
}
631
631
+
},
632
632
+
"nixpkgs_3": {
633
633
+
"locked": {
634
634
+
"lastModified": 1754800730,
635
635
+
"narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=",
636
636
+
"owner": "NixOS",
637
637
+
"repo": "nixpkgs",
638
638
+
"rev": "641d909c4a7538f1539da9240dedb1755c907e40",
639
639
+
"type": "github"
640
640
+
},
641
641
+
"original": {
642
642
+
"owner": "NixOS",
643
643
+
"ref": "nixpkgs-unstable",
644
644
+
"repo": "nixpkgs",
645
645
+
"type": "github"
646
646
+
}
647
647
+
},
648
648
+
"nixpkgs_4": {
649
649
+
"locked": {
650
650
+
"lastModified": 1781577229,
651
651
+
"narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
652
652
+
"owner": "NixOS",
653
653
+
"repo": "nixpkgs",
654
654
+
"rev": "567a49d1913ce81ac6e9582e3553dd90a955875f",
655
655
+
"type": "github"
656
656
+
},
657
657
+
"original": {
658
658
+
"owner": "NixOS",
659
659
+
"ref": "nixos-unstable",
660
660
+
"repo": "nixpkgs",
661
661
+
"type": "github"
662
662
+
}
663
663
+
},
664
664
+
"nixpkgs_5": {
665
665
+
"locked": {
666
666
+
"lastModified": 1781577229,
667
667
+
"narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
668
668
+
"owner": "NixOS",
669
669
+
"repo": "nixpkgs",
670
670
+
"rev": "567a49d1913ce81ac6e9582e3553dd90a955875f",
671
671
+
"type": "github"
672
672
+
},
673
673
+
"original": {
674
674
+
"owner": "NixOS",
675
675
+
"ref": "nixos-unstable",
676
676
+
"repo": "nixpkgs",
677
677
+
"type": "github"
678
678
+
}
679
679
+
},
680
680
+
"pre-commit-hooks": {
681
681
+
"inputs": {
682
682
+
"flake-compat": "flake-compat",
683
683
+
"gitignore": "gitignore",
684
684
+
"nixpkgs": [
685
685
+
"hyprland",
686
686
+
"nixpkgs"
687
687
+
]
688
688
+
},
689
689
+
"locked": {
690
690
+
"lastModified": 1778507602,
691
691
+
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
692
692
+
"owner": "cachix",
693
693
+
"repo": "git-hooks.nix",
694
694
+
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
695
695
+
"type": "github"
696
696
+
},
697
697
+
"original": {
698
698
+
"owner": "cachix",
699
699
+
"repo": "git-hooks.nix",
700
700
+
"type": "github"
701
701
+
}
702
702
+
},
703
703
+
"root": {
704
704
+
"inputs": {
705
705
+
"helix-master": "helix-master",
706
706
+
"home-manager": "home-manager",
707
707
+
"hy3": "hy3",
708
708
+
"hyprland": "hyprland",
709
709
+
"hyprland-plugins": "hyprland-plugins",
710
710
+
"ki-editor": "ki-editor",
711
711
+
"nixpkgs": "nixpkgs_4",
712
712
+
"waterfox": "waterfox",
713
713
+
"zen-browser": "zen-browser"
714
714
+
}
715
715
+
},
716
716
+
"rust-analyzer-src": {
717
717
+
"flake": false,
718
718
+
"locked": {
719
719
+
"lastModified": 1730555913,
720
720
+
"narHash": "sha256-KNHZUlqsEibg3YtfUyOFQSofP8hp1HKoY+laoesBxRM=",
721
721
+
"owner": "rust-lang",
722
722
+
"repo": "rust-analyzer",
723
723
+
"rev": "f17a5bbfd0969ba2e63a74505a80e55ecb174ed9",
724
724
+
"type": "github"
725
725
+
},
726
726
+
"original": {
727
727
+
"owner": "rust-lang",
728
728
+
"ref": "nightly",
729
729
+
"repo": "rust-analyzer",
730
730
+
"type": "github"
731
731
+
}
732
732
+
},
733
733
+
"rust-overlay": {
734
734
+
"inputs": {
735
735
+
"nixpkgs": [
736
736
+
"helix-master",
737
737
+
"nixpkgs"
738
738
+
]
739
739
+
},
740
740
+
"locked": {
741
741
+
"lastModified": 1775358767,
742
742
+
"narHash": "sha256-f2eC+WIfhjevCPQILuV08i/kmKZzYZpUvkom/33VxCA=",
743
743
+
"owner": "oxalica",
744
744
+
"repo": "rust-overlay",
745
745
+
"rev": "20fd44bc663daa53a2575e01293e24e681d62244",
746
746
+
"type": "github"
747
747
+
},
748
748
+
"original": {
749
749
+
"owner": "oxalica",
750
750
+
"repo": "rust-overlay",
751
751
+
"type": "github"
752
752
+
}
753
753
+
},
754
754
+
"rust-overlay_2": {
755
755
+
"inputs": {
756
756
+
"nixpkgs": [
757
757
+
"ki-editor",
758
758
+
"nixpkgs"
759
759
+
]
760
760
+
},
761
761
+
"locked": {
762
762
+
"lastModified": 1754794262,
763
763
+
"narHash": "sha256-5SEz135CaJ0LfHILi+CzWMXQmcvD2QeIf4FKwXAxtxA=",
764
764
+
"owner": "oxalica",
765
765
+
"repo": "rust-overlay",
766
766
+
"rev": "d754da7c068c6e122f84d84c3e6bcd353ee48635",
767
767
+
"type": "github"
768
768
+
},
769
769
+
"original": {
770
770
+
"owner": "oxalica",
771
771
+
"repo": "rust-overlay",
772
772
+
"type": "github"
773
773
+
}
774
774
+
},
775
775
+
"systems": {
776
776
+
"locked": {
777
777
+
"lastModified": 1689347949,
778
778
+
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
779
779
+
"owner": "nix-systems",
780
780
+
"repo": "default-linux",
781
781
+
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
782
782
+
"type": "github"
783
783
+
},
784
784
+
"original": {
785
785
+
"owner": "nix-systems",
786
786
+
"repo": "default-linux",
787
787
+
"type": "github"
788
788
+
}
789
789
+
},
790
790
+
"systems_2": {
791
791
+
"locked": {
792
792
+
"lastModified": 1681028828,
793
793
+
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
794
794
+
"owner": "nix-systems",
795
795
+
"repo": "default",
796
796
+
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
797
797
+
"type": "github"
798
798
+
},
799
799
+
"original": {
800
800
+
"owner": "nix-systems",
801
801
+
"repo": "default",
802
802
+
"type": "github"
803
803
+
}
804
804
+
},
805
805
+
"waterfox": {
806
806
+
"inputs": {
807
807
+
"nixpkgs": "nixpkgs_5"
808
808
+
},
809
809
+
"locked": {
810
810
+
"lastModified": 1781707834,
811
811
+
"narHash": "sha256-1hk586E5BR5nigKonCjqT6aug7hNoccyTKpEE/iC+00=",
812
812
+
"owner": "Hythera",
813
813
+
"repo": "nix-waterfox",
814
814
+
"rev": "6acef78eb0c903b5c6485bbd8adf4c0970c994dc",
815
815
+
"type": "github"
816
816
+
},
817
817
+
"original": {
818
818
+
"owner": "Hythera",
819
819
+
"repo": "nix-waterfox",
820
820
+
"type": "github"
821
821
+
}
822
822
+
},
823
823
+
"xdph": {
824
824
+
"inputs": {
825
825
+
"hyprland-protocols": [
826
826
+
"hyprland",
827
827
+
"hyprland-protocols"
828
828
+
],
829
829
+
"hyprlang": [
830
830
+
"hyprland",
831
831
+
"hyprlang"
832
832
+
],
833
833
+
"hyprutils": [
834
834
+
"hyprland",
835
835
+
"hyprutils"
836
836
+
],
837
837
+
"hyprwayland-scanner": [
838
838
+
"hyprland",
839
839
+
"hyprwayland-scanner"
840
840
+
],
841
841
+
"nixpkgs": [
842
842
+
"hyprland",
843
843
+
"nixpkgs"
844
844
+
],
845
845
+
"systems": [
846
846
+
"hyprland",
847
847
+
"systems"
848
848
+
]
849
849
+
},
850
850
+
"locked": {
851
851
+
"lastModified": 1780133819,
852
852
+
"narHash": "sha256-0YPKIY3dlnR7SPq7Z8ekFVvzFsfeiAtEj+QUI3KHrlI=",
853
853
+
"owner": "hyprwm",
854
854
+
"repo": "xdg-desktop-portal-hyprland",
855
855
+
"rev": "4a170c0ba96fd37374f93d8f91c9ed91814828ac",
856
856
+
"type": "github"
857
857
+
},
858
858
+
"original": {
859
859
+
"owner": "hyprwm",
860
860
+
"repo": "xdg-desktop-portal-hyprland",
861
861
+
"type": "github"
862
862
+
}
863
863
+
},
864
864
+
"zen-browser": {
865
865
+
"inputs": {
866
866
+
"nixpkgs": [
867
867
+
"nixpkgs"
868
868
+
]
869
869
+
},
870
870
+
"locked": {
871
871
+
"lastModified": 1781847955,
872
872
+
"narHash": "sha256-1OSYOGuJp/NoODmSHjsz+6TB/kSilJ+BsFihjY7TTnc=",
873
873
+
"owner": "youwen5",
874
874
+
"repo": "zen-browser-flake",
875
875
+
"rev": "4bca251cd556677f7b765ff324d1638ae215be13",
876
876
+
"type": "github"
877
877
+
},
878
878
+
"original": {
879
879
+
"owner": "youwen5",
880
880
+
"repo": "zen-browser-flake",
881
881
+
"type": "github"
882
882
+
}
883
883
+
}
884
884
+
},
885
885
+
"root": "root",
886
886
+
"version": 7
887
887
+
}
···
1
1
+
{
2
2
+
description = "Dario's flake config";
3
3
+
# Inspired by https://github.com/Misterio77/nix-starter-configs
4
4
+
5
5
+
inputs = {
6
6
+
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
7
7
+
home-manager = {
8
8
+
url = "github:nix-community/home-manager";
9
9
+
inputs.nixpkgs.follows = "nixpkgs";
10
10
+
};
11
11
+
helix-master = {
12
12
+
url = "github:helix-editor/helix";
13
13
+
};
14
14
+
hyprland = {
15
15
+
url = "github:hyprwm/Hyprland";
16
16
+
};
17
17
+
hyprland-plugins = {
18
18
+
url = "github:hyprwm/hyprland-plugins";
19
19
+
inputs.hyprland.follows = "hyprland";
20
20
+
};
21
21
+
hy3 = {
22
22
+
url = "github:outfoxxed/hy3";
23
23
+
inputs.hyprland.follows = "hyprland";
24
24
+
};
25
25
+
ki-editor.url = "github:ki-editor/ki-editor";
26
26
+
waterfox.url = "github:Hythera/nix-waterfox";
27
27
+
zen-browser = {
28
28
+
url = "github:youwen5/zen-browser-flake";
29
29
+
inputs.nixpkgs.follows = "nixpkgs";
30
30
+
};
31
31
+
};
32
32
+
33
33
+
outputs =
34
34
+
{
35
35
+
nixpkgs,
36
36
+
home-manager,
37
37
+
helix-master,
38
38
+
hy3,
39
39
+
ki-editor,
40
40
+
...
41
41
+
}@inputs:
42
42
+
let
43
43
+
system = "x86_64-linux";
44
44
+
pkgs = import nixpkgs {
45
45
+
system = "x86_64-linux";
46
46
+
config.allowUnfree = true;
47
47
+
};
48
48
+
in
49
49
+
{
50
50
+
51
51
+
# Custom packages
52
52
+
packages = import ./pkgs pkgs;
53
53
+
54
54
+
# Custom packages and modifications, exported as overlays
55
55
+
overlays = import ./overlays { inherit inputs; };
56
56
+
57
57
+
# Reusable nixos modules you might want to export
58
58
+
nixosModules = import ./modules/nixos;
59
59
+
60
60
+
# Reusable home-manager modules you might want to export
61
61
+
homeManagerModules = import ./modules/home-manager;
62
62
+
63
63
+
# NixOS configuration entrypoint
64
64
+
# Available through 'nixos-rebuild --flake .#your-hostname'
65
65
+
nixosConfigurations = {
66
66
+
t470p = nixpkgs.lib.nixosSystem {
67
67
+
inherit system;
68
68
+
specialArgs = { inherit inputs; ki-editor = ki-editor; };
69
69
+
modules = [
70
70
+
./nixos/hosts/hardware-configuration-t470p.nix
71
71
+
./nixos/configuration.nix
72
72
+
./nixos/hosts/t470p.nix
73
73
+
home-manager.nixosModules.home-manager
74
74
+
{
75
75
+
home-manager = {
76
76
+
useGlobalPkgs = true;
77
77
+
backupFileExtension = "backup";
78
78
+
users.dario = import ./home-manager/home.nix;
79
79
+
extraSpecialArgs = {
80
80
+
helix-master = helix-master;
81
81
+
inherit inputs;
82
82
+
};
83
83
+
};
84
84
+
}
85
85
+
];
86
86
+
};
87
87
+
home = nixpkgs.lib.nixosSystem {
88
88
+
inherit system;
89
89
+
specialArgs = { inherit inputs; ki-editor = ki-editor; };
90
90
+
modules = [
91
91
+
./nixos/hosts/hardware-configuration-home.nix
92
92
+
./nixos/configuration.nix
93
93
+
./nixos/hosts/home.nix
94
94
+
home-manager.nixosModules.home-manager
95
95
+
{
96
96
+
home-manager = {
97
97
+
useGlobalPkgs = true;
98
98
+
backupFileExtension = "backup";
99
99
+
users.dario = import ./home-manager/home.nix;
100
100
+
extraSpecialArgs = {
101
101
+
helix-master = helix-master;
102
102
+
inherit inputs;
103
103
+
};
104
104
+
};
105
105
+
}
106
106
+
];
107
107
+
};
108
108
+
};
109
109
+
110
110
+
};
111
111
+
}
···
1
1
+
{pkgs, config, inputs, ...}: {
2
2
+
home = {
3
3
+
username = "dario";
4
4
+
homeDirectory = "/home/dario";
5
5
+
stateVersion = "25.05";
6
6
+
packages = [
7
7
+
pkgs.nixfmt
8
8
+
];
9
9
+
};
10
10
+
11
11
+
services.udiskie = {
12
12
+
enable = true;
13
13
+
settings = {
14
14
+
# workaround for
15
15
+
# https://github.com/nix-community/home-manager/issues/632
16
16
+
program_options = {
17
17
+
# replace with your favorite file manager
18
18
+
file_manager = "${pkgs.kdePackages.dolphin}/bin/dolphin";
19
19
+
};
20
20
+
};
21
21
+
};
22
22
+
23
23
+
# Not entirely sure what this is for
24
24
+
programs.bash = {
25
25
+
enable = true;
26
26
+
profileExtra = ''
27
27
+
if [ -z "$WAYLAND_DISPLAY" ] && [ "$XDGR_VTNR" = 1 ]; then
28
28
+
exec uwsm start -S hyprland-uwsm.desktop
29
29
+
fi
30
30
+
'';
31
31
+
};
32
32
+
33
33
+
xdg.mimeApps.enable = true;
34
34
+
xdg.mimeApps.defaultApplications = {
35
35
+
"x-scheme-handler/https" = "zen.desktop";
36
36
+
"x-scheme-handler/http" = "zen.desktop";
37
37
+
};
38
38
+
39
39
+
40
40
+
imports = [
41
41
+
inputs.self.homeManagerModules.alacritty
42
42
+
inputs.self.homeManagerModules.atuin
43
43
+
inputs.self.homeManagerModules.fish
44
44
+
inputs.self.homeManagerModules.helix
45
45
+
inputs.self.homeManagerModules.hyprland
46
46
+
inputs.self.homeManagerModules.jujutsu
47
47
+
inputs.self.homeManagerModules.starship
48
48
+
inputs.self.homeManagerModules.waybar
49
49
+
inputs.self.homeManagerModules.zellij
50
50
+
];
51
51
+
52
52
+
53
53
+
#nixpkgs = {
54
54
+
# overlays = [
55
55
+
# inputs.self.overlays.additions
56
56
+
# inputs.self.overlays.modifications
57
57
+
# ];
58
58
+
#};
59
59
+
60
60
+
}
···
1
1
+
{ pkgs, ...}: {
2
2
+
programs.alacritty = {
3
3
+
enable = true;
4
4
+
# theme = "solarized_dark";
5
5
+
settings = {
6
6
+
font = {
7
7
+
size = 8;
8
8
+
normal = {
9
9
+
family = "Monaspace Neon";
10
10
+
};
11
11
+
italic = {
12
12
+
family = "Monaspace Radon";
13
13
+
};
14
14
+
bold = {
15
15
+
family = "Monaspace Xenon";
16
16
+
};
17
17
+
};
18
18
+
terminal.shell = "fish";
19
19
+
};
20
20
+
};
21
21
+
}
···
1
1
+
{ pkgs, ...}: {
2
2
+
programs.atuin = {
3
3
+
enable = true;
4
4
+
enableFishIntegration = true;
5
5
+
};
6
6
+
}
···
1
1
+
{
2
2
+
# my-module = import ./my-module.nix
3
3
+
alacritty = import ./alacritty.nix;
4
4
+
atuin = import ./atuin.nix;
5
5
+
fish = import ./fish.nix;
6
6
+
helix = import ./helix.nix;
7
7
+
hyprland = import ./hyprland.nix;
8
8
+
jujutsu = import ./jujutsu.nix;
9
9
+
starship = import ./starship.nix;
10
10
+
waybar = import ./waybar.nix;
11
11
+
zellij = import ./zellij.nix;
12
12
+
}
···
1
1
+
{ pkgs, ... }: {
2
2
+
programs.fish = {
3
3
+
enable = true;
4
4
+
plugins = [
5
5
+
{
6
6
+
name = "grc";
7
7
+
src = pkgs.fishPlugins.grc.src;
8
8
+
}
9
9
+
{
10
10
+
name = "fzf-fish";
11
11
+
src = pkgs.fishPlugins.fzf-fish.src;
12
12
+
}
13
13
+
{
14
14
+
name = "colored-man-pages";
15
15
+
src = pkgs.fishPlugins.colored-man-pages.src;
16
16
+
}
17
17
+
{
18
18
+
name = "done";
19
19
+
src = pkgs.fishPlugins.done.src;
20
20
+
}
21
21
+
{
22
22
+
name = "humantime-fish";
23
23
+
src = pkgs.fishPlugins.humantime-fish.src;
24
24
+
}
25
25
+
];
26
26
+
interactiveShellInit = ''
27
27
+
set -xg EDITOR hx
28
28
+
set fish_greeting # disable greeting
29
29
+
starship init fish | source
30
30
+
atuin init fish | source
31
31
+
ssh_agent
32
32
+
'';
33
33
+
shellAliases = {
34
34
+
j = "jj";
35
35
+
h = "jj";
36
36
+
};
37
37
+
binds = {
38
38
+
};
39
39
+
functions = {
40
40
+
fish_user_key_bindings = ''
41
41
+
fish_vi_key_bindings
42
42
+
'';
43
43
+
ssh_agent = ''
44
44
+
if test -z "$SSH_ENV"
45
45
+
set -xg SSH_ENV $HOME/.ssh/environment
46
46
+
end
47
47
+
48
48
+
if not __ssh_agent_is_started
49
49
+
__ssh_agent_start
50
50
+
end
51
51
+
'';
52
52
+
53
53
+
__ssh_agent_is_started = ''
54
54
+
function __ssh_agent_is_started -d "check if ssh agent is already started"
55
55
+
if test -n "$SSH_CONNECTION"
56
56
+
# This is an SSH session
57
57
+
ssh-add -l > /dev/null 2>&1
58
58
+
if test $status -eq 0 -o $status -eq 1
59
59
+
# An SSH agent was forwarded
60
60
+
return 0
61
61
+
end
62
62
+
end
63
63
+
64
64
+
if begin; test -f "$SSH_ENV"; and test -z "$SSH_AGENT_PID"; end
65
65
+
source $SSH_ENV > /dev/null
66
66
+
end
67
67
+
68
68
+
if test -z "$SSH_AGENT_PID"
69
69
+
return 1
70
70
+
end
71
71
+
72
72
+
ssh-add -l > /dev/null 2>&1
73
73
+
if test $status -eq 2
74
74
+
return 1
75
75
+
end
76
76
+
end
77
77
+
'';
78
78
+
79
79
+
__ssh_agent_start = ''
80
80
+
function __ssh_agent_start -d "start a new ssh agent"
81
81
+
ssh-agent -c | sed 's/^echo/#echo/' > $SSH_ENV
82
82
+
chmod 600 $SSH_ENV
83
83
+
source $SSH_ENV > /dev/null
84
84
+
end
85
85
+
'';
86
86
+
87
87
+
jrad = ''
88
88
+
--wraps="git checkout"
89
89
+
git checkout $argv
90
90
+
git push rad
91
91
+
j
92
92
+
'';
93
93
+
};
94
94
+
};
95
95
+
}
···
1
1
+
{ helix-master, ...}: {
2
2
+
programs.helix = {
3
3
+
package = helix-master.packages."x86_64-linux".default;
4
4
+
enable = true;
5
5
+
settings = {
6
6
+
theme = "kanagawa";
7
7
+
keys = {
8
8
+
insert = {
9
9
+
"A-i" = ["move_char_right" "normal_mode"];
10
10
+
};
11
11
+
normal = {
12
12
+
ret = "goto_word";
13
13
+
tab = "goto_next_buffer";
14
14
+
"S-tab" = "goto_previous_buffer";
15
15
+
D = ["extend_to_line_end" "delete_selection"];
16
16
+
"{" = "goto_prev_paragraph";
17
17
+
"}" = "goto_next_paragraph";
18
18
+
X = "extend_line_up";
19
19
+
m = {
20
20
+
M = ["select_mode" "match_brackets" "normal_mode"];
21
21
+
};
22
22
+
space = {
23
23
+
space = "file_picker";
24
24
+
"." = "file_picker_in_current_buffer_directory";
25
25
+
x = ":buffer-close";
26
26
+
X = ":buffer-close!";
27
27
+
"C-y" = ":yank-diagnostic";
28
28
+
"A-/" = "@ /%p <C-r>% %n "; # Open the search picker in current buffer to local search
29
29
+
"C-/" = "@miwy /%p <C-r>% %n <C-r>."; # Open the search picker in current buffer with word selected to local search
30
30
+
m = {
31
31
+
v = ":lsp-workspace-command purescript.build";
32
32
+
b = ":sh zellij -s ONE action write-chars ':serve'; zellij -s ONE action write 13";
33
33
+
q = ":sh zellij -s ONE action write-chars ':q'; zellij -s ONE action write 13";
34
34
+
r = ":sh zellij -s ONE action write-chars 'run-develop'; zellij -s ONE action write 13";
35
35
+
};
36
36
+
e = {
37
37
+
b = ":sh git blame -L %{cursor_line},%{cursor_line} %{buffer_name}";
38
38
+
B = ":sh gh browse %{buffer_name}:%{cursor_line} -c%sh{latest_pushed_commit}";
39
39
+
e = [":yank-diagnostic" ":vsplit-new" "paste_clipboard_after"];
40
40
+
};
41
41
+
t = {
42
42
+
w = ":toggle whitespace.render all none";
43
43
+
s = ":toggle soft-wrap.enable";
44
44
+
h = ":toggle lsp.display-inline-hints";
45
45
+
l = ":toggle lsp-enable";
46
46
+
};
47
47
+
};
48
48
+
};
49
49
+
};
50
50
+
editor = {
51
51
+
cursorline = true;
52
52
+
cursorcolumn = true;
53
53
+
color-modes = true;
54
54
+
indent-guides.render = true;
55
55
+
end-of-line-diagnostics = "hint";
56
56
+
jump-label-alphabet = "jfkdls;aurieowpqnvmcxz";
57
57
+
bufferline = "multiple";
58
58
+
true-color = true;
59
59
+
rulers = [110];
60
60
+
inline-diagnostics = {
61
61
+
cursor-line = "error";
62
62
+
};
63
63
+
soft-wrap = {
64
64
+
enable = true;
65
65
+
max-wrap = 25;
66
66
+
};
67
67
+
gutters = {
68
68
+
layout = ["line-numbers" "diagnostics" "diff"];
69
69
+
};
70
70
+
statusline = {
71
71
+
mode = {
72
72
+
normal = "N";
73
73
+
insert = "I";
74
74
+
select = "S";
75
75
+
};
76
76
+
left = ["mode" "spinner" "diagnostics"];
77
77
+
center = ["file-name" "read-only-indicator" "file-modification-indicator"];
78
78
+
right = ["selections" "register" "position" "position-percentage"];
79
79
+
};
80
80
+
lsp = {
81
81
+
display-progress-messages = true;
82
82
+
display-messages = true;
83
83
+
display-inlay-hints = true;
84
84
+
};
85
85
+
cursor-shape = {
86
86
+
insert = "bar";
87
87
+
normal = "block";
88
88
+
select = "underline";
89
89
+
};
90
90
+
whitespace = {
91
91
+
render = {
92
92
+
space = "all";
93
93
+
tab = "all";
94
94
+
newline = "all";
95
95
+
};
96
96
+
characters = {
97
97
+
space = "·";
98
98
+
nbsp = "⍽";
99
99
+
tab = "→";
100
100
+
newline = "⏎";
101
101
+
};
102
102
+
};
103
103
+
};
104
104
+
};
105
105
+
languages = {
106
106
+
language-server = {
107
107
+
haskell-language-server = {
108
108
+
config.haskell = { formattingProvider = "none"; };
109
109
+
args = ["--lsp" "-j"];
110
110
+
timeout = 120;
111
111
+
};
112
112
+
};
113
113
+
language = [
114
114
+
{
115
115
+
name = "haskell";
116
116
+
roots = ["Setup.hs" "stack.yaml" "*.cabal"];
117
117
+
file-types = ["hs" "hs-boot"];
118
118
+
auto-format = true;
119
119
+
language-servers = ["haskell-language-server"];
120
120
+
formatter = {
121
121
+
command = "fourmolu";
122
122
+
args = ["-d" "--stdin-input-file" "%{file_path_absolute}"];
123
123
+
};
124
124
+
}
125
125
+
];
126
126
+
};
127
127
+
};
128
128
+
}
···
1
1
+
{
2
2
+
pkgs,
3
3
+
lib,
4
4
+
inputs,
5
5
+
...
6
6
+
}:
7
7
+
let
8
8
+
run = lib.generators.mkLuaInline;
9
9
+
in
10
10
+
{
11
11
+
wayland.windowManager.hyprland = {
12
12
+
enable = true;
13
13
+
configType = "lua";
14
14
+
plugins = [
15
15
+
];
16
16
+
17
17
+
settings = {
18
18
+
terminal = {
19
19
+
_var = "alacritty";
20
20
+
};
21
21
+
menu = {
22
22
+
# _var = "rofi -show drun";
23
23
+
_var = "hyprlauncher";
24
24
+
};
25
25
+
browser = {
26
26
+
_var = "zen";
27
27
+
};
28
28
+
lockscreen = {
29
29
+
_var = "hyprlock";
30
30
+
};
31
31
+
32
32
+
# TODO: split into different configs
33
33
+
monitor = [
34
34
+
{
35
35
+
output = "desc:BNQ ZOWIE XL LCD T8H02566SL0";
36
36
+
mode = "preferred"; # 144hz gives me problems here
37
37
+
position = "auto";
38
38
+
scale = "1";
39
39
+
}
40
40
+
{
41
41
+
output = "desc:BNQ BenQ LCD N1N01435019";
42
42
+
mode = "preferred";
43
43
+
position = "auto";
44
44
+
scale = "1";
45
45
+
transform = 1;
46
46
+
}
47
47
+
{
48
48
+
output = "";
49
49
+
mode = "preferred";
50
50
+
position = "auto";
51
51
+
scale = "1";
52
52
+
}
53
53
+
];
54
54
+
55
55
+
curve = [
56
56
+
{
57
57
+
_args = [
58
58
+
"easeOutQuint"
59
59
+
{
60
60
+
type = "bezier";
61
61
+
points = [
62
62
+
[
63
63
+
0.23
64
64
+
1
65
65
+
]
66
66
+
[
67
67
+
0.32
68
68
+
1
69
69
+
]
70
70
+
];
71
71
+
}
72
72
+
];
73
73
+
}
74
74
+
{
75
75
+
_args = [
76
76
+
"easeInOutCubic"
77
77
+
{
78
78
+
type = "bezier";
79
79
+
points = [
80
80
+
[
81
81
+
0.65
82
82
+
0.05
83
83
+
]
84
84
+
[
85
85
+
0.36
86
86
+
1
87
87
+
]
88
88
+
];
89
89
+
}
90
90
+
];
91
91
+
}
92
92
+
{
93
93
+
_args = [
94
94
+
"linear"
95
95
+
{
96
96
+
type = "bezier";
97
97
+
points = [
98
98
+
[
99
99
+
0
100
100
+
0
101
101
+
]
102
102
+
[
103
103
+
1
104
104
+
1
105
105
+
]
106
106
+
];
107
107
+
}
108
108
+
];
109
109
+
}
110
110
+
{
111
111
+
_args = [
112
112
+
"almostLinear"
113
113
+
{
114
114
+
type = "bezier";
115
115
+
points = [
116
116
+
[
117
117
+
0.5
118
118
+
0.5
119
119
+
]
120
120
+
[
121
121
+
0.75
122
122
+
1.0
123
123
+
]
124
124
+
];
125
125
+
}
126
126
+
];
127
127
+
}
128
128
+
{
129
129
+
_args = [
130
130
+
"quick"
131
131
+
{
132
132
+
type = "bezier";
133
133
+
points = [
134
134
+
[
135
135
+
0.15
136
136
+
0
137
137
+
]
138
138
+
[
139
139
+
0.1
140
140
+
1
141
141
+
]
142
142
+
];
143
143
+
}
144
144
+
];
145
145
+
}
146
146
+
];
147
147
+
148
148
+
animation = [
149
149
+
{
150
150
+
leaf = "global";
151
151
+
enabled = true;
152
152
+
speed = 10;
153
153
+
bezier = "default";
154
154
+
}
155
155
+
{
156
156
+
leaf = "border";
157
157
+
enabled = true;
158
158
+
speed = 5.39;
159
159
+
bezier = "easeOutQuint";
160
160
+
}
161
161
+
{
162
162
+
leaf = "windows";
163
163
+
enabled = true;
164
164
+
speed = 4.79;
165
165
+
bezier = "easeOutQuint";
166
166
+
}
167
167
+
{
168
168
+
leaf = "windowsIn";
169
169
+
enabled = true;
170
170
+
speed = 4.1;
171
171
+
bezier = "easeOutQuint";
172
172
+
style = "popin 87%";
173
173
+
}
174
174
+
{
175
175
+
leaf = "windowsOut";
176
176
+
enabled = true;
177
177
+
speed = 1.49;
178
178
+
bezier = "linear";
179
179
+
style = "popin 87%";
180
180
+
}
181
181
+
{
182
182
+
leaf = "fadeIn";
183
183
+
enabled = true;
184
184
+
speed = 1.73;
185
185
+
bezier = "almostLinear";
186
186
+
}
187
187
+
{
188
188
+
leaf = "fadeOut";
189
189
+
enabled = true;
190
190
+
speed = 1.46;
191
191
+
bezier = "almostLinear";
192
192
+
}
193
193
+
{
194
194
+
leaf = "fade";
195
195
+
enabled = true;
196
196
+
speed = 3.03;
197
197
+
bezier = "quick";
198
198
+
}
199
199
+
{
200
200
+
leaf = "layers";
201
201
+
enabled = true;
202
202
+
speed = 3.81;
203
203
+
bezier = "easeOutQuint";
204
204
+
}
205
205
+
{
206
206
+
leaf = "layersIn";
207
207
+
enabled = true;
208
208
+
speed = 4;
209
209
+
bezier = "easeOutQuint";
210
210
+
style = "fade";
211
211
+
}
212
212
+
{
213
213
+
leaf = "layersOut";
214
214
+
enabled = true;
215
215
+
speed = 1.5;
216
216
+
bezier = "linear";
217
217
+
style = "fade";
218
218
+
}
219
219
+
{
220
220
+
leaf = "fadeLayersIn";
221
221
+
enabled = true;
222
222
+
speed = 1.79;
223
223
+
bezier = "almostLinear";
224
224
+
}
225
225
+
{
226
226
+
leaf = "fadeLayersOut";
227
227
+
enabled = true;
228
228
+
speed = 1.39;
229
229
+
bezier = "almostLinear";
230
230
+
}
231
231
+
{
232
232
+
leaf = "workspaces";
233
233
+
enabled = true;
234
234
+
speed = 1.94;
235
235
+
bezier = "almostLinear";
236
236
+
style = "fade";
237
237
+
}
238
238
+
{
239
239
+
leaf = "workspacesIn";
240
240
+
enabled = true;
241
241
+
speed = 1.21;
242
242
+
bezier = "almostLinear";
243
243
+
style = "fade";
244
244
+
}
245
245
+
{
246
246
+
leaf = "workspacesOut";
247
247
+
enabled = true;
248
248
+
speed = 1.94;
249
249
+
bezier = "almostLinear";
250
250
+
style = "fade";
251
251
+
}
252
252
+
];
253
253
+
254
254
+
config = {
255
255
+
general = {
256
256
+
gaps_in = 2;
257
257
+
gaps_out = 4;
258
258
+
border_size = 2;
259
259
+
layout = "dwindle";
260
260
+
resize_on_border = false;
261
261
+
allow_tearing = false;
262
262
+
col = {
263
263
+
active_border = {
264
264
+
colors = [
265
265
+
"rgba(33ccffee)"
266
266
+
"rgba(00ff99ee)"
267
267
+
];
268
268
+
angle = 45;
269
269
+
};
270
270
+
inactive_border = "rgba(595959aa)";
271
271
+
};
272
272
+
};
273
273
+
274
274
+
decoration = {
275
275
+
rounding = 5;
276
276
+
rounding_power = 2;
277
277
+
active_opacity = 1.0;
278
278
+
inactive_opacity = 1.0;
279
279
+
shadow = {
280
280
+
enabled = true;
281
281
+
range = 4;
282
282
+
render_power = 3;
283
283
+
color = "rgba(1a1a1aee)";
284
284
+
};
285
285
+
blur = {
286
286
+
enabled = true;
287
287
+
size = 3;
288
288
+
passes = 1;
289
289
+
vibrancy = 0.1696;
290
290
+
};
291
291
+
};
292
292
+
293
293
+
animations = {
294
294
+
enabled = true;
295
295
+
};
296
296
+
297
297
+
dwindle = {
298
298
+
preserve_split = true;
299
299
+
};
300
300
+
301
301
+
master = {
302
302
+
new_status = "mster";
303
303
+
};
304
304
+
305
305
+
misc = {
306
306
+
force_default_wallpaper = -1;
307
307
+
disable_hyprland_logo = false;
308
308
+
};
309
309
+
};
310
310
+
311
311
+
bind = [
312
312
+
{
313
313
+
_args = [
314
314
+
"SUPER + Q"
315
315
+
(run "hl.dsp.window.close()")
316
316
+
];
317
317
+
}
318
318
+
{
319
319
+
_args = [
320
320
+
"SUPER + SHIFT + ESCAPE"
321
321
+
(run "hl.dsp.exec_cmd(lockscreen)")
322
322
+
];
323
323
+
}
324
324
+
{
325
325
+
_args = [
326
326
+
"SUPER + RETURN"
327
327
+
(run "hl.dsp.exec_cmd(terminal)")
328
328
+
];
329
329
+
}
330
330
+
{
331
331
+
_args = [
332
332
+
"SUPER + SHIFT + M"
333
333
+
(run "hl.dsp.exit()")
334
334
+
];
335
335
+
}
336
336
+
{
337
337
+
_args = [
338
338
+
"SUPER + V"
339
339
+
(run "hl.dsp.window.float({ action = \"toggle\" })")
340
340
+
];
341
341
+
}
342
342
+
{
343
343
+
_args = [
344
344
+
"SUPER + SPACE"
345
345
+
(run "hl.dsp.exec_cmd(menu)")
346
346
+
];
347
347
+
}
348
348
+
{
349
349
+
_args = [
350
350
+
"SUPER + P"
351
351
+
(run "hl.dsp.window.pseudo()")
352
352
+
];
353
353
+
}
354
354
+
{
355
355
+
_args = [
356
356
+
"SUPER + T"
357
357
+
(run "hl.dsp.layout(\"togglesplit\")")
358
358
+
];
359
359
+
}
360
360
+
{
361
361
+
_args = [
362
362
+
"SUPER + B"
363
363
+
(run "hl.dsp.exec_cmd(browser)")
364
364
+
];
365
365
+
}
366
366
+
{
367
367
+
_args = [
368
368
+
"SUPER + F"
369
369
+
(run "hl.dsp.window.fullscreen({ mode = \"fullscreen\", action = \"toggle\" })")
370
370
+
];
371
371
+
}
372
372
+
{
373
373
+
_args = [
374
374
+
"SUPER + l"
375
375
+
(run "hl.dsp.focus({ direction = \"right\" })")
376
376
+
];
377
377
+
}
378
378
+
{
379
379
+
_args = [
380
380
+
"SUPER + h"
381
381
+
(run "hl.dsp.focus({ direction = \"left\" })")
382
382
+
];
383
383
+
}
384
384
+
{
385
385
+
_args = [
386
386
+
"SUPER + k"
387
387
+
(run "hl.dsp.focus({ direction = \"up\" })")
388
388
+
];
389
389
+
}
390
390
+
{
391
391
+
_args = [
392
392
+
"SUPER + j"
393
393
+
(run "hl.dsp.focus({ direction = \"down\" })")
394
394
+
];
395
395
+
}
396
396
+
{
397
397
+
_args = [
398
398
+
"SUPER + SHIFT + l"
399
399
+
(run "hl.dsp.window.move({ direction = \"r\" })")
400
400
+
];
401
401
+
}
402
402
+
{
403
403
+
_args = [
404
404
+
"SUPER + SHIFT + h"
405
405
+
(run "hl.dsp.window.move({ direction = \"l\" })")
406
406
+
];
407
407
+
}
408
408
+
{
409
409
+
_args = [
410
410
+
"SUPER + SHIFT + k"
411
411
+
(run "hl.dsp.window.move({ direction = \"u\" })")
412
412
+
];
413
413
+
}
414
414
+
{
415
415
+
_args = [
416
416
+
"SUPER + SHIFT + j"
417
417
+
(run "hl.dsp.window.move({ direction = \"d\" })")
418
418
+
];
419
419
+
}
420
420
+
{
421
421
+
_args = [
422
422
+
"SUPER + 1"
423
423
+
(run "hl.dsp.focus({ workspace = 1 })")
424
424
+
];
425
425
+
}
426
426
+
{
427
427
+
_args = [
428
428
+
"SUPER + 2"
429
429
+
(run "hl.dsp.focus({ workspace = 2 })")
430
430
+
];
431
431
+
}
432
432
+
{
433
433
+
_args = [
434
434
+
"SUPER + 3"
435
435
+
(run "hl.dsp.focus({ workspace = 3 })")
436
436
+
];
437
437
+
}
438
438
+
{
439
439
+
_args = [
440
440
+
"SUPER + 4"
441
441
+
(run "hl.dsp.focus({ workspace = 4 })")
442
442
+
];
443
443
+
}
444
444
+
{
445
445
+
_args = [
446
446
+
"SUPER + 5"
447
447
+
(run "hl.dsp.focus({ workspace = 5 })")
448
448
+
];
449
449
+
}
450
450
+
{
451
451
+
_args = [
452
452
+
"SUPER + 6"
453
453
+
(run "hl.dsp.focus({ workspace = 6 })")
454
454
+
];
455
455
+
}
456
456
+
{
457
457
+
_args = [
458
458
+
"SUPER + 7"
459
459
+
(run "hl.dsp.focus({ workspace = 7 })")
460
460
+
];
461
461
+
}
462
462
+
{
463
463
+
_args = [
464
464
+
"SUPER + 8"
465
465
+
(run "hl.dsp.focus({ workspace = 8 })")
466
466
+
];
467
467
+
}
468
468
+
{
469
469
+
_args = [
470
470
+
"SUPER + 9"
471
471
+
(run "hl.dsp.focus({ workspace = 9 })")
472
472
+
];
473
473
+
}
474
474
+
{
475
475
+
_args = [
476
476
+
"SUPER + 0"
477
477
+
(run "hl.dsp.focus({ workspace = 10 })")
478
478
+
];
479
479
+
}
480
480
+
{
481
481
+
_args = [
482
482
+
"SUPER + SHIFT + 1"
483
483
+
(run "hl.dsp.window.move({ workspace = 1 })")
484
484
+
];
485
485
+
}
486
486
+
{
487
487
+
_args = [
488
488
+
"SUPER + SHIFT + 2"
489
489
+
(run "hl.dsp.window.move({ workspace = 2 })")
490
490
+
];
491
491
+
}
492
492
+
{
493
493
+
_args = [
494
494
+
"SUPER + SHIFT + 3"
495
495
+
(run "hl.dsp.window.move({ workspace = 3 })")
496
496
+
];
497
497
+
}
498
498
+
{
499
499
+
_args = [
500
500
+
"SUPER + SHIFT + 4"
501
501
+
(run "hl.dsp.window.move({ workspace = 4 })")
502
502
+
];
503
503
+
}
504
504
+
{
505
505
+
_args = [
506
506
+
"SUPER + SHIFT + 5"
507
507
+
(run "hl.dsp.window.move({ workspace = 5 })")
508
508
+
];
509
509
+
}
510
510
+
{
511
511
+
_args = [
512
512
+
"SUPER + SHIFT + 6"
513
513
+
(run "hl.dsp.window.move({ workspace = 6 })")
514
514
+
];
515
515
+
}
516
516
+
{
517
517
+
_args = [
518
518
+
"SUPER + SHIFT + 7"
519
519
+
(run "hl.dsp.window.move({ workspace = 7 })")
520
520
+
];
521
521
+
}
522
522
+
{
523
523
+
_args = [
524
524
+
"SUPER + SHIFT + 8"
525
525
+
(run "hl.dsp.window.move({ workspace = 8 })")
526
526
+
];
527
527
+
}
528
528
+
{
529
529
+
_args = [
530
530
+
"SUPER + SHIFT + 9"
531
531
+
(run "hl.dsp.window.move({ workspace = 9 })")
532
532
+
];
533
533
+
}
534
534
+
{
535
535
+
_args = [
536
536
+
"SUPER + SHIFT + 0"
537
537
+
(run "hl.dsp.window.move({ workspace = 10 })")
538
538
+
];
539
539
+
}
540
540
+
{
541
541
+
_args = [
542
542
+
"SUPER + S"
543
543
+
(run "hl.dsp.workspace.toggle_special(\"magic\")")
544
544
+
];
545
545
+
}
546
546
+
{
547
547
+
_args = [
548
548
+
"SUPER + SHIFT + S"
549
549
+
(run "hl.dsp.window.move({ workspace = \"special:magic\" })")
550
550
+
];
551
551
+
}
552
552
+
{
553
553
+
_args = [
554
554
+
"SUPER + R"
555
555
+
(run "hl.dsp.submap(\"resize\")")
556
556
+
];
557
557
+
}
558
558
+
{
559
559
+
_args = [
560
560
+
"Print"
561
561
+
(run "hl.dsp.exec_cmd('grim - | satty -f - --copy-command wl-copy -o \"~/Pictures/Screenshots/%Y%m%d_%H%M%S.png\"')")
562
562
+
];
563
563
+
}
564
564
+
{
565
565
+
_args = [
566
566
+
"XF86AudioRaiseVolume"
567
567
+
(run "hl.dsp.exec_cmd(\"wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+\")")
568
568
+
{
569
569
+
locked = true;
570
570
+
repeating = true;
571
571
+
}
572
572
+
];
573
573
+
}
574
574
+
{
575
575
+
_args = [
576
576
+
"XF86AudioLowerVolume"
577
577
+
(run "hl.dsp.exec_cmd(\"wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-\")")
578
578
+
{
579
579
+
locked = true;
580
580
+
repeating = true;
581
581
+
}
582
582
+
];
583
583
+
}
584
584
+
{
585
585
+
_args = [
586
586
+
"XF86AudioMute"
587
587
+
(run "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle\")")
588
588
+
{
589
589
+
locked = true;
590
590
+
repeating = true;
591
591
+
}
592
592
+
];
593
593
+
}
594
594
+
{
595
595
+
_args = [
596
596
+
"XF86AudioMicMute"
597
597
+
(run "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle\")")
598
598
+
{
599
599
+
locked = true;
600
600
+
repeating = true;
601
601
+
}
602
602
+
];
603
603
+
}
604
604
+
{
605
605
+
_args = [
606
606
+
"XF86MonBrightnessUp"
607
607
+
(run "hl.dsp.exec_cmd(\"brightnessctl -e4 -n2 set 5%+\")")
608
608
+
{
609
609
+
locked = true;
610
610
+
repeating = true;
611
611
+
}
612
612
+
];
613
613
+
}
614
614
+
{
615
615
+
_args = [
616
616
+
"XF86MonBrightnessDown"
617
617
+
(run "hl.dsp.exec_cmd(\"brightnessctl -e4 -n2 set 5%-\")")
618
618
+
{
619
619
+
locked = true;
620
620
+
repeating = true;
621
621
+
}
622
622
+
];
623
623
+
}
624
624
+
{
625
625
+
_args = [
626
626
+
"XF86AudioNext"
627
627
+
(run "hl.dsp.exec_cmd(\"playerctl next\")")
628
628
+
{ locked = true; }
629
629
+
];
630
630
+
}
631
631
+
{
632
632
+
_args = [
633
633
+
"XF86AudioPause"
634
634
+
(run "hl.dsp.exec_cmd(\"playerctl play-pause\")")
635
635
+
{ locked = true; }
636
636
+
];
637
637
+
}
638
638
+
{
639
639
+
_args = [
640
640
+
"XF86AudioPlay"
641
641
+
(run "hl.dsp.exec_cmd(\"playerctl play-pause\")")
642
642
+
{ locked = true; }
643
643
+
];
644
644
+
}
645
645
+
{
646
646
+
_args = [
647
647
+
"XF86AudioPrev"
648
648
+
(run "hl.dsp.exec_cmd(\"playerctl previous\")")
649
649
+
{ locked = true; }
650
650
+
];
651
651
+
}
652
652
+
];
653
653
+
654
654
+
define_submap = {
655
655
+
_args = [
656
656
+
"resize"
657
657
+
(run "function()\n hl.bind(\"l\", hl.dsp.window.resize({ x = 10, y = 0, relative = true }), { repeating = true })\n hl.bind(\"h\", hl.dsp.window.resize({ x = -10, y = 0, relative = true }), { repeating = true })\n hl.bind(\"k\", hl.dsp.window.resize({ x = 0, y = -10, relative = true }), { repeating = true })\n hl.bind(\"j\", hl.dsp.window.resize({ x = 0, y = 10, relative = true }), { repeating = true })\n hl.bind(\"escape\", hl.dsp.submap(\"reset\"))\nend")
658
658
+
];
659
659
+
};
660
660
+
window_rule = [
661
661
+
{
662
662
+
match.class = "class:.*";
663
663
+
suppress_event = "maximize";
664
664
+
}
665
665
+
{
666
666
+
no_focus = true;
667
667
+
}
668
668
+
];
669
669
+
670
670
+
on = {
671
671
+
_args = [
672
672
+
"hyprland.start"
673
673
+
(lib.generators.mkLuaInline "function()\n hl.exec_cmd(\"waybar\")\nend")
674
674
+
];
675
675
+
};
676
676
+
};
677
677
+
678
678
+
systemd.enable = true;
679
679
+
};
680
680
+
}
···
1
1
+
{ pkgs, ... }: {
2
2
+
programs.jujutsu = {
3
3
+
enable = true;
4
4
+
settings = {
5
5
+
user = {
6
6
+
email = "dario@oddenino.it";
7
7
+
name = "Dario Oddenino";
8
8
+
};
9
9
+
ui = {
10
10
+
default-command = [
11
11
+
"log"
12
12
+
"--reversed"
13
13
+
];
14
14
+
editor = "hx";
15
15
+
diff-editor = ":builtin";
16
16
+
pager = "delta";
17
17
+
diff-formatter = ":git";
18
18
+
};
19
19
+
revset-aliases = {
20
20
+
"closest_bookmark(to)" = "heads(::to &bookmarks())";
21
21
+
"closest_pushable(to)" = "heads(::to & ~description(exact:\"\") & (~empty() | merges()))";
22
22
+
};
23
23
+
aliases = {
24
24
+
l = [
25
25
+
"log"
26
26
+
"--reversed"
27
27
+
"--no-pager"
28
28
+
"-r"
29
29
+
"(dev..@):: | (dev..@)-"
30
30
+
];
31
31
+
lm = [
32
32
+
"log"
33
33
+
"--reversed"
34
34
+
"--no-pager"
35
35
+
"-r"
36
36
+
"(master..@):: | (master..@)-"
37
37
+
];
38
38
+
ls = [
39
39
+
"log"
40
40
+
"--reversed"
41
41
+
"--no-pager"
42
42
+
"-r"
43
43
+
"(dev..@):: | (dev..@)-"
44
44
+
"-s"
45
45
+
];
46
46
+
lms = [
47
47
+
"log"
48
48
+
"--reversed"
49
49
+
"--no-pager"
50
50
+
"-r"
51
51
+
"(master..@):: | (master..@)-"
52
52
+
"-s"
53
53
+
];
54
54
+
r = [ "rebase" ];
55
55
+
push = [
56
56
+
"util"
57
57
+
"exec"
58
58
+
"--"
59
59
+
"jj-pre-push"
60
60
+
"push"
61
61
+
];
62
62
+
tug = [
63
63
+
"bookmark"
64
64
+
"move"
65
65
+
"--from"
66
66
+
"closest_bookmark(@-)"
67
67
+
"--to"
68
68
+
"closest_pushable(@)"
69
69
+
];
70
70
+
# check diff with remote version of branch;
71
71
+
diffr = [
72
72
+
"diff"
73
73
+
"-f"
74
74
+
"heads(::@ & remote_bookmarks())"
75
75
+
"-t"
76
76
+
"heads(::@ & bookmarks())"
77
77
+
];
78
78
+
# Adds a new change right before @;
79
79
+
nb = [
80
80
+
"new"
81
81
+
"-B"
82
82
+
"@"
83
83
+
"--no-edit"
84
84
+
];
85
85
+
# Create description of change right before @;
86
86
+
db = [
87
87
+
"describe"
88
88
+
"-r"
89
89
+
"@-"
90
90
+
];
91
91
+
};
92
92
+
};
93
93
+
};
94
94
+
}
···
1
1
+
{ pkgs, ...}: {
2
2
+
programs.starship = {
3
3
+
enable = true;
4
4
+
enableFishIntegration = true;
5
5
+
};
6
6
+
}
···
1
1
+
{ pkgs, ... }: {
2
2
+
programs.waybar = {
3
3
+
enable = true;
4
4
+
settings = {
5
5
+
mainBar = {
6
6
+
layer = "top";
7
7
+
position = "top";
8
8
+
height = 30;
9
9
+
spacing = 4;
10
10
+
modules-left = [
11
11
+
"hyprland/workspaces"
12
12
+
"hyprland/submap"
13
13
+
"custom/media"
14
14
+
];
15
15
+
modules-center = [ "clock" ];
16
16
+
modules-right = [
17
17
+
"network"
18
18
+
"battery"
19
19
+
"cpu"
20
20
+
"memory"
21
21
+
"tray"
22
22
+
];
23
23
+
24
24
+
"hyprland/workspaces" = {
25
25
+
disable-scroll = true;
26
26
+
};
27
27
+
28
28
+
clock = {
29
29
+
format-alt = "{:%Y-%m-%d}";
30
30
+
};
31
31
+
32
32
+
network = {
33
33
+
format-wifi = "{essid} ({signalStrength}%) ";
34
34
+
format-ethernet = "{ipaddr}/{cidr} ";
35
35
+
tooltip-format = "{ifname} via {gwaddr} ";
36
36
+
format-linked = "{ifname} (No IP) ";
37
37
+
format-disconnected = "Disconnected ⚠";
38
38
+
format-alt = "{ifname} = {ipaddr}/{cidr}";
39
39
+
};
40
40
+
cpu = {
41
41
+
format = " {usage}%";
42
42
+
};
43
43
+
44
44
+
memory = {
45
45
+
format = " {used}MB";
46
46
+
};
47
47
+
48
48
+
tray = {
49
49
+
spacing = 10;
50
50
+
show-passive-items = true;
51
51
+
};
52
52
+
battery = {
53
53
+
states = {
54
54
+
warning = 30;
55
55
+
critical = 15;
56
56
+
};
57
57
+
format = "{capacity}% {icon}";
58
58
+
format-full = "{capacity}% {icon}";
59
59
+
format-charging = "{capacity}% ";
60
60
+
format-plugged = "{capacity}% ";
61
61
+
format-alt = "{time} {icon}";
62
62
+
format-icons = [
63
63
+
""
64
64
+
""
65
65
+
""
66
66
+
""
67
67
+
""
68
68
+
];
69
69
+
};
70
70
+
};
71
71
+
};
72
72
+
};
73
73
+
}
···
1
1
+
{...}: {
2
2
+
programs.zellij = {
3
3
+
enable = false;
4
4
+
enableFishIntegration = true;
5
5
+
settings = {
6
6
+
default_shell = "fish";
7
7
+
};
8
8
+
};
9
9
+
}
···
1
1
+
{
2
2
+
# my-module = import ./my-module.nix
3
3
+
}
···
1
1
+
# Edit this configuration file to define what should be installed on
2
2
+
# your system. Help is available in the configuration.nix(5) man page
3
3
+
# and in the NixOS manual (accessible by running ‘nixos-help’).
4
4
+
5
5
+
{
6
6
+
inputs,
7
7
+
config,
8
8
+
pkgs,
9
9
+
ki-editor,
10
10
+
...
11
11
+
}:
12
12
+
{
13
13
+
# imports = [
14
14
+
# # Include the results of the hardware scan.
15
15
+
# ./hardware-configuration.nix
16
16
+
# ];
17
17
+
18
18
+
nixpkgs = {
19
19
+
overlays = [
20
20
+
inputs.self.overlays.additions
21
21
+
inputs.self.overlays.modifications
22
22
+
];
23
23
+
24
24
+
config = {
25
25
+
allowUnfree = true;
26
26
+
};
27
27
+
};
28
28
+
29
29
+
nix.settings = {
30
30
+
experimental-features = [
31
31
+
"nix-command"
32
32
+
"flakes"
33
33
+
];
34
34
+
# Cachix for hyprland
35
35
+
substituters = [ "https://hyprland.cachix.org" ];
36
36
+
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
37
37
+
};
38
38
+
39
39
+
nix.gc = {
40
40
+
automatic = true;
41
41
+
options = "--delete-older-than 14d";
42
42
+
};
43
43
+
44
44
+
fonts.packages = with pkgs; [
45
45
+
nerd-fonts.fira-code
46
46
+
nerd-fonts.jetbrains-mono
47
47
+
monaspace
48
48
+
];
49
49
+
50
50
+
# Enable OpenGL
51
51
+
hardware.graphics = {
52
52
+
enable = true;
53
53
+
};
54
54
+
55
55
+
# Load nvidia driver for Xorg and Wayland
56
56
+
services.xserver.videoDrivers = ["nvidia"];
57
57
+
58
58
+
# todo I will need to adapt this for the laptop as well
59
59
+
hardware.nvidia = {
60
60
+
# Required
61
61
+
modesetting.enable = true;
62
62
+
63
63
+
powerManagement.enable = false;
64
64
+
65
65
+
powerManagement.finegrained = false;
66
66
+
67
67
+
open = true;
68
68
+
69
69
+
nvidiaSettings = true;
70
70
+
71
71
+
package = config.boot.kernelPackages.nvidiaPackages.stable;
72
72
+
};
73
73
+
74
74
+
# Define a user account. Don't forget to set a password with ‘passwd’.
75
75
+
users.users.dario = {
76
76
+
isNormalUser = true;
77
77
+
description = "Dario Oddenino";
78
78
+
extraGroups = [
79
79
+
"networkmanager"
80
80
+
"wheel"
81
81
+
];
82
82
+
packages = with pkgs; [ ];
83
83
+
};
84
84
+
85
85
+
# Bootloader.
86
86
+
boot.loader.systemd-boot.enable = true;
87
87
+
boot.loader.efi.canTouchEfiVariables = true;
88
88
+
89
89
+
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
90
90
+
91
91
+
# Configure network proxy if necessary
92
92
+
# networking.proxy.default = "http://user:password@proxy:port/";
93
93
+
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
94
94
+
95
95
+
# Enable networking
96
96
+
networking.networkmanager.enable = true;
97
97
+
98
98
+
# Set your time zone.
99
99
+
time.timeZone = "Europe/Rome";
100
100
+
101
101
+
# Select internationalisation properties.
102
102
+
i18n.defaultLocale = "en_US.UTF-8";
103
103
+
104
104
+
i18n.extraLocaleSettings = {
105
105
+
LC_ADDRESS = "it_IT.UTF-8";
106
106
+
LC_IDENTIFICATION = "it_IT.UTF-8";
107
107
+
LC_MEASUREMENT = "it_IT.UTF-8";
108
108
+
LC_MONETARY = "it_IT.UTF-8";
109
109
+
LC_NAME = "it_IT.UTF-8";
110
110
+
LC_NUMERIC = "it_IT.UTF-8";
111
111
+
LC_PAPER = "it_IT.UTF-8";
112
112
+
LC_TELEPHONE = "it_IT.UTF-8";
113
113
+
LC_TIME = "it_IT.UTF-8";
114
114
+
};
115
115
+
116
116
+
security.rtkit.enable = true;
117
117
+
services.udisks2.enable = true;
118
118
+
119
119
+
services.displayManager.ly = {
120
120
+
enable = true;
121
121
+
};
122
122
+
123
123
+
# Configure keymap in X11
124
124
+
# TODO: maybe I don't need this
125
125
+
# services.xserver.xkb = {
126
126
+
# layout = "us";
127
127
+
# variant = "";
128
128
+
# };
129
129
+
130
130
+
# Enable CUPS to print documents.
131
131
+
services.printing.enable = true;
132
132
+
133
133
+
# Enable sound with pipewire.
134
134
+
services.pulseaudio.enable = false;
135
135
+
services.pipewire = {
136
136
+
enable = true;
137
137
+
alsa.enable = true;
138
138
+
alsa.support32Bit = true;
139
139
+
pulse.enable = true;
140
140
+
# If you want to use JACK applications, uncomment this
141
141
+
#jack.enable = true;
142
142
+
143
143
+
# use the example session manager (no others are packaged yet so this is enabled by default,
144
144
+
# no need to redefine it in your config for now)
145
145
+
#media-session.enable = true;
146
146
+
};
147
147
+
148
148
+
environment.sessionVariables = {
149
149
+
NIXOS_OZONE_WL = "1";
150
150
+
};
151
151
+
152
152
+
programs.ssh.startAgent = true;
153
153
+
154
154
+
# TODO I think the part below should go into modules/nixos?
155
155
+
programs.fish.enable = true;
156
156
+
157
157
+
programs.hyprland = {
158
158
+
enable = true;
159
159
+
withUWSM = true;
160
160
+
xwayland.enable = true;
161
161
+
};
162
162
+
163
163
+
programs._1password.enable = true;
164
164
+
programs._1password-gui = {
165
165
+
enable = true;
166
166
+
polkitPolicyOwners = [ "dario" ];
167
167
+
};
168
168
+
169
169
+
programs.appimage.enable = true;
170
170
+
programs.appimage.binfmt = true;
171
171
+
172
172
+
# List packages installed in system profile. To search, run:
173
173
+
# $ nix search wget
174
174
+
environment.systemPackages = with pkgs; [
175
175
+
affine
176
176
+
alacritty
177
177
+
atuin
178
178
+
bat
179
179
+
broot
180
180
+
capacities
181
181
+
deezer-enhanced
182
182
+
discord
183
183
+
kdePackages.dolphin
184
184
+
fzf
185
185
+
gcc
186
186
+
git
187
187
+
grc
188
188
+
grim
189
189
+
htop
190
190
+
hyprlauncher
191
191
+
hyprlock
192
192
+
hyprpicker
193
193
+
hyprshutdown
194
194
+
jiratui
195
195
+
jujutsu
196
196
+
ki-editor.packages.x86_64-linux.default
197
197
+
kitty
198
198
+
lazygit
199
199
+
pavucontrol
200
200
+
pciutils
201
201
+
playerctl
202
202
+
ripgrep
203
203
+
rofi
204
204
+
rustdesk
205
205
+
satty
206
206
+
slack
207
207
+
starship
208
208
+
todoist
209
209
+
todoist-electron
210
210
+
usbutils
211
211
+
vim
212
212
+
inputs.waterfox.packages.${pkgs.stdenv.hostPlatform.system}.waterfox-bin
213
213
+
waybar
214
214
+
wl-clipboard
215
215
+
wget
216
216
+
wofi
217
217
+
zellij
218
218
+
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default
219
219
+
];
220
220
+
221
221
+
environment.etc = {
222
222
+
"1password/custom_allowed_browsers" = {
223
223
+
text = ''
224
224
+
zen
225
225
+
'';
226
226
+
mode = "0755";
227
227
+
};
228
228
+
};
229
229
+
230
230
+
# This value determines the NixOS release from which the default
231
231
+
# settings for stateful data, like file locations and database versions
232
232
+
# on your system were taken. It‘s perfectly fine and recommended to leave
233
233
+
# this value at the release version of the first install of this system.
234
234
+
# Before changing this value read the documentation for this option
235
235
+
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
236
236
+
system.stateVersion = "25.05"; # Did you read the comment?
237
237
+
}
···
1
1
+
# Do not modify this file! It was generated by ‘nixos-generate-config’
2
2
+
# and may be overwritten by future invocations. Please make changes
3
3
+
# to /etc/nixos/configuration.nix instead.
4
4
+
{ config, lib, pkgs, modulesPath, ... }:
5
5
+
6
6
+
{
7
7
+
imports =
8
8
+
[ (modulesPath + "/installer/scan/not-detected.nix")
9
9
+
];
10
10
+
11
11
+
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
12
12
+
boot.initrd.kernelModules = [ ];
13
13
+
boot.kernelModules = [ "kvm-intel" ];
14
14
+
boot.extraModulePackages = [ ];
15
15
+
16
16
+
fileSystems."/" =
17
17
+
{ device = "/dev/disk/by-uuid/65689587-ef15-4fca-a2b1-44bd9a52bfc4";
18
18
+
fsType = "ext4";
19
19
+
};
20
20
+
21
21
+
fileSystems."/boot" =
22
22
+
{ device = "/dev/disk/by-uuid/6CFF-BE06";
23
23
+
fsType = "vfat";
24
24
+
options = [ "fmask=0077" "dmask=0077" ];
25
25
+
};
26
26
+
27
27
+
swapDevices = [ ];
28
28
+
29
29
+
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
30
30
+
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
31
31
+
}
···
1
1
+
{ inputs, config, pkgs, ... }:
2
2
+
{
3
3
+
networking.hostName = "home";
4
4
+
5
5
+
}
···
1
1
+
{ inputs, config, pkgs, ... }:
2
2
+
{
3
3
+
networking.hostName = "t470p";
4
4
+
}
···
1
1
+
# This file defines overlays
2
2
+
# These are arbitrary named and just some conventions I use, you can name then whenever and/or make as many as you want
3
3
+
{inputs, ...}: {
4
4
+
# This one brings our custom packages from the 'pkgs' directory
5
5
+
additions = final: _prev: import ../pkgs final.pkgs;
6
6
+
7
7
+
# This one contains whatever you want to overlay
8
8
+
# You can change versions, add patches, set compilation flags, anything really.
9
9
+
# https://nixos.wiki/wiki/Overlays
10
10
+
modifications = final: prev: {
11
11
+
# example = prev.example.overrideAttrs (oldAttrs: rec {
12
12
+
# ...
13
13
+
# });
14
14
+
};
15
15
+
}