tangled
alpha
login
or
join now
vt3e.cat
/
petals
1
fork
atom
my nix flake.
1
fork
atom
overview
issues
pulls
pipelines
update
vt3e.cat
2 months ago
dc0f9bc9
e23e071c
verified
This commit was signed with the committer's
known signature
.
vt3e.cat
SSH Key Fingerprint:
SHA256:MaVgF6bXxDdD131G4rXizPh+sttp3IVsdPrj48HV0X0=
+603
-260
21 changed files
expand all
collapse all
unified
split
flake.lock
flake.nix
hosts
dahlia
default.nix
services.nix
default.nix
logs
user
apps
zed.nix
desktop
config
colors.scss
user_settings.json
dank.nix
default.nix
ignis.nix
niri
default.nix
pano-scrobber.nix
swaync.nix
theme-service.nix
wallpaper.nix
home.nix
packages
default.nix
zed-editor.nix
programs
git.nix
+211
-57
flake.lock
···
30
30
]
31
31
},
32
32
"locked": {
33
33
-
"lastModified": 1762452589,
34
34
-
"narHash": "sha256-SZsqazkBxSLsiwup6bj4BcSFNkcP5ficCIa1/H1RKk8=",
33
33
+
"lastModified": 1765990358,
34
34
+
"narHash": "sha256-l8x0gU8mnYaGMl+gWrsSHKBJlZWD8KXJfHTkRlFiPI0=",
35
35
"owner": "catppuccin",
36
36
"repo": "nix",
37
37
-
"rev": "f8268123e66838a903136b85e647069005fb0138",
37
37
+
"rev": "de1b60ca45a578f59f7d84c8d338b346017b2161",
38
38
"type": "github"
39
39
},
40
40
"original": {
···
65
65
"type": "github"
66
66
}
67
67
},
68
68
-
"flake-parts": {
68
68
+
"dgop": {
69
69
"inputs": {
70
70
-
"nixpkgs-lib": "nixpkgs-lib"
70
70
+
"nixpkgs": [
71
71
+
"nixpkgs"
72
72
+
]
71
73
},
72
74
"locked": {
73
73
-
"lastModified": 1762440070,
74
74
-
"narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=",
75
75
-
"owner": "hercules-ci",
76
76
-
"repo": "flake-parts",
77
77
-
"rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8",
75
75
+
"lastModified": 1765838956,
76
76
+
"narHash": "sha256-A3a2ZfvjirX8VIdIPI+nAyukWs6vx4vet3fU0mpr7lU=",
77
77
+
"owner": "AvengeMedia",
78
78
+
"repo": "dgop",
79
79
+
"rev": "0ff697a4e3418966caa714c838fc73f1ef6ba59b",
78
80
"type": "github"
79
81
},
80
82
"original": {
81
81
-
"owner": "hercules-ci",
82
82
-
"repo": "flake-parts",
83
83
+
"owner": "AvengeMedia",
84
84
+
"repo": "dgop",
83
85
"type": "github"
84
86
}
85
87
},
86
86
-
"flake-utils": {
88
88
+
"dgop_2": {
87
89
"inputs": {
88
88
-
"systems": "systems_3"
90
90
+
"nixpkgs": [
91
91
+
"dms",
92
92
+
"nixpkgs"
93
93
+
]
89
94
},
90
95
"locked": {
91
91
-
"lastModified": 1731533236,
92
92
-
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
93
93
-
"owner": "numtide",
94
94
-
"repo": "flake-utils",
95
95
-
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
96
96
+
"lastModified": 1762835999,
97
97
+
"narHash": "sha256-UykYGrGFOFTmDpKTLNxj1wvd1gbDG4TkqLNSbV0TYwk=",
98
98
+
"owner": "AvengeMedia",
99
99
+
"repo": "dgop",
100
100
+
"rev": "799301991cd5dcea9b64245f9d500dcc76615653",
96
101
"type": "github"
97
102
},
98
103
"original": {
99
99
-
"owner": "numtide",
100
100
-
"repo": "flake-utils",
104
104
+
"owner": "AvengeMedia",
105
105
+
"repo": "dgop",
101
106
"type": "github"
102
107
}
103
108
},
104
104
-
"flake-utils_2": {
109
109
+
"dms": {
110
110
+
"inputs": {
111
111
+
"dgop": "dgop_2",
112
112
+
"nixpkgs": [
113
113
+
"nixpkgs"
114
114
+
],
115
115
+
"quickshell": "quickshell"
116
116
+
},
117
117
+
"locked": {
118
118
+
"lastModified": 1765552734,
119
119
+
"narHash": "sha256-rWjWYu5rs3ZOJ4YJpvIscBZSYu74thJHc0VYyYKJTUc=",
120
120
+
"owner": "AvengeMedia",
121
121
+
"repo": "DankMaterialShell",
122
122
+
"rev": "7fb358bada0d3a229ec5ee6aaad0f9b64f367331",
123
123
+
"type": "github"
124
124
+
},
125
125
+
"original": {
126
126
+
"owner": "AvengeMedia",
127
127
+
"ref": "stable",
128
128
+
"repo": "DankMaterialShell",
129
129
+
"type": "github"
130
130
+
}
131
131
+
},
132
132
+
"exo": {
133
133
+
"flake": false,
134
134
+
"locked": {
135
135
+
"lastModified": 1766537293,
136
136
+
"narHash": "sha256-ZkPhwoh3EUNCUFJVQPDmYFEmui6aiGN3NhI9M32qo+Q=",
137
137
+
"owner": "debuggyo",
138
138
+
"repo": "Exo",
139
139
+
"rev": "a8af36423bfafed6201953425efd48f4e2947f82",
140
140
+
"type": "github"
141
141
+
},
142
142
+
"original": {
143
143
+
"owner": "debuggyo",
144
144
+
"repo": "Exo",
145
145
+
"type": "github"
146
146
+
}
147
147
+
},
148
148
+
"flake-parts": {
149
149
+
"inputs": {
150
150
+
"nixpkgs-lib": "nixpkgs-lib"
151
151
+
},
152
152
+
"locked": {
153
153
+
"lastModified": 1765835352,
154
154
+
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
155
155
+
"owner": "hercules-ci",
156
156
+
"repo": "flake-parts",
157
157
+
"rev": "a34fae9c08a15ad73f295041fec82323541400a9",
158
158
+
"type": "github"
159
159
+
},
160
160
+
"original": {
161
161
+
"owner": "hercules-ci",
162
162
+
"repo": "flake-parts",
163
163
+
"type": "github"
164
164
+
}
165
165
+
},
166
166
+
"flake-utils": {
105
167
"inputs": {
106
168
"systems": "systems_4"
107
169
},
···
147
209
]
148
210
},
149
211
"locked": {
150
150
-
"lastModified": 1762458864,
151
151
-
"narHash": "sha256-O8NI0pOf1GxPaBRhyspWZmtXLo0tzEEvOfMxNh3/8Jo=",
212
212
+
"lastModified": 1767048910,
213
213
+
"narHash": "sha256-KLFTeA/xquN+F3XHLAXcserk0L0nijbhzuldxNDF1eE=",
152
214
"owner": "nix-community",
153
215
"repo": "home-manager",
154
154
-
"rev": "f35d0cb75f0669ac8de18d774b336d3d3560bcde",
216
216
+
"rev": "d99b4ca5debaa082c7d76015aa2b7f3fc7e8b5f7",
155
217
"type": "github"
156
218
},
157
219
"original": {
···
160
222
"type": "github"
161
223
}
162
224
},
225
225
+
"ignis": {
226
226
+
"inputs": {
227
227
+
"ignis-gvc": "ignis-gvc",
228
228
+
"nixpkgs": [
229
229
+
"nixpkgs"
230
230
+
]
231
231
+
},
232
232
+
"locked": {
233
233
+
"lastModified": 1762970543,
234
234
+
"narHash": "sha256-7ipFVC9pvI564c22b1dIEzSQ8dZXK3cxh/tF/4tX38c=",
235
235
+
"owner": "ignis-sh",
236
236
+
"repo": "ignis",
237
237
+
"rev": "ba8b0e11c2462afc9fdc30ce6a72b4e94e8ee7c4",
238
238
+
"type": "github"
239
239
+
},
240
240
+
"original": {
241
241
+
"owner": "ignis-sh",
242
242
+
"repo": "ignis",
243
243
+
"type": "github"
244
244
+
}
245
245
+
},
246
246
+
"ignis-gvc": {
247
247
+
"inputs": {
248
248
+
"nixpkgs": [
249
249
+
"ignis",
250
250
+
"nixpkgs"
251
251
+
]
252
252
+
},
253
253
+
"locked": {
254
254
+
"lastModified": 1754064086,
255
255
+
"narHash": "sha256-ft5KvY2OYrWF+jEsfBL/Zx8Iuo2C10C6COk8wHwZw34=",
256
256
+
"owner": "ignis-sh",
257
257
+
"repo": "ignis-gvc",
258
258
+
"rev": "f2c9f10d8b49cc38106a2f07a51ea959c6aa4e63",
259
259
+
"type": "github"
260
260
+
},
261
261
+
"original": {
262
262
+
"owner": "ignis-sh",
263
263
+
"repo": "ignis-gvc",
264
264
+
"type": "github"
265
265
+
}
266
266
+
},
163
267
"niri": {
164
268
"inputs": {
165
269
"niri-stable": "niri-stable",
···
172
276
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
173
277
},
174
278
"locked": {
175
175
-
"lastModified": 1762400608,
176
176
-
"narHash": "sha256-cuT7sRqgERQvvsPgonz+0tu308Yy42nyNxgR2AxllEk=",
279
279
+
"lastModified": 1767006817,
280
280
+
"narHash": "sha256-dQwprSLwnGSX9UG6PzTLydPhpAqhtkoWRj0MZiA1h9k=",
177
281
"owner": "sodiboo",
178
282
"repo": "niri-flake",
179
179
-
"rev": "e8402dc4d8104f8f81fd16d3d743d43d106f2f47",
283
283
+
"rev": "e24815f0bc94b0e7134d8ac31a061f11d1a20524",
180
284
"type": "github"
181
285
},
182
286
"original": {
···
205
309
"niri-unstable": {
206
310
"flake": false,
207
311
"locked": {
208
208
-
"lastModified": 1762146685,
209
209
-
"narHash": "sha256-anRlNG6t7esBbF1+ALDeathVBSclA0PEL52Vo0WnN5g=",
312
312
+
"lastModified": 1766751930,
313
313
+
"narHash": "sha256-83/YSW6c58i/iwGzAFApuMy6MCgoIaROeCcoIGh+ViU=",
210
314
"owner": "YaLTeR",
211
315
"repo": "niri",
212
212
-
"rev": "a2ca2b3c866bc781b12c334a9f949b3db6d7c943",
316
316
+
"rev": "b5640d5293ad8dca06cb447692ea7cbb21680eb1",
213
317
"type": "github"
214
318
},
215
319
"original": {
···
220
324
},
221
325
"nixos-hardware": {
222
326
"locked": {
223
223
-
"lastModified": 1762427122,
224
224
-
"narHash": "sha256-sQJuoiqsaIvKiIOmF/3FDV5dM2TGL2jBv1PeQSt83YE=",
327
327
+
"lastModified": 1766568855,
328
328
+
"narHash": "sha256-UXVtN77D7pzKmzOotFTStgZBqpOcf8cO95FcupWp4Zo=",
225
329
"owner": "NixOS",
226
330
"repo": "nixos-hardware",
227
227
-
"rev": "24084931d8098fce300fabea9e48fa96292228d7",
331
331
+
"rev": "c5db9569ac9cc70929c268ac461f4003e3e5ca80",
228
332
"type": "github"
229
333
},
230
334
"original": {
···
236
340
},
237
341
"nixpkgs": {
238
342
"locked": {
239
239
-
"lastModified": 1762111121,
240
240
-
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
343
343
+
"lastModified": 1766902085,
344
344
+
"narHash": "sha256-coBu0ONtFzlwwVBzmjacUQwj3G+lybcZ1oeNSQkgC0M=",
241
345
"owner": "NixOS",
242
346
"repo": "nixpkgs",
243
243
-
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
347
347
+
"rev": "c0b0e0fddf73fd517c3471e546c0df87a42d53f4",
244
348
"type": "github"
245
349
},
246
350
"original": {
···
252
356
},
253
357
"nixpkgs-lib": {
254
358
"locked": {
255
255
-
"lastModified": 1761765539,
256
256
-
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
359
359
+
"lastModified": 1765674936,
360
360
+
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
257
361
"owner": "nix-community",
258
362
"repo": "nixpkgs.lib",
259
259
-
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
363
363
+
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
260
364
"type": "github"
261
365
},
262
366
"original": {
···
267
371
},
268
372
"nixpkgs-stable": {
269
373
"locked": {
270
270
-
"lastModified": 1762233356,
271
271
-
"narHash": "sha256-cGS3lLTYusbEP/IJIWGgnkzIl+FA5xDvtiHyjalGr4k=",
374
374
+
"lastModified": 1766885793,
375
375
+
"narHash": "sha256-P6RVkrM9JLCW6xBjSwHfgTOQ1JwBUma5xe5LI8xAPC0=",
272
376
"owner": "NixOS",
273
377
"repo": "nixpkgs",
274
274
-
"rev": "ca534a76c4afb2bdc07b681dbc11b453bab21af8",
378
378
+
"rev": "9ef261221d1e72399f2036786498d78c38185c46",
275
379
"type": "github"
276
380
},
277
381
"original": {
278
382
"owner": "NixOS",
279
279
-
"ref": "nixos-25.05",
383
383
+
"ref": "nixos-25.11",
280
384
"repo": "nixpkgs",
281
385
"type": "github"
282
386
}
···
311
415
"type": "indirect"
312
416
}
313
417
},
418
418
+
"quickshell": {
419
419
+
"inputs": {
420
420
+
"nixpkgs": [
421
421
+
"dms",
422
422
+
"nixpkgs"
423
423
+
]
424
424
+
},
425
425
+
"locked": {
426
426
+
"lastModified": 1764663772,
427
427
+
"narHash": "sha256-sHqLmm0wAt3PC4vczJeBozI1/f4rv9yp3IjkClHDXDs=",
428
428
+
"ref": "refs/heads/master",
429
429
+
"rev": "26531fc46ef17e9365b03770edd3fb9206fcb460",
430
430
+
"revCount": 713,
431
431
+
"type": "git",
432
432
+
"url": "https://git.outfoxxed.me/quickshell/quickshell"
433
433
+
},
434
434
+
"original": {
435
435
+
"rev": "26531fc46ef17e9365b03770edd3fb9206fcb460",
436
436
+
"type": "git",
437
437
+
"url": "https://git.outfoxxed.me/quickshell/quickshell"
438
438
+
}
439
439
+
},
314
440
"root": {
315
441
"inputs": {
316
442
"agenix": "agenix",
317
443
"catppuccin": "catppuccin",
444
444
+
"dgop": "dgop",
445
445
+
"dms": "dms",
446
446
+
"exo": "exo",
318
447
"flake-parts": "flake-parts",
319
448
"home-manager": "home-manager_2",
449
449
+
"ignis": "ignis",
320
450
"niri": "niri",
321
451
"nixos-hardware": "nixos-hardware",
322
452
"nixpkgs": "nixpkgs",
323
453
"spicetify-nix": "spicetify-nix",
324
454
"vicinae": "vicinae",
325
325
-
"vscode-server": "vscode-server"
455
455
+
"vscode-server": "vscode-server",
456
456
+
"zen-browser": "zen-browser"
326
457
}
327
458
},
328
459
"spicetify-nix": {
···
333
464
"systems": "systems_2"
334
465
},
335
466
"locked": {
336
336
-
"lastModified": 1762057664,
337
337
-
"narHash": "sha256-mdEEvepIi8ebpGP1WWOHNvNQyd8rF0mUrKAiU6mwHCk=",
467
467
+
"lastModified": 1767031230,
468
468
+
"narHash": "sha256-yJhktUZYp7K1TdeAXweNsOwbTJSuBzKZagq1JnSwnVk=",
338
469
"owner": "Gerg-L",
339
470
"repo": "spicetify-nix",
340
340
-
"rev": "4aa6e43d29e3c8acf544aa6782a1963a11369208",
471
471
+
"rev": "442accd416df2f85ada73937996a95749f9fdeb3",
341
472
"type": "github"
342
473
},
343
474
"original": {
···
408
539
},
409
540
"vicinae": {
410
541
"inputs": {
411
411
-
"flake-utils": "flake-utils",
412
412
-
"nixpkgs": "nixpkgs_2"
542
542
+
"nixpkgs": "nixpkgs_2",
543
543
+
"systems": "systems_3"
413
544
},
414
545
"locked": {
415
415
-
"lastModified": 1762438376,
416
416
-
"narHash": "sha256-sO8186XCEKI5WRyvJrJOhkEEvhtluNjY5P/TagvuJ40=",
546
546
+
"lastModified": 1766947253,
547
547
+
"narHash": "sha256-bzdD637oY/d23QH7CKbyndBmmTBIM19HsnPtj49xCM0=",
417
548
"owner": "vicinaehq",
418
549
"repo": "vicinae",
419
419
-
"rev": "b36b894a991aa752edb766afc78b5aa020fe7071",
550
550
+
"rev": "68faea42c62862614e071cee329486d907b3641a",
420
551
"type": "github"
421
552
},
422
553
"original": {
···
427
558
},
428
559
"vscode-server": {
429
560
"inputs": {
430
430
-
"flake-utils": "flake-utils_2",
561
561
+
"flake-utils": "flake-utils",
431
562
"nixpkgs": "nixpkgs_3"
432
563
},
433
564
"locked": {
···
464
595
"xwayland-satellite-unstable": {
465
596
"flake": false,
466
597
"locked": {
467
467
-
"lastModified": 1762397230,
468
468
-
"narHash": "sha256-PAV8DhLzfo6YwrESrK4ykEj+rUvBYMtbeI0N8SAlsMU=",
598
598
+
"lastModified": 1766429945,
599
599
+
"narHash": "sha256-9Kv4gWagx/u4RfZJzBMAoagW9ava5waxd+XoTkzqF7E=",
469
600
"owner": "Supreeeme",
470
601
"repo": "xwayland-satellite",
471
471
-
"rev": "56256a1340b771c71a5cfdc881525807edc3fcd2",
602
602
+
"rev": "0dde7ca1d3a8e8c5082533d76084e2aa02bef70e",
472
603
"type": "github"
473
604
},
474
605
"original": {
475
606
"owner": "Supreeeme",
476
607
"repo": "xwayland-satellite",
608
608
+
"type": "github"
609
609
+
}
610
610
+
},
611
611
+
"zen-browser": {
612
612
+
"inputs": {
613
613
+
"home-manager": [
614
614
+
"home-manager"
615
615
+
],
616
616
+
"nixpkgs": [
617
617
+
"nixpkgs"
618
618
+
]
619
619
+
},
620
620
+
"locked": {
621
621
+
"lastModified": 1766897152,
622
622
+
"narHash": "sha256-mD1GDg1eIHYUwk536j4uJX1IfQArsLQm2SL7rTQwAPI=",
623
623
+
"owner": "0xc000022070",
624
624
+
"repo": "zen-browser-flake",
625
625
+
"rev": "fe8d1a61a904b336f453d7ab5ae7d691a21c5cbf",
626
626
+
"type": "github"
627
627
+
},
628
628
+
"original": {
629
629
+
"owner": "0xc000022070",
630
630
+
"repo": "zen-browser-flake",
477
631
"type": "github"
478
632
}
479
633
}
+25
flake.nix
···
34
34
inputs.nixpkgs.follows = "nixpkgs";
35
35
};
36
36
37
37
+
exo = {
38
38
+
url = "github:debuggyo/Exo";
39
39
+
flake = false;
40
40
+
};
41
41
+
ignis = {
42
42
+
url = "github:ignis-sh/ignis";
43
43
+
inputs.nixpkgs.follows = "nixpkgs";
44
44
+
};
45
45
+
46
46
+
dgop = {
47
47
+
url = "github:AvengeMedia/dgop";
48
48
+
inputs.nixpkgs.follows = "nixpkgs";
49
49
+
};
50
50
+
dms = {
51
51
+
url = "github:AvengeMedia/DankMaterialShell/stable";
52
52
+
inputs.nixpkgs.follows = "nixpkgs";
53
53
+
};
54
54
+
zen-browser = {
55
55
+
url = "github:0xc000022070/zen-browser-flake";
56
56
+
inputs = {
57
57
+
nixpkgs.follows = "nixpkgs";
58
58
+
home-manager.follows = "home-manager";
59
59
+
};
60
60
+
};
61
61
+
37
62
vicinae.url = "github:vicinaehq/vicinae";
38
63
vscode-server.url = "github:nix-community/nixos-vscode-server";
39
64
};
+26
hosts/dahlia/default.nix
···
50
50
};
51
51
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
52
52
53
53
+
nix.distributedBuilds = true;
54
54
+
55
55
+
nix.buildMachines = [
56
56
+
{
57
57
+
hostName = "192.168.1.107";
58
58
+
system = "x86_64-linux";
59
59
+
protocol = "ssh-ng";
60
60
+
sshUser = "willow";
61
61
+
sshKey = "/etc/nix/id_builder";
62
62
+
63
63
+
maxJobs = 20;
64
64
+
speedFactor = 10;
65
65
+
66
66
+
supportedFeatures = [
67
67
+
"nixos-test"
68
68
+
"benchmark"
69
69
+
"big-parallel"
70
70
+
"kvm"
71
71
+
];
72
72
+
}
73
73
+
];
74
74
+
75
75
+
nix.extraOptions = ''
76
76
+
builders-use-substitutes = true
77
77
+
'';
78
78
+
53
79
networking = {
54
80
networkmanager.enable = true;
55
81
hostName = "dahlia";
+1
hosts/dahlia/services.nix
···
3
3
{
4
4
services.blueman.enable = true;
5
5
hardware.bluetooth.enable = true;
6
6
+
networking.networkmanager.enable = true;
6
7
7
8
services.gvfs.enable = true;
8
9
services.desktopManager.gnome.enable = true;
+1
-1
hosts/default.nix
···
42
42
./ivy
43
43
./ivy/_hware-config.nix
44
44
inputs.home-manager.nixosModules.home-manager
45
45
-
inputs.vscode-server.nixosModules.default
45
45
+
inputs.vscode-server.nixosModules.default
46
46
];
47
47
specialArgs = {
48
48
inherit inputs;
-13
logs
···
1
1
-
willow@dahlia ~/M/t/pano> cat pano-scrobbler.desktop
2
2
-
[Desktop Entry]
3
3
-
Type=Application
4
4
-
Name=Pano Scrobbler
5
5
-
Comment=Feature packed music tracker
6
6
-
StartupWMClass=pano-scrobbler
7
7
-
Exec=
8
8
-
Icon=
9
9
-
Categories=AudioVideo;Audio;
10
10
-
Terminal=false
11
11
-
StartupNotify=true
12
12
-
NoDisplay=false
13
13
-
willow@dahlia ~/M/t/pano>
+51
-20
user/apps/zed.nix
···
4
4
...
5
5
}:
6
6
7
7
-
let
8
8
-
zed = pkgs.callPackage ../packages/zed-editor.nix { };
9
9
-
in
10
7
{
8
8
+
home.packages = with pkgs; [
9
9
+
zed-editor-fhs
10
10
+
];
11
11
+
11
12
programs.zed-editor = {
12
13
enable = true;
13
13
-
package = zed;
14
14
+
package = pkgs.zed-editor-fhs;
14
15
15
16
extensions = [
16
17
"html"
17
17
-
"biome"
18
18
"toml"
19
19
"vue"
20
20
"scss"
···
23
23
];
24
24
25
25
userSettings = {
26
26
+
auto_update = false;
26
27
format_on_save = "on";
28
28
+
29
29
+
collaboration_panel.button = false;
30
30
+
git.inline_blame.show_commit_summary = true;
31
31
+
27
32
theme = {
28
33
mode = "system";
29
34
light = lib.mkForce "Catppuccin Latte";
30
35
};
31
36
37
37
+
ui_font_family = "Maple Mono NF";
38
38
+
buffer_font_family = "Maple Mono NF";
39
39
+
buffer_font_size = 12;
40
40
+
41
41
+
features.edit_prediction_provider = "copilot";
42
42
+
edit_predictions.mode = "subtle";
43
43
+
44
44
+
language_models = {
45
45
+
openai_compatible = {
46
46
+
"z.ai" = {
47
47
+
api_url = "https://api.z.ai/api/coding/paas/v4";
48
48
+
available_models = [
49
49
+
{
50
50
+
"display_name" = "GLM-4.7";
51
51
+
"name" = "glm-4.7";
52
52
+
"max_tokens" = 200000;
53
53
+
}
54
54
+
{
55
55
+
"display_name" = "GLM-4.6";
56
56
+
"name" = "glm-4.6";
57
57
+
"max_tokens" = 200000;
58
58
+
}
59
59
+
{
60
60
+
"display_name" = "GLM-4.5";
61
61
+
"name" = "glm-4.5";
62
62
+
"max_tokens" = 200000;
63
63
+
}
64
64
+
{
65
65
+
"display_name" = "GLM-4.5 Air";
66
66
+
"name" = "glm-4.5-air";
67
67
+
"max_tokens" = 200000;
68
68
+
}
69
69
+
];
70
70
+
};
71
71
+
};
72
72
+
};
73
73
+
32
74
agent = {
33
33
-
model_parameters = [ ];
75
75
+
use_modifier_to_send = true;
76
76
+
default_profile = "ask";
34
77
default_model = {
35
35
-
provider = "copilot_chat";
36
36
-
model = "claude-sonnet-4";
78
78
+
model = "glm-4.5-air";
79
79
+
provider = "z.ai";
37
80
};
38
38
-
version = "2";
39
81
};
40
40
-
41
41
-
features = {
42
42
-
edit_prediction_provider = "copilot";
43
43
-
};
44
44
-
45
45
-
auto_update = false;
46
46
-
collaboration_panel.button = false;
47
47
-
48
48
-
ui_font_family = "Maple Mono NF";
49
49
-
buffer_font_family = "Maple Mono NF";
50
50
-
buffer_font_size = 12;
51
82
52
83
languages = {
53
84
Nix.formatter.external = {
+3
user/desktop/config/colors.scss
···
1
1
+
<* for name, value in colors *>
2
2
+
${{name}}: {{value.default.hex}};
3
3
+
<* endfor *>
+75
user/desktop/config/user_settings.json
···
1
1
+
{
2
2
+
"appearance": {
3
3
+
"wallcolors": {
4
4
+
"wallpaper_path": "/home/willow/Pictures/Wallpapers/bloom-into-you/002.webp",
5
5
+
"color_scheme": "content",
6
6
+
"quickselect_path": "/home/willow/Pictures/Wallpapers/bloom-into-you",
7
7
+
"dark_mode": true,
8
8
+
"auto_dark": {
9
9
+
"end_hour": 5,
10
10
+
"enabled": true,
11
11
+
"start_hour": 20.0
12
12
+
}
13
13
+
}
14
14
+
},
15
15
+
"interface": {
16
16
+
"modules": {
17
17
+
"location": {
18
18
+
"workspaces": 0,
19
19
+
"media": 1,
20
20
+
"window_info": 0,
21
21
+
"tasks": 1,
22
22
+
"recording_indicator": 2,
23
23
+
"systeminfotray": 2
24
24
+
},
25
25
+
"visibility": {
26
26
+
"window_info": true,
27
27
+
"tasks": false,
28
28
+
"launcher": false
29
29
+
},
30
30
+
"bar_id": {
31
31
+
"workspaces": 0,
32
32
+
"tasks": 0
33
33
+
},
34
34
+
"options": {
35
35
+
"military_time": true,
36
36
+
"day_month_swapped": true,
37
37
+
"workspaces_style": "numbers",
38
38
+
"fixed_workspaces_enabled": true,
39
39
+
"show_date": true
40
40
+
}
41
41
+
},
42
42
+
"bar": {
43
43
+
"floating": true,
44
44
+
"side": "bottom",
45
45
+
"vertical": false,
46
46
+
"separation": true,
47
47
+
"centered": false,
48
48
+
"module_backgrounds": false,
49
49
+
"bar_background": true,
50
50
+
"density": 0
51
51
+
},
52
52
+
"bar2": {
53
53
+
"enabled": false,
54
54
+
"floating": false,
55
55
+
"side": "top",
56
56
+
"vertical": false,
57
57
+
"density": 1
58
58
+
},
59
59
+
"notifications": {
60
60
+
"anchor": ["bottom", "right"],
61
61
+
"compact_popup": true
62
62
+
},
63
63
+
"launcher": {},
64
64
+
"misc": {
65
65
+
"shell_corners": true,
66
66
+
"screen_corners": "always"
67
67
+
}
68
68
+
},
69
69
+
"services": {
70
70
+
"recorder": {},
71
71
+
"osd": {
72
72
+
"vertical": true
73
73
+
}
74
74
+
}
75
75
+
}
+21
user/desktop/dank.nix
···
1
1
+
{ ... }:
2
2
+
{
3
3
+
programs.dankMaterialShell = {
4
4
+
enable = true;
5
5
+
6
6
+
systemd = {
7
7
+
enable = true;
8
8
+
restartIfChanged = true;
9
9
+
};
10
10
+
11
11
+
enableSystemMonitoring = true;
12
12
+
enableClipboard = true;
13
13
+
enableVPN = true;
14
14
+
enableBrightnessControl = true;
15
15
+
enableColorPicker = true;
16
16
+
enableDynamicTheming = true;
17
17
+
enableAudioWavelength = true;
18
18
+
enableCalendarEvents = true;
19
19
+
enableSystemSound = true;
20
20
+
};
21
21
+
}
+11
-2
user/desktop/default.nix
···
5
5
./waybar
6
6
./niri
7
7
./rofi.nix
8
8
-
./theme-service.nix
9
8
./wallpaper.nix
10
9
./swaync.nix
10
10
+
./dank.nix
11
11
+
./ignis.nix
11
12
];
12
13
13
14
services.vicinae = {
14
15
enable = true;
15
15
-
autoStart = true;
16
16
+
systemd = {
17
17
+
enable = true;
18
18
+
autoStart = true;
19
19
+
environment = {
20
20
+
USE_LAYER_SHELL = 1;
21
21
+
};
22
22
+
};
23
23
+
16
24
settings = {
17
25
faviconService = "twenty";
18
26
font.size = 11;
···
25
33
};
26
34
};
27
35
36
36
+
programs.zen-browser.enable = true;
28
37
home.packages = with pkgs; [
29
38
droidcam
30
39
];
+68
user/desktop/ignis.nix
···
1
1
+
{
2
2
+
inputs,
3
3
+
lib,
4
4
+
pkgs,
5
5
+
config,
6
6
+
...
7
7
+
}:
8
8
+
let
9
9
+
userSettingsDir = pkgs.runCommand "ignis-user-settings-overlay" { } ''
10
10
+
mkdir -p $out
11
11
+
12
12
+
cp ${./config/user_settings.json} $out/user_settings.json
13
13
+
cp ${./config/colors.scss} $out/colors.scss
14
14
+
mkdir -p $out/styles
15
15
+
cp ${inputs.exo}/exodefaults/preview-colors.scss $out/styles/preview-colors.scss
16
16
+
'';
17
17
+
18
18
+
mergedIgnisConfig = pkgs.symlinkJoin {
19
19
+
name = "ignis-config-merged";
20
20
+
paths = [
21
21
+
"${inputs.exo}/ignis"
22
22
+
userSettingsDir
23
23
+
];
24
24
+
};
25
25
+
in
26
26
+
{
27
27
+
programs.ignis = {
28
28
+
enable = true;
29
29
+
services = {
30
30
+
bluetooth.enable = true;
31
31
+
recorder.enable = true;
32
32
+
audio.enable = true;
33
33
+
network.enable = true;
34
34
+
};
35
35
+
sass = {
36
36
+
enable = true;
37
37
+
useDartSass = true;
38
38
+
};
39
39
+
};
40
40
+
41
41
+
home.packages = with pkgs; [
42
42
+
networkmanager
43
43
+
gnome-bluetooth
44
44
+
dart-sass
45
45
+
matugen
46
46
+
material-symbols
47
47
+
];
48
48
+
49
49
+
home.file.".config/matugen".source = "${inputs.exo}/matugen";
50
50
+
51
51
+
home.activation.installIgnisConfig = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
52
52
+
IGNIS_CONFIG="${config.home.homeDirectory}/.config/ignis"
53
53
+
54
54
+
if [ -L "$IGNIS_CONFIG" ]; then
55
55
+
rm "$IGNIS_CONFIG"
56
56
+
elif [ -d "$IGNIS_CONFIG" ]; then
57
57
+
rm -rf "$IGNIS_CONFIG"
58
58
+
fi
59
59
+
60
60
+
mkdir -p "$IGNIS_CONFIG"
61
61
+
cp -Lr "${mergedIgnisConfig}/." "$IGNIS_CONFIG/"
62
62
+
chmod -R u+w "$IGNIS_CONFIG"
63
63
+
'';
64
64
+
65
65
+
home.sessionVariables = {
66
66
+
PYTHONDONTWRITEBYTECODE = "1";
67
67
+
};
68
68
+
}
+13
-7
user/desktop/niri/default.nix
···
98
98
"-r"
99
99
];
100
100
}
101
101
-
{ command = [ "firefox" ]; }
101
101
+
{ command = [ "zen-twilight" ]; }
102
102
{ command = [ "vesktop" ]; }
103
103
{ command = [ "thunderbird" ]; }
104
104
{ command = [ "foot" ]; }
105
105
{
106
106
command = [
107
107
-
"youtube-music"
107
107
+
"pear-desktop"
108
108
];
109
109
}
110
110
{ command = [ "zeditor" ]; }
···
112
112
];
113
113
114
114
layout = {
115
115
-
gaps = 4;
115
115
+
gaps = 5;
116
116
+
struts = {
117
117
+
top = 5.00;
118
118
+
bottom = 5.00;
119
119
+
left = 5.00;
120
120
+
right = 5.00;
121
121
+
};
116
122
border = {
117
123
enable = true;
118
124
width = 1;
···
213
219
window-rules = [
214
220
{
215
221
geometry-corner-radius = {
216
216
-
top-left = 8.0;
217
217
-
top-right = 8.0;
218
218
-
bottom-left = 8.0;
219
219
-
bottom-right = 8.0;
222
222
+
top-left = 20.00;
223
223
+
top-right = 20.00;
224
224
+
bottom-left = 20.00;
225
225
+
bottom-right = 20.00;
220
226
};
221
227
clip-to-geometry = true;
222
228
}
-89
user/desktop/pano-scrobber.nix
···
1
1
-
{ pkgs ? import <nixpkgs> {}
2
2
-
, src ? .
3
3
-
, jdk ? pkgs.openjdk17
4
4
-
}:
5
5
-
6
6
-
let
7
7
-
lib = pkgs.lib;
8
8
-
cleanedSrc = lib.cleanSource src;
9
9
-
in
10
10
-
11
11
-
pkgs.stdenv.mkDerivation rec {
12
12
-
pname = "scrobble-desktop";
13
13
-
version = "0.1.0";
14
14
-
15
15
-
inherit cleanedSrc as src;
16
16
-
17
17
-
# Tools needed for building and packaging
18
18
-
nativeBuildInputs = [
19
19
-
pkgs.unzip
20
20
-
pkgs.zip
21
21
-
pkgs.gnumake
22
22
-
pkgs.pkg-config
23
23
-
pkgs.coreutils
24
24
-
pkgs.git
25
25
-
# If you want to create Windows installers via nsis, add pkgs.nsis here
26
26
-
# pkgs.nsis
27
27
-
];
28
28
-
29
29
-
buildInputs = [
30
30
-
jdk
31
31
-
];
32
32
-
33
33
-
# Avoid running any distro tests shipped in the project
34
34
-
doCheck = false;
35
35
-
36
36
-
# Ensure reproducible-ish output
37
37
-
SOURCE_DATE_EPOCH = "1600000000";
38
38
-
39
39
-
# build phase: use the gradle wrapper from the repo
40
40
-
buildPhase = ''
41
41
-
export JAVA_HOME=${jdk}
42
42
-
export PATH="$JAVA_HOME/bin:$PATH"
43
43
-
44
44
-
cd composeApp
45
45
-
chmod +x ./gradlew
46
46
-
47
47
-
./gradlew --no-daemon packageUberJarForCurrentOS --stacktrace
48
48
-
# ./gradlew --no-daemon packageUberJarForCurrentOS -x nativeImageTaskName
49
49
-
'';
50
50
-
51
51
-
installPhase = ''
52
52
-
mkdir -p $out
53
53
-
54
54
-
# Copy the full gradle compose build directory so you can inspect outputs
55
55
-
if [ -d composeApp/build ]; then
56
56
-
cp -ra composeApp/build $out/build
57
57
-
fi
58
58
-
59
59
-
# Common produced artifacts live under various places; try a few likely ones:
60
60
-
for p in \
61
61
-
composeApp/build/composeApp/outputs \
62
62
-
composeApp/build/libs \
63
63
-
composeApp/build/composeDesktop/* \
64
64
-
composeApp/build/* ; do
65
65
-
if [ -e "$p" ]; then
66
66
-
cp -ra "$p" $out/ || true
67
67
-
fi
68
68
-
done
69
69
-
70
70
-
# If the Gradle task produced a distribution zip for the current OS, move it to $out
71
71
-
find composeApp -type f \( -name '*uber*' -o -name '*.zip' -o -name '*.jar' \) -print -maxdepth 5 | while read f; do
72
72
-
cp -a "$f" "$out/$(basename "$f")" || true
73
73
-
done
74
74
-
75
75
-
# Provide a simple wrapper to run the jar if found:
76
76
-
if [ -f "$out"/*.jar ]; then
77
77
-
echo "#!/bin/sh" > $out/run.sh
78
78
-
echo "exec \"$JAVA_HOME/bin/java\" -jar \"\$0\" \"\$@\"" >> $out/run.sh
79
79
-
chmod +x $out/run.sh || true
80
80
-
fi
81
81
-
'';
82
82
-
83
83
-
meta = with lib; {
84
84
-
description = "Builds the Scrobble Compose desktop distribution (desktop package / uberjar)";
85
85
-
license = licenses.mit; # adjust to actual license
86
86
-
maintainers = [ ];
87
87
-
platforms = platforms.unix; # Linux/macOS
88
88
-
};
89
89
-
}
+7
-1
user/desktop/swaync.nix
···
3
3
home.packages = with pkgs; [
4
4
swaynotificationcenter
5
5
libnotify
6
6
+
adw-gtk3
7
7
+
gnome-themes-extra
8
8
+
libadwaita
6
9
];
7
7
-
services.swaync.package = pkgs.swaynotificationcenter;
10
10
+
services.swaync = {
11
11
+
enable = false;
12
12
+
package = pkgs.swaynotificationcenter;
13
13
+
};
8
14
}
-37
user/desktop/theme-service.nix
···
1
1
-
{ config, ... }:
2
2
-
3
3
-
{
4
4
-
systemd.user.services.theme-switch-day = {
5
5
-
Unit.description = "switch to day theme";
6
6
-
Install.wantedBy = [ "default.target" ];
7
7
-
serviceConfig = {
8
8
-
Type = "oneshot";
9
9
-
ExecStart = "${config.home.homeDirectory}/.local/bin/_toggle-theme day";
10
10
-
};
11
11
-
};
12
12
-
13
13
-
systemd.user.timers.theme-switch-day = {
14
14
-
Install.wantedBy = [ "timers.target" ];
15
15
-
timerConfig = {
16
16
-
OnCalendar = "07:00";
17
17
-
Persistent = "true";
18
18
-
};
19
19
-
};
20
20
-
21
21
-
systemd.user.services.theme-switch-night = {
22
22
-
Unit.description = "switch to night theme";
23
23
-
Install.wantedBy = [ "default.target" ];
24
24
-
serviceConfig = {
25
25
-
Type = "oneshot";
26
26
-
ExecStart = "${config.home.homeDirectory}/.local/bin/_toggle-theme night";
27
27
-
};
28
28
-
};
29
29
-
30
30
-
systemd.user.timers.theme-switch-night = {
31
31
-
Install.wantedBy = [ "timers.target" ];
32
32
-
timerConfig = {
33
33
-
OnCalendar = "19:00";
34
34
-
Persistent = "true";
35
35
-
};
36
36
-
};
37
37
-
}
+38
-2
user/desktop/wallpaper.nix
···
1
1
-
{ ... }:
1
1
+
{ pkgs, ... }:
2
2
+
3
3
+
let
4
4
+
rawWallpapers = ../../assets/wallpapers;
5
5
+
6
6
+
pngWallpapers =
7
7
+
pkgs.runCommand "wallpapers-png"
8
8
+
{
9
9
+
nativeBuildInputs = [
10
10
+
pkgs.imagemagick
11
11
+
pkgs.findutils
12
12
+
];
13
13
+
}
14
14
+
''
15
15
+
mkdir -p $out
16
16
+
mkdir -p $out/_flattened
17
17
+
18
18
+
cd ${rawWallpapers}
19
19
+
20
20
+
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.webp" -o -iname "*.png" \) -print0 | while IFS= read -r -d "" file; do
21
21
+
relPath="''${file#./}"
22
22
+
basePath="''${relPath%.*}"
23
23
+
24
24
+
dirPath=$(dirname "$relPath")
25
25
+
mkdir -p "$out/$dirPath"
26
26
+
27
27
+
structuredOutput="$out/$basePath.png"
28
28
+
29
29
+
flatName="''${basePath//\//_}.png"
30
30
+
flatOutput="$out/_flattened/$flatName"
31
31
+
32
32
+
echo "converting $relPath..."
33
33
+
magick "$file" "$structuredOutput"
34
34
+
cp "$structuredOutput" "$flatOutput"
35
35
+
done
36
36
+
'';
37
37
+
in
2
38
{
3
3
-
home.file."Pictures/Wallpapers".source = ../../assets/wallpapers;
39
39
+
home.file."Pictures/Wallpapers".source = pngWallpapers;
4
40
}
+28
-20
user/home.nix
···
2
2
hostname,
3
3
pkgs,
4
4
lib,
5
5
+
config,
5
6
inputs,
6
7
...
7
8
}:
···
22
23
./ctp.nix
23
24
./desktop
24
25
inputs.vicinae.homeManagerModules.default
26
26
+
inputs.ignis.homeManagerModules.default
27
27
+
inputs.dms.homeModules.dankMaterialShell.default
28
28
+
inputs.zen-browser.homeModules.twilight-official
25
29
]
26
30
else
27
31
[ ]
···
39
43
size = 24;
40
44
x11 = {
41
45
enable = true;
42
42
-
defaultCursor = "Adwaita";
46
46
+
defaultCursor = pkgs.bibata-cursors;
43
47
};
44
48
};
45
49
sessionVariables = lib.mkIf isDesktop {
···
50
54
file.".ssh/allowed_signers".text = ''
51
55
willow ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPWD6wk95qNhk/36vEH34qIRp/TPCcQ+D+u5Xd9/N0m1
52
56
'';
57
57
+
53
58
};
54
59
55
60
dconf.settings = lib.mkIf isDesktop {
···
74
79
};
75
80
};
76
81
77
77
-
# xdg = {
78
78
-
# enable = true;
79
79
-
# portal.config = {
80
80
-
# niri = {
81
81
-
# default = [
82
82
-
# "gnome"
83
83
-
# "gtk"
84
84
-
# ];
85
85
-
# "org.freedesktop.impl.portal.FileChooser" = [ "gnome" ];
86
86
-
# };
87
87
-
# common = {
88
88
-
# default = [
89
89
-
# "gnome"
90
90
-
# "gtk"
91
91
-
# ];
92
92
-
# "org.freedesktop.impl.portal.FileChooser" = [ "gnome" ];
93
93
-
# };
94
94
-
# };
95
95
-
# };
82
82
+
programs.ssh = {
83
83
+
enable = true;
84
84
+
};
85
85
+
programs.ssh.enableDefaultConfig = false;
86
86
+
home.activation.writeSSHConfig = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
87
87
+
rm -f $HOME/.ssh/config
88
88
+
cat > $HOME/.ssh/config <<EOF
89
89
+
Host tangled-handle
90
90
+
IdentitiesOnly yes
91
91
+
User git
92
92
+
HostName tangled.sh
93
93
+
IdentityFile ~/.ssh/id_ed25519_handle
94
94
+
95
95
+
Host tangled.sh
96
96
+
IdentitiesOnly yes
97
97
+
User git
98
98
+
HostName tangled.sh
99
99
+
IdentityFile ~/.ssh/id_ed25519
100
100
+
EOF
101
101
+
chmod 600 $HOME/.ssh/config
102
102
+
'';
103
103
+
96
104
fonts.fontconfig.enable = true;
97
105
}
+3
-2
user/packages/default.nix
···
10
10
11
11
home.packages = with pkgs; [
12
12
(pkgs.callPackage ./helium.nix { })
13
13
-
(pkgs.callPackage ./zen-browser.nix { })
13
13
+
# (pkgs.callPackage ./zen-browser.nix { })
14
14
(pkgs.callPackage ./pano-scrobbler.nix { })
15
15
(runCommandLocal "nautilus-portal" { } ''
16
16
mkdir -p $out/share/xdg-desktop-portal/portals
···
20
20
Interfaces=org.freedesktop.impl.portal.FileChooser
21
21
EOF
22
22
'')
23
23
+
signal-desktop
23
24
typespec
24
25
zellij
25
26
dmenu
···
30
31
qtscrcpy
31
32
customScrcpy
32
33
appimage-run
33
33
-
youtube-music
34
34
+
pear-desktop
34
35
35
36
quickemu
36
37
grim
+2
-2
user/packages/zed-editor.nix
···
14
14
15
15
stdenv.mkDerivation rec {
16
16
pname = "zeditor";
17
17
-
version = "0.207.4";
17
17
+
version = "0.217.3";
18
18
19
19
src = fetchurl {
20
20
url = "https://github.com/zed-industries/zed/releases/download/v${version}/zed-linux-x86_64.tar.gz";
21
21
-
sha256 = "sha256-maCJcN10gstetNdD4E8qxmlI5btgHhhKCpDCP5FV6xw=";
21
21
+
sha256 = "sha256-IRT+sWIraOvoZ12XPU8LR3XJZ83Fpvv8X3NTPwUDOO0=";
22
22
};
23
23
24
24
nativeBuildInputs = [ makeWrapper ];
+19
-7
user/programs/git.nix
···
8
8
enable = true;
9
9
10
10
settings = {
11
11
-
difftastic.enable = true;
12
12
-
user = {
13
13
-
email = "hai@wlo.moe";
14
14
-
name = "willow";
15
15
-
};
16
16
-
17
11
gpg.format = "ssh";
18
12
gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers";
19
13
init.defaultBranch = "main";
20
14
rebase.autostash = true;
21
15
push.autoSetupRemote = true;
22
16
pull.rebase = true;
17
17
+
18
18
+
user = {
19
19
+
email = "v@vt3e.cat";
20
20
+
name = "vi";
21
21
+
};
23
22
};
24
23
25
24
signing = {
26
26
-
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPWD6wk95qNhk/36vEH34qIRp/TPCcQ+D+u5Xd9/N0m1 hai@wlo.moe";
25
25
+
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICbBhjcuU3Q/+AjDgk3uQO5z9aoZPIEguphJKEESTugj v@vt3e.cat";
27
26
signByDefault = true;
28
27
};
28
28
+
29
29
+
includes = [
30
30
+
{
31
31
+
condition = "gitdir:~/Me/handle/";
32
32
+
contents = {
33
33
+
user = {
34
34
+
name = "handle";
35
35
+
signingkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEimZGd/E3LCFiahkkruLpW4hbsOOwrqlD43+NjjOoCh did:plc:73gqgbnvpx5syidcponjrics";
36
36
+
email = "did:plc:73gqgbnvpx5syidcponjrics";
37
37
+
};
38
38
+
};
39
39
+
}
40
40
+
];
29
41
};
30
42
31
43
programs.gh = {