1diff --git a/.gitignore b/.gitignore
2new file mode 100644
3index 0000000000000000000000000000000000000000..27964ebd1af073652957f836023a44206e6b478f
4--- /dev/null
5+++ b/.gitignore
6@@ -0,0 +1,2 @@
7+.git-crypt/
8+result
9diff --git a/awslocal.nix b/awslocal.nix
10deleted file mode 100644
11index 1968b0806e2ecd794a95bc333d1bc62a09b86213..0000000000000000000000000000000000000000
12--- a/awslocal.nix
13+++ /dev/null
14@@ -1,55 +0,0 @@
15-{
16- lib,
17- buildPythonPackage,
18- fetchPypi,
19- # build-system
20- setuptools,
21- setuptools-scm,
22- # dependencies
23- attrs,
24- pluggy,
25- py,
26- six,
27- # tests
28- hypothesis,
29-}:
30-buildPythonPackage rec {
31- pname = "awscli-local";
32- version = "3.3.1";
33- pyproject = true;
34-
35- src = fetchPypi {
36- inherit pname version;
37- hash = "sha256-z4Q23FnYaVNG/NOrKW3kZCXsqwDWQJbOvnn7Ueyy65M=";
38- };
39-
40- postPatch = ''
41- # don't test bash builtins
42- rm testing/test_argcomplete.py
43- '';
44-
45- build-system = [
46- setuptools
47- setuptools-scm
48- ];
49-
50- dependencies = [
51- attrs
52- py
53- setuptools
54- six
55- pluggy
56- ];
57-
58- nativeCheckInputs = [
59- hypothesis
60- ];
61-
62- meta = {
63- changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}";
64- description = "Framework for writing tests";
65- homepage = "https://github.com/pytest-dev/pytest";
66- license = lib.licenses.mit;
67- maintainers = with lib.maintainers; [domenkozar lovek323 madjar lsix];
68- };
69-}
70diff --git a/flake.lock b/flake.lock
71index 3b09b0523dba15bd81618f366d0d272301371a8f..027ecd842a1132cef7690c101e6e21d73b68ccd9 100644
72--- a/flake.lock
73+++ b/flake.lock
74@@ -1,8 +1,190 @@
75 {
76 "nodes": {
77+ "cachix": {
78+ "inputs": {
79+ "devenv": [
80+ "edge-tools",
81+ "devenv"
82+ ],
83+ "flake-compat": [
84+ "edge-tools",
85+ "devenv"
86+ ],
87+ "git-hooks": [
88+ "edge-tools",
89+ "devenv"
90+ ],
91+ "nixpkgs": "nixpkgs"
92+ },
93+ "locked": {
94+ "lastModified": 1742042642,
95+ "narHash": "sha256-D0gP8srrX0qj+wNYNPdtVJsQuFzIng3q43thnHXQ/es=",
96+ "owner": "cachix",
97+ "repo": "cachix",
98+ "rev": "a624d3eaf4b1d225f918de8543ed739f2f574203",
99+ "type": "github"
100+ },
101+ "original": {
102+ "owner": "cachix",
103+ "ref": "latest",
104+ "repo": "cachix",
105+ "type": "github"
106+ }
107+ },
108+ "cachix_2": {
109+ "inputs": {
110+ "devenv": [
111+ "edge-tools",
112+ "ecs",
113+ "devenv"
114+ ],
115+ "flake-compat": [
116+ "edge-tools",
117+ "ecs",
118+ "devenv"
119+ ],
120+ "git-hooks": [
121+ "edge-tools",
122+ "ecs",
123+ "devenv"
124+ ],
125+ "nixpkgs": "nixpkgs_4"
126+ },
127+ "locked": {
128+ "lastModified": 1737621947,
129+ "narHash": "sha256-8HFvG7fvIFbgtaYAY2628Tb89fA55nPm2jSiNs0/Cws=",
130+ "owner": "cachix",
131+ "repo": "cachix",
132+ "rev": "f65a3cd5e339c223471e64c051434616e18cc4f5",
133+ "type": "github"
134+ },
135+ "original": {
136+ "owner": "cachix",
137+ "ref": "latest",
138+ "repo": "cachix",
139+ "type": "github"
140+ }
141+ },
142+ "devenv": {
143+ "inputs": {
144+ "cachix": "cachix",
145+ "flake-compat": "flake-compat",
146+ "git-hooks": "git-hooks",
147+ "nix": "nix",
148+ "nixpkgs": "nixpkgs_3"
149+ },
150+ "locked": {
151+ "lastModified": 1746423062,
152+ "narHash": "sha256-BgiRweL6nMjeO2BQgnOyIquuviybI4S8Nc8r9hYjcBc=",
153+ "owner": "cachix",
154+ "repo": "devenv",
155+ "rev": "aba5cf8412827fdb637fceb2c305d10fcea907c6",
156+ "type": "github"
157+ },
158+ "original": {
159+ "owner": "cachix",
160+ "repo": "devenv",
161+ "type": "github"
162+ }
163+ },
164+ "devenv_2": {
165+ "inputs": {
166+ "cachix": "cachix_2",
167+ "flake-compat": "flake-compat_2",
168+ "git-hooks": "git-hooks_2",
169+ "nix": "nix_2",
170+ "nixpkgs": "nixpkgs_6"
171+ },
172+ "locked": {
173+ "lastModified": 1743292849,
174+ "narHash": "sha256-rybjlr2xNmSHrlRVliYvI9bOPRnROecFqz+tO0V2woI=",
175+ "owner": "cachix",
176+ "repo": "devenv",
177+ "rev": "fa5cbf91fb1f1614936997badbb6018a2fdef320",
178+ "type": "github"
179+ },
180+ "original": {
181+ "owner": "cachix",
182+ "repo": "devenv",
183+ "type": "github"
184+ }
185+ },
186+ "ecs": {
187+ "inputs": {
188+ "devenv": "devenv_2",
189+ "nixpkgs": "nixpkgs_7",
190+ "systems": "systems"
191+ },
192+ "locked": {
193+ "lastModified": 1746454006,
194+ "narHash": "sha256-ayUGeFYQtQyVeLS7e77ep3BSplGqmoeMqxckJ4D9lzs=",
195+ "ref": "refs/heads/main",
196+ "rev": "f469bdd4c08fef6537202815fe430f7431249b68",
197+ "revCount": 3992,
198+ "type": "git",
199+ "url": "ssh://git@github.com/grid-x/edge-connector"
200+ },
201+ "original": {
202+ "type": "git",
203+ "url": "ssh://git@github.com/grid-x/edge-connector"
204+ }
205+ },
206+ "edge-tools": {
207+ "inputs": {
208+ "devenv": "devenv",
209+ "ecs": "ecs",
210+ "nixpkgs": "nixpkgs_8",
211+ "systems": "systems_2"
212+ },
213+ "locked": {
214+ "lastModified": 1746514348,
215+ "narHash": "sha256-bXrj9OitpiXevAbWoj1eD8yOm9uTPRzotEAHTRSi/bw=",
216+ "ref": "refs/heads/main",
217+ "rev": "a470844ae5de78e8edc64f17bb6e11fbefd9cba5",
218+ "revCount": 116,
219+ "type": "git",
220+ "url": "ssh://git@github.com/grid-x/edge-tools"
221+ },
222+ "original": {
223+ "type": "git",
224+ "url": "ssh://git@github.com/grid-x/edge-tools"
225+ }
226+ },
227 "flake-compat": {
228 "flake": false,
229 "locked": {
230+ "lastModified": 1733328505,
231+ "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
232+ "owner": "edolstra",
233+ "repo": "flake-compat",
234+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
235+ "type": "github"
236+ },
237+ "original": {
238+ "owner": "edolstra",
239+ "repo": "flake-compat",
240+ "type": "github"
241+ }
242+ },
243+ "flake-compat_2": {
244+ "flake": false,
245+ "locked": {
246+ "lastModified": 1733328505,
247+ "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
248+ "owner": "edolstra",
249+ "repo": "flake-compat",
250+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
251+ "type": "github"
252+ },
253+ "original": {
254+ "owner": "edolstra",
255+ "repo": "flake-compat",
256+ "type": "github"
257+ }
258+ },
259+ "flake-compat_3": {
260+ "flake": false,
261+ "locked": {
262 "lastModified": 1747046372,
263 "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
264 "owner": "edolstra",
265@@ -16,9 +198,56 @@ "repo": "flake-compat",
266 "type": "github"
267 }
268 },
269+ "flake-parts": {
270+ "inputs": {
271+ "nixpkgs-lib": [
272+ "edge-tools",
273+ "devenv",
274+ "nix",
275+ "nixpkgs"
276+ ]
277+ },
278+ "locked": {
279+ "lastModified": 1712014858,
280+ "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
281+ "owner": "hercules-ci",
282+ "repo": "flake-parts",
283+ "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
284+ "type": "github"
285+ },
286+ "original": {
287+ "owner": "hercules-ci",
288+ "repo": "flake-parts",
289+ "type": "github"
290+ }
291+ },
292+ "flake-parts_2": {
293+ "inputs": {
294+ "nixpkgs-lib": [
295+ "edge-tools",
296+ "ecs",
297+ "devenv",
298+ "nix",
299+ "nixpkgs"
300+ ]
301+ },
302+ "locked": {
303+ "lastModified": 1712014858,
304+ "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
305+ "owner": "hercules-ci",
306+ "repo": "flake-parts",
307+ "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
308+ "type": "github"
309+ },
310+ "original": {
311+ "owner": "hercules-ci",
312+ "repo": "flake-parts",
313+ "type": "github"
314+ }
315+ },
316 "flake-utils": {
317 "inputs": {
318- "systems": "systems"
319+ "systems": "systems_3"
320 },
321 "locked": {
322 "lastModified": 1731533236,
323@@ -36,7 +265,7 @@ }
324 },
325 "flake-utils_2": {
326 "inputs": {
327- "systems": "systems_2"
328+ "systems": "systems_4"
329 },
330 "locked": {
331 "lastModified": 1710146030,
332@@ -54,18 +283,18 @@ }
333 },
334 "ghostty": {
335 "inputs": {
336- "flake-compat": "flake-compat",
337+ "flake-compat": "flake-compat_3",
338 "flake-utils": "flake-utils",
339- "nixpkgs": "nixpkgs",
340+ "nixpkgs": "nixpkgs_9",
341 "zig": "zig",
342 "zon2nix": "zon2nix"
343 },
344 "locked": {
345- "lastModified": 1750679248,
346- "narHash": "sha256-zRv0FqFwR4xenvgpyh386gtEXEWdRKZJDvLJV1MRyVc=",
347+ "lastModified": 1750884490,
348+ "narHash": "sha256-hRt8xWReiDFyR4MDFg7FCq1PtvJb8hmrelkifnu/7yI=",
349 "ref": "refs/heads/main",
350- "rev": "373fc6bcbf04f50bc8a8d19c7688f8ee24fb3849",
351- "revCount": 10710,
352+ "rev": "fa47db5363bedc5c3c9add87a83427447a273a90",
353+ "revCount": 10771,
354 "type": "git",
355 "url": "ssh://git@github.com/ghostty-org/ghostty"
356 },
357@@ -74,10 +303,113 @@ "type": "git",
358 "url": "ssh://git@github.com/ghostty-org/ghostty"
359 }
360 },
361+ "git-hooks": {
362+ "inputs": {
363+ "flake-compat": [
364+ "edge-tools",
365+ "devenv"
366+ ],
367+ "gitignore": "gitignore",
368+ "nixpkgs": [
369+ "edge-tools",
370+ "devenv",
371+ "nixpkgs"
372+ ]
373+ },
374+ "locked": {
375+ "lastModified": 1742649964,
376+ "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
377+ "owner": "cachix",
378+ "repo": "git-hooks.nix",
379+ "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
380+ "type": "github"
381+ },
382+ "original": {
383+ "owner": "cachix",
384+ "repo": "git-hooks.nix",
385+ "type": "github"
386+ }
387+ },
388+ "git-hooks_2": {
389+ "inputs": {
390+ "flake-compat": [
391+ "edge-tools",
392+ "ecs",
393+ "devenv"
394+ ],
395+ "gitignore": "gitignore_2",
396+ "nixpkgs": [
397+ "edge-tools",
398+ "ecs",
399+ "devenv",
400+ "nixpkgs"
401+ ]
402+ },
403+ "locked": {
404+ "lastModified": 1740849354,
405+ "narHash": "sha256-oy33+t09FraucSZ2rZ6qnD1Y1c8azKKmQuCvF2ytUko=",
406+ "owner": "cachix",
407+ "repo": "git-hooks.nix",
408+ "rev": "4a709a8ce9f8c08fa7ddb86761fe488ff7858a07",
409+ "type": "github"
410+ },
411+ "original": {
412+ "owner": "cachix",
413+ "repo": "git-hooks.nix",
414+ "type": "github"
415+ }
416+ },
417+ "gitignore": {
418+ "inputs": {
419+ "nixpkgs": [
420+ "edge-tools",
421+ "devenv",
422+ "git-hooks",
423+ "nixpkgs"
424+ ]
425+ },
426+ "locked": {
427+ "lastModified": 1709087332,
428+ "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
429+ "owner": "hercules-ci",
430+ "repo": "gitignore.nix",
431+ "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
432+ "type": "github"
433+ },
434+ "original": {
435+ "owner": "hercules-ci",
436+ "repo": "gitignore.nix",
437+ "type": "github"
438+ }
439+ },
440+ "gitignore_2": {
441+ "inputs": {
442+ "nixpkgs": [
443+ "edge-tools",
444+ "ecs",
445+ "devenv",
446+ "git-hooks",
447+ "nixpkgs"
448+ ]
449+ },
450+ "locked": {
451+ "lastModified": 1709087332,
452+ "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
453+ "owner": "hercules-ci",
454+ "repo": "gitignore.nix",
455+ "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
456+ "type": "github"
457+ },
458+ "original": {
459+ "owner": "hercules-ci",
460+ "repo": "gitignore.nix",
461+ "type": "github"
462+ }
463+ },
464 "gxctl": {
465 "inputs": {
466 "flake-utils": "flake-utils_2",
467- "nixpkgs": "nixpkgs_2"
468+ "nixpkgs": "nixpkgs_10"
469 },
470 "locked": {
471 "lastModified": 1750671555,
472@@ -100,11 +432,11 @@ "nixpkgs"
473 ]
474 },
475 "locked": {
476- "lastModified": 1750654717,
477- "narHash": "sha256-YXlhTUGaLAY1rSosaRXO5RSGriEyF9BGdLkpKV+9jyI=",
478+ "lastModified": 1750798083,
479+ "narHash": "sha256-DTCCcp6WCFaYXWKFRA6fiI2zlvOLCf5Vwx8+/0R8Wc4=",
480 "owner": "nix-community",
481 "repo": "home-manager",
482- "rev": "4c9e99e8e8e36bcdfa9cdb102e45e4dc95aa5c5b",
483+ "rev": "ff31a4677c1a8ae506aa7e003a3dba08cb203f82",
484 "type": "github"
485 },
486 "original": {
487@@ -113,20 +445,133 @@ "repo": "home-manager",
488 "type": "github"
489 }
490 },
491+ "libgit2": {
492+ "flake": false,
493+ "locked": {
494+ "lastModified": 1697646580,
495+ "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=",
496+ "owner": "libgit2",
497+ "repo": "libgit2",
498+ "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5",
499+ "type": "github"
500+ },
501+ "original": {
502+ "owner": "libgit2",
503+ "repo": "libgit2",
504+ "type": "github"
505+ }
506+ },
507+ "libgit2_2": {
508+ "flake": false,
509+ "locked": {
510+ "lastModified": 1697646580,
511+ "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=",
512+ "owner": "libgit2",
513+ "repo": "libgit2",
514+ "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5",
515+ "type": "github"
516+ },
517+ "original": {
518+ "owner": "libgit2",
519+ "repo": "libgit2",
520+ "type": "github"
521+ }
522+ },
523+ "nix": {
524+ "inputs": {
525+ "flake-compat": [
526+ "edge-tools",
527+ "devenv"
528+ ],
529+ "flake-parts": "flake-parts",
530+ "libgit2": "libgit2",
531+ "nixpkgs": "nixpkgs_2",
532+ "nixpkgs-23-11": [
533+ "edge-tools",
534+ "devenv"
535+ ],
536+ "nixpkgs-regression": [
537+ "edge-tools",
538+ "devenv"
539+ ],
540+ "pre-commit-hooks": [
541+ "edge-tools",
542+ "devenv"
543+ ]
544+ },
545+ "locked": {
546+ "lastModified": 1745930071,
547+ "narHash": "sha256-bYyjarS3qSNqxfgc89IoVz8cAFDkF9yPE63EJr+h50s=",
548+ "owner": "domenkozar",
549+ "repo": "nix",
550+ "rev": "b455edf3505f1bf0172b39a735caef94687d0d9c",
551+ "type": "github"
552+ },
553+ "original": {
554+ "owner": "domenkozar",
555+ "ref": "devenv-2.24",
556+ "repo": "nix",
557+ "type": "github"
558+ }
559+ },
560+ "nix_2": {
561+ "inputs": {
562+ "flake-compat": [
563+ "edge-tools",
564+ "ecs",
565+ "devenv"
566+ ],
567+ "flake-parts": "flake-parts_2",
568+ "libgit2": "libgit2_2",
569+ "nixpkgs": "nixpkgs_5",
570+ "nixpkgs-23-11": [
571+ "edge-tools",
572+ "ecs",
573+ "devenv"
574+ ],
575+ "nixpkgs-regression": [
576+ "edge-tools",
577+ "ecs",
578+ "devenv"
579+ ],
580+ "pre-commit-hooks": [
581+ "edge-tools",
582+ "ecs",
583+ "devenv"
584+ ]
585+ },
586+ "locked": {
587+ "lastModified": 1741798497,
588+ "narHash": "sha256-E3j+3MoY8Y96mG1dUIiLFm2tZmNbRvSiyN7CrSKuAVg=",
589+ "owner": "domenkozar",
590+ "repo": "nix",
591+ "rev": "f3f44b2baaf6c4c6e179de8cbb1cc6db031083cd",
592+ "type": "github"
593+ },
594+ "original": {
595+ "owner": "domenkozar",
596+ "ref": "devenv-2.24",
597+ "repo": "nix",
598+ "type": "github"
599+ }
600+ },
601 "nixpkgs": {
602 "locked": {
603- "lastModified": 1748189127,
604- "narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=",
605- "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
606- "type": "tarball",
607- "url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz"
608+ "lastModified": 1733212471,
609+ "narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
610+ "owner": "NixOS",
611+ "repo": "nixpkgs",
612+ "rev": "55d15ad12a74eb7d4646254e13638ad0c4128776",
613+ "type": "github"
614 },
615 "original": {
616- "type": "tarball",
617- "url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz"
618+ "owner": "NixOS",
619+ "ref": "nixos-unstable",
620+ "repo": "nixpkgs",
621+ "type": "github"
622 }
623 },
624- "nixpkgs_2": {
625+ "nixpkgs_10": {
626 "locked": {
627 "lastModified": 1720691131,
628 "narHash": "sha256-CWT+KN8aTPyMIx8P303gsVxUnkinIz0a/Cmasz1jyIM=",
629@@ -142,13 +587,13 @@ "repo": "nixpkgs",
630 "type": "github"
631 }
632 },
633- "nixpkgs_3": {
634+ "nixpkgs_11": {
635 "locked": {
636- "lastModified": 1750506804,
637- "narHash": "sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc=",
638+ "lastModified": 1750776420,
639+ "narHash": "sha256-/CG+w0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A=",
640 "owner": "nixos",
641 "repo": "nixpkgs",
642- "rev": "4206c4cb56751df534751b058295ea61357bbbaa",
643+ "rev": "30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf",
644 "type": "github"
645 },
646 "original": {
647@@ -158,12 +603,138 @@ "repo": "nixpkgs",
648 "type": "github"
649 }
650 },
651+ "nixpkgs_2": {
652+ "locked": {
653+ "lastModified": 1717432640,
654+ "narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=",
655+ "owner": "NixOS",
656+ "repo": "nixpkgs",
657+ "rev": "88269ab3044128b7c2f4c7d68448b2fb50456870",
658+ "type": "github"
659+ },
660+ "original": {
661+ "owner": "NixOS",
662+ "ref": "release-24.05",
663+ "repo": "nixpkgs",
664+ "type": "github"
665+ }
666+ },
667+ "nixpkgs_3": {
668+ "locked": {
669+ "lastModified": 1733477122,
670+ "narHash": "sha256-qamMCz5mNpQmgBwc8SB5tVMlD5sbwVIToVZtSxMph9s=",
671+ "owner": "cachix",
672+ "repo": "devenv-nixpkgs",
673+ "rev": "7bd9e84d0452f6d2e63b6e6da29fe73fac951857",
674+ "type": "github"
675+ },
676+ "original": {
677+ "owner": "cachix",
678+ "ref": "rolling",
679+ "repo": "devenv-nixpkgs",
680+ "type": "github"
681+ }
682+ },
683+ "nixpkgs_4": {
684+ "locked": {
685+ "lastModified": 1733212471,
686+ "narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
687+ "owner": "NixOS",
688+ "repo": "nixpkgs",
689+ "rev": "55d15ad12a74eb7d4646254e13638ad0c4128776",
690+ "type": "github"
691+ },
692+ "original": {
693+ "owner": "NixOS",
694+ "ref": "nixos-unstable",
695+ "repo": "nixpkgs",
696+ "type": "github"
697+ }
698+ },
699+ "nixpkgs_5": {
700+ "locked": {
701+ "lastModified": 1717432640,
702+ "narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=",
703+ "owner": "NixOS",
704+ "repo": "nixpkgs",
705+ "rev": "88269ab3044128b7c2f4c7d68448b2fb50456870",
706+ "type": "github"
707+ },
708+ "original": {
709+ "owner": "NixOS",
710+ "ref": "release-24.05",
711+ "repo": "nixpkgs",
712+ "type": "github"
713+ }
714+ },
715+ "nixpkgs_6": {
716+ "locked": {
717+ "lastModified": 1733477122,
718+ "narHash": "sha256-qamMCz5mNpQmgBwc8SB5tVMlD5sbwVIToVZtSxMph9s=",
719+ "owner": "cachix",
720+ "repo": "devenv-nixpkgs",
721+ "rev": "7bd9e84d0452f6d2e63b6e6da29fe73fac951857",
722+ "type": "github"
723+ },
724+ "original": {
725+ "owner": "cachix",
726+ "ref": "rolling",
727+ "repo": "devenv-nixpkgs",
728+ "type": "github"
729+ }
730+ },
731+ "nixpkgs_7": {
732+ "locked": {
733+ "lastModified": 1743315132,
734+ "narHash": "sha256-6hl6L/tRnwubHcA4pfUUtk542wn2Om+D4UnDhlDW9BE=",
735+ "owner": "NixOS",
736+ "repo": "nixpkgs",
737+ "rev": "52faf482a3889b7619003c0daec593a1912fddc1",
738+ "type": "github"
739+ },
740+ "original": {
741+ "owner": "NixOS",
742+ "ref": "nixos-unstable",
743+ "repo": "nixpkgs",
744+ "type": "github"
745+ }
746+ },
747+ "nixpkgs_8": {
748+ "locked": {
749+ "lastModified": 1746328495,
750+ "narHash": "sha256-uKCfuDs7ZM3QpCE/jnfubTg459CnKnJG/LwqEVEdEiw=",
751+ "owner": "NixOS",
752+ "repo": "nixpkgs",
753+ "rev": "979daf34c8cacebcd917d540070b52a3c2b9b16e",
754+ "type": "github"
755+ },
756+ "original": {
757+ "owner": "NixOS",
758+ "ref": "nixos-unstable",
759+ "repo": "nixpkgs",
760+ "type": "github"
761+ }
762+ },
763+ "nixpkgs_9": {
764+ "locked": {
765+ "lastModified": 1748189127,
766+ "narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=",
767+ "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
768+ "type": "tarball",
769+ "url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz"
770+ },
771+ "original": {
772+ "type": "tarball",
773+ "url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz"
774+ }
775+ },
776 "root": {
777 "inputs": {
778+ "edge-tools": "edge-tools",
779 "ghostty": "ghostty",
780 "gxctl": "gxctl",
781 "home-manager": "home-manager",
782- "nixpkgs": "nixpkgs_3"
783+ "nixpkgs": "nixpkgs_11"
784 }
785 },
786 "systems": {
787@@ -182,6 +753,36 @@ "type": "github"
788 }
789 },
790 "systems_2": {
791+ "locked": {
792+ "lastModified": 1681028828,
793+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
794+ "owner": "nix-systems",
795+ "repo": "default",
796+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
797+ "type": "github"
798+ },
799+ "original": {
800+ "owner": "nix-systems",
801+ "repo": "default",
802+ "type": "github"
803+ }
804+ },
805+ "systems_3": {
806+ "locked": {
807+ "lastModified": 1681028828,
808+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
809+ "owner": "nix-systems",
810+ "repo": "default",
811+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
812+ "type": "github"
813+ },
814+ "original": {
815+ "owner": "nix-systems",
816+ "repo": "default",
817+ "type": "github"
818+ }
819+ },
820+ "systems_4": {
821 "locked": {
822 "lastModified": 1681028828,
823 "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
824diff --git a/flake.nix b/flake.nix
825index 0177c835a23eadee0285a43f4c91823b8cc530bb..50d15f5df9ed4ab9a9676b93cab4e66d9c741ecb 100644
826--- a/flake.nix
827+++ b/flake.nix
828@@ -3,12 +3,14 @@ description = "My Home Manager Flake";
829
830 inputs = {
831 nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
832- gxctl.url = "git+ssh://git@github.com/grid-x/gxctl";
833 ghostty.url = "git+ssh://git@github.com/ghostty-org/ghostty";
834 home-manager = {
835 url = "github:nix-community/home-manager";
836 inputs.nixpkgs.follows = "nixpkgs";
837 };
838+
839+ gxctl.url = "git+ssh://git@github.com/grid-x/gxctl";
840+ edge-tools.url = "git+ssh://git@github.com/grid-x/edge-tools";
841 };
842
843 outputs = inputs @ {
844@@ -24,7 +26,19 @@ pkgs = import nixpkgs {
845 system = "x86_64-linux";
846 };
847 in {
848- "gabrielgio" = home-manager.lib.homeManagerConfiguration {
849+ "gabrielgio@workstation.lan" = home-manager.lib.homeManagerConfiguration {
850+ inherit pkgs;
851+
852+ extraSpecialArgs = {
853+ inherit inputs;
854+ };
855+
856+ modules = [
857+ ./home.nix
858+ ./secrets/gridx/gridx.nix
859+ ];
860+ };
861+ "gabrielgio@homestation.lan" = home-manager.lib.homeManagerConfiguration {
862 inherit pkgs;
863
864 extraSpecialArgs = {
865diff --git a/home.nix b/home.nix
866index 6e37e3ab0bc2d994aa6cf3c23c5003bb86f76162..12a5100f4807e6dc5b111e664f352ce463f415e9 100644
867--- a/home.nix
868+++ b/home.nix
869@@ -8,36 +8,28 @@ nixpkgs.config.allowUnfree = true;
870 home.username = "gabrielgio";
871 home.homeDirectory = "/home/gabrielgio";
872 home.stateVersion = "25.05";
873- home.packages = with pkgs;
874- [
875- alejandra
876- awscli2
877- comma
878- grpcurl
879- jujutsu
880- k6
881- kubectl
882- ngrok
883- nix-index
884- nixd
885- protoscope
886- python312Packages.cssbeautifier
887- ssm-session-manager-plugin
888- streamlink
889- terraform
890- terraform-ls
891- vale
892- yaml-language-server
893- ]
894- ++ (
895- if hostname != "workstation.lan"
896- then [
897- inputs.gxctl.packages.${pkgs.system}.gxctl
898- inputs.gxctl.packages.${pkgs.system}.gxssh
899- inputs.gxctl.packages.${pkgs.system}.gxscp
900- ]
901- else []
902- );
903+ home.packages = with pkgs; [
904+ alejandra
905+ awscli2
906+ comma
907+ gofumpt
908+ grpcurl
909+ home-manager
910+ jujutsu
911+ k6
912+ kubectl
913+ ngrok
914+ nix-index
915+ nixd
916+ protoscope
917+ python312Packages.cssbeautifier
918+ ssm-session-manager-plugin
919+ streamlink
920+ terraform
921+ terraform-ls
922+ vale
923+ yaml-language-server
924+ ];
925
926 programs = {
927 direnv = {
928diff --git a/niri.nix b/niri.nix
929index 5c131dab176f6c76e2f3e5cd162dd4a2f2ecdadf..b70e76daa8a2e812571fb4ec778c55379721bf20 100644
930--- a/niri.nix
931+++ b/niri.nix
932@@ -61,14 +61,7 @@ backdrop-color "#DDDDDD"
933 }
934
935 spawn-at-startup "dbus-update-activation-environment" "WAYLAND_DISPLAY" "XDG_CURRENT_DESKTOP=sway"
936- //spawn-at-startup "/usr/libexec/pipewire-launcher"
937- //spawn-at-startup "openrc --user gui"
938-
939- spawn-at-startup "waybar"
940- spawn-at-startup "mako"
941- spawn-at-startup "nm-applet"
942- spawn-at-startup "blueman-applet"
943- spawn-at-startup "swaybg" "-c" "DDDDDD"
944+ spawn-at-startup "openrc --user gui"
945
946 spawn-at-startup "xwayland-satellite" ":12"
947 environment {
948diff --git a/result b/result
949deleted file mode 120000
950index ea9e9e5a55a19a0b4174073d3410f3933d22539e..0000000000000000000000000000000000000000
951--- a/result
952+++ /dev/null
953@@ -1 +0,0 @@
954-/nix/store/aq1cwsxfms57sz105a47kfpkacxm2ca2-home-manager-generation
955\ No newline at end of file
956diff --git a/secrets/gridx/aerc.nix b/secrets/gridx/aerc.nix
957new file mode 100644
958index 0000000000000000000000000000000000000000..5f99eb20d02604ed4efe12e7baa0e58341774fd5
959Binary files /dev/null and b/secrets/gridx/aerc.nix differ
960diff --git a/secrets/gridx/gridx.nix b/secrets/gridx/gridx.nix
961new file mode 100644
962index 0000000000000000000000000000000000000000..b0878258dc1686996c45315900df9d7b6f19e51a
963Binary files /dev/null and b/secrets/gridx/gridx.nix differ