Compare commits
130 Commits
66b4931d08
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
05b237f49c
|
|||
|
daee9c3246
|
|||
|
70ca2d3323
|
|||
|
86ac120d54
|
|||
|
201436ef28
|
|||
|
d453bc1bdd
|
|||
|
b8be06a8c7
|
|||
|
d85434dff2
|
|||
|
b0fe816465
|
|||
|
eaf550ded6
|
|||
|
a877826a68
|
|||
|
1b0bd9b7f8
|
|||
|
6c12b580e3
|
|||
|
fae2e84c99
|
|||
|
2e11bf7f31
|
|||
|
b6350e1170
|
|||
|
00c98599d8
|
|||
|
52af5b3f47
|
|||
|
99d51e77f0
|
|||
|
32174c3ccb
|
|||
|
eab28b1c44
|
|||
|
9d663b346e
|
|||
|
de8da30b71
|
|||
|
5c7b5c8e9d
|
|||
|
d8b380a9c0
|
|||
|
b0650b59b7
|
|||
|
ee5bba25b1
|
|||
|
13b65784b0
|
|||
|
c767e881ba
|
|||
|
7d93b84ca5
|
|||
|
587412b0be
|
|||
|
8950ee4644
|
|||
|
e2b9e27504
|
|||
|
fc15c1369f
|
|||
|
c505a71ab1
|
|||
|
d5eda18b84
|
|||
|
d6f7dab062
|
|||
|
d0de943224
|
|||
|
22823ff55f
|
|||
|
d1ceb9fa6f
|
|||
|
f776045d82
|
|||
|
ff4192b3fc
|
|||
|
d8e3ed76ee
|
|||
|
c4656c11d5
|
|||
|
f648c7444d
|
|||
|
bc6e196548
|
|||
|
498154eb15
|
|||
|
83a5e1b278
|
|||
|
70ddbb1bf5
|
|||
|
94f98ae34c
|
|||
|
aae9549f8a
|
|||
|
1052b54dfb
|
|||
|
0e3b77cc59
|
|||
|
39352b10bc
|
|||
|
c31a6cc09e
|
|||
|
cb031d3d66
|
|||
|
5cbb10b245
|
|||
|
8297cd01f4
|
|||
|
2b912cc38e
|
|||
|
60317ef61e
|
|||
|
0a868cf3dd
|
|||
|
3c6c3592a3
|
|||
|
2b38c0ecdc
|
|||
|
980f5feadd
|
|||
|
3da2197134
|
|||
|
78a02d9e3d
|
|||
|
91f3c88347
|
|||
|
9571c1a321
|
|||
|
3614d12466
|
|||
|
a29b92984d
|
|||
|
8f3ad44d34
|
|||
|
43fce477fd
|
|||
|
3b5f4b8fa4
|
|||
|
681cbcb117
|
|||
|
b52af2bea8
|
|||
|
9cc7c52061
|
|||
|
d83ca9a3f5
|
|||
|
72cff90ae0
|
|||
|
e34911fda4
|
|||
|
f51e6789f3
|
|||
|
ac129e39ed
|
|||
|
a022550c4e
|
|||
|
237612fd4c
|
|||
|
61325ee8d7
|
|||
|
ee4fce8541
|
|||
|
63f6aa0f65
|
|||
|
896310a2d4
|
|||
|
d2f7e1a376
|
|||
|
a6a67b8543
|
|||
|
b65bf47e90
|
|||
|
ae0c0f0914
|
|||
|
507ec8ffd9
|
|||
|
6c96ba0e0f
|
|||
|
67102b0967
|
|||
|
2fc8710264
|
|||
|
c5c0b7b797
|
|||
|
fd58681a07
|
|||
|
1d6b1fb341
|
|||
|
6edbeb167b
|
|||
|
fecc2d8652
|
|||
|
5419adee40
|
|||
|
9132392d92
|
|||
|
9bb15ae4d2
|
|||
|
8708d16dac
|
|||
|
567657e500
|
|||
|
85b8906afa
|
|||
|
f6b9e81440
|
|||
|
7d95bb4a75
|
|||
|
accb90ca63
|
|||
|
f15f664b4e
|
|||
|
94f261cf6f
|
|||
|
c9c98cd6e6
|
|||
|
dd9bcc009a
|
|||
|
2c6036f39f
|
|||
|
c3e1e8d1b9
|
|||
|
9ae8b73a02
|
|||
|
6d7564e860
|
|||
|
f083a22def
|
|||
|
c72cc5de43
|
|||
|
bcd65b482f
|
|||
|
f91b94872d
|
|||
|
fa1b610684
|
|||
|
3eaae0b22d
|
|||
|
eb3b4f7531
|
|||
|
c432a022cf
|
|||
|
1f6d73234d
|
|||
|
4c1a40a877
|
|||
|
2e70156bae
|
|||
|
662d8068f9
|
|||
|
b218f3aaea
|
397
flake.lock
generated
397
flake.lock
generated
@@ -1,43 +1,34 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"chaotic": {
|
"blueprint": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-schemas": "flake-schemas",
|
|
||||||
"home-manager": [
|
|
||||||
"home-manager"
|
|
||||||
],
|
|
||||||
"jovian": [
|
|
||||||
"jovian"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
"llm-agents",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"rust-overlay": [
|
"systems": "systems_3"
|
||||||
"rust-overlay"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764031508,
|
"lastModified": 1771437256,
|
||||||
"narHash": "sha256-4Yh26aEgO1O0kV6qhW+Uw/CzAQTSbGkBGuiw6OkI/Ws=",
|
"narHash": "sha256-bLqwib+rtyBRRVBWhMuBXPCL/OThfokA+j6+uH7jDGU=",
|
||||||
"owner": "chaotic-cx",
|
"owner": "numtide",
|
||||||
"repo": "nyx",
|
"repo": "blueprint",
|
||||||
"rev": "2d5f96ca62d47d93d67fa7267e92aa2f660a3a36",
|
"rev": "06ee7190dc2620ea98af9eb225aa9627b68b0e33",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "chaotic-cx",
|
"owner": "numtide",
|
||||||
"ref": "nyxpkgs-unstable",
|
"repo": "blueprint",
|
||||||
"repo": "nyx",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"crane": {
|
"crane": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763938834,
|
"lastModified": 1771121070,
|
||||||
"narHash": "sha256-j8iB0Yr4zAvQLueCZ5abxfk6fnG/SJ5JnGUziETjwfg=",
|
"narHash": "sha256-aIlv7FRXF9q70DNJPI237dEDAznSKaXmL5lfK/Id/bI=",
|
||||||
"owner": "ipetkov",
|
"owner": "ipetkov",
|
||||||
"repo": "crane",
|
"repo": "crane",
|
||||||
"rev": "d9e753122e51cee64eb8d2dddfe11148f339f5a2",
|
"rev": "a2812c19f1ed2e5ed5ce2ef7109798b575c180e1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -55,11 +46,11 @@
|
|||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762286984,
|
"lastModified": 1770019181,
|
||||||
"narHash": "sha256-9I2H9x5We6Pl+DBYHjR1s3UT8wgwcpAH03kn9CqtdQc=",
|
"narHash": "sha256-hwsYgDnby50JNVpTRYlF3UR/Rrpt01OrxVuryF40CFY=",
|
||||||
"owner": "serokell",
|
"owner": "serokell",
|
||||||
"repo": "deploy-rs",
|
"repo": "deploy-rs",
|
||||||
"rev": "9c870f63e28ec1e83305f7f6cb73c941e699f74f",
|
"rev": "77c906c0ba56aabdbc72041bf9111b565cdd6171",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -75,11 +66,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1746728054,
|
"lastModified": 1768920986,
|
||||||
"narHash": "sha256-eDoSOhxGEm2PykZFa/x9QG5eTH0MJdiJ9aR00VAofXE=",
|
"narHash": "sha256-CNzzBsRhq7gg4BMBuTDObiWDH/rFYHEuDRVOwCcwXw4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "ff442f5d1425feb86344c028298548024f21256d",
|
"rev": "de5708739256238fb912c62f03988815db89ec9a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -92,11 +83,11 @@
|
|||||||
"doomemacs": {
|
"doomemacs": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762312706,
|
"lastModified": 1771637851,
|
||||||
"narHash": "sha256-R3I8NErGSCd6kSTUBNe7SNcRDUtJ1xl8zvD13C6SrRg=",
|
"narHash": "sha256-GmrqCINhfdO3EthpVG8ZsoTdfzj3vaEdz9soJwiI2HY=",
|
||||||
"owner": "doomemacs",
|
"owner": "doomemacs",
|
||||||
"repo": "doomemacs",
|
"repo": "doomemacs",
|
||||||
"rev": "ead254e15269bf8564625df4c8d2af6690a0df49",
|
"rev": "ac649cce2abd1eb9d6d3f161928f9a7665b63310",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -115,11 +106,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764088169,
|
"lastModified": 1771728721,
|
||||||
"narHash": "sha256-l0zJRJg8Fm4pcewILYqw/0jkLdMn2Kvl2SLG9xK9HB8=",
|
"narHash": "sha256-03w1Ka71dJlerySoIT5ZGm/+bx0qONZIjELY4ghkxIo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "ea48b8bca040158fe8559179a9a71b462cdeda03",
|
"rev": "d7e50ce0c6e1ca698217a251d432799683d23831",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -147,31 +138,53 @@
|
|||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747046372,
|
"lastModified": 1767039857,
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||||
"owner": "edolstra",
|
"owner": "NixOS",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "edolstra",
|
"owner": "NixOS",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-schemas": {
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1721999734,
|
"lastModified": 1710146030,
|
||||||
"narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=",
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
"rev": "0a5c42297d870156d9c57d8f99e476b738dcd982",
|
"owner": "numtide",
|
||||||
"revCount": 75,
|
"repo": "flake-utils",
|
||||||
"type": "tarball",
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"owner": "numtide",
|
||||||
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz"
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_5"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gitignore": {
|
"gitignore": {
|
||||||
@@ -203,11 +216,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764075860,
|
"lastModified": 1771683283,
|
||||||
"narHash": "sha256-KYEIHCBBw+/lwKsJNRNoUxBB4ZY2LK0G0T8f+0i65q0=",
|
"narHash": "sha256-WxAEkAbo8dP7qiyPM6VN4ZGAxfuBVlNBNPkrqkrXVEc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "295d90e22d557ccc3049dc92460b82f372cd3892",
|
"rev": "c6ed3eab64d23520bcbb858aa53fe2b533725d4a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -217,12 +230,20 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"impermanence": {
|
"impermanence": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": [
|
||||||
|
"home-manager"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737831083,
|
"lastModified": 1769548169,
|
||||||
"narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=",
|
"narHash": "sha256-03+JxvzmfwRu+5JafM0DLbxgHttOQZkUtDWBmeUkN8Y=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "impermanence",
|
"repo": "impermanence",
|
||||||
"rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170",
|
"rev": "7b1d382faf603b6d264f58627330f9faa5cba149",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -231,7 +252,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"jovian": {
|
"jovian-nixos": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nix-github-actions": "nix-github-actions",
|
"nix-github-actions": "nix-github-actions",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -239,19 +260,41 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763714684,
|
"lastModified": 1772169624,
|
||||||
"narHash": "sha256-ZNJPAaeSYQTDgvwwE8XHhCz4HiHqYoUyoXdoBE2nxug=",
|
"narHash": "sha256-YHaTNllFu90LdXqiNNoeDFnKwioa6lT+gXGGBOAvlfo=",
|
||||||
"owner": "Jovian-Experiments",
|
"owner": "Titaniumtown",
|
||||||
"repo": "Jovian-NixOS",
|
"repo": "Jovian-NixOS",
|
||||||
"rev": "6178d787ee61b8586fdb0ccb8644fbfd5317d0f3",
|
"rev": "68f2a686a27f0b6899b085fd6e653fffa59db444",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "Jovian-Experiments",
|
"owner": "Titaniumtown",
|
||||||
|
"ref": "pr/fix-sddm-switch-to-desktop",
|
||||||
"repo": "Jovian-NixOS",
|
"repo": "Jovian-NixOS",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"json2steamshortcut": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763116114,
|
||||||
|
"narHash": "sha256-0gI7PnQUDZTFjhHgg0eP1SCJOvW5gw3sQ2UAMspipnQ=",
|
||||||
|
"owner": "ChrisOboe",
|
||||||
|
"repo": "json2steamshortcut",
|
||||||
|
"rev": "b829fe2871fd1736d2406724e4abbb492527cb08",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ChrisOboe",
|
||||||
|
"repo": "json2steamshortcut",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"lanzaboote": {
|
"lanzaboote": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"crane": "crane",
|
"crane": "crane",
|
||||||
@@ -259,14 +302,16 @@
|
|||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"pre-commit": "pre-commit",
|
"pre-commit": "pre-commit",
|
||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": [
|
||||||
|
"rust-overlay"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763975256,
|
"lastModified": 1771492583,
|
||||||
"narHash": "sha256-IhdDL+0YwlLz5Ty0EnAxWN/btemN9FxcQbYs/V/8jvs=",
|
"narHash": "sha256-nQzvnU4BGu8dA6BsPPCqmVcab/3ebVmHtX3ZWbW3Hxc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "lanzaboote",
|
"repo": "lanzaboote",
|
||||||
"rev": "6803b15c4ab9df2dcc478254b4adb55524746ac7",
|
"rev": "5e9380994665ef66c87ab8e22c913ff837174ce4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -275,6 +320,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"llm-agents": {
|
||||||
|
"inputs": {
|
||||||
|
"blueprint": "blueprint",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1771730908,
|
||||||
|
"narHash": "sha256-AkmTeSJSGniBsCbc+Oy5emrQflyTzUweOVcQLf69z1A=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "llm-agents.nix",
|
||||||
|
"rev": "352ee8c439a3c2c7987f6cfaebddcf87c924959a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "llm-agents.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"niri": {
|
"niri": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"niri-stable": "niri-stable",
|
"niri-stable": "niri-stable",
|
||||||
@@ -289,11 +356,11 @@
|
|||||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764081740,
|
"lastModified": 1771638124,
|
||||||
"narHash": "sha256-eeQzyHJjSQTxcjSCy1OgOgNAUjdBnIjSYntfJK0Z4+I=",
|
"narHash": "sha256-rIF69lE48tBvOMFiIyserOa0MF3SXh1ZiRqv7WqlUew=",
|
||||||
"owner": "sodiboo",
|
"owner": "sodiboo",
|
||||||
"repo": "niri-flake",
|
"repo": "niri-flake",
|
||||||
"rev": "e579b1a51f26341eeeb41e32d5b5c6e2a032e339",
|
"rev": "a1dac2b08c329af22200104c3c4b18de5ded6034",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -322,11 +389,11 @@
|
|||||||
"niri-unstable": {
|
"niri-unstable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764046829,
|
"lastModified": 1771305475,
|
||||||
"narHash": "sha256-XFSR43nAKXDMhtNa+V2sd6Url/bCPGwawkmCqUKKRfI=",
|
"narHash": "sha256-lqweVTwHhYc+9T33cysp38gVwxaibGJHriOPZXWyhCY=",
|
||||||
"owner": "YaLTeR",
|
"owner": "YaLTeR",
|
||||||
"repo": "niri",
|
"repo": "niri",
|
||||||
"rev": "54c7fdcd1adcfade596aca1070062f3f0fb5d4d0",
|
"rev": "a2a52911757cb3b497db9407592f9b4c439571ea",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -344,14 +411,14 @@
|
|||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_2"
|
"systems": "systems_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764060317,
|
"lastModified": 1771663801,
|
||||||
"narHash": "sha256-ngeRNhpBYCuMgG+wbiwDv1lp4f1Tda3EHjnfxfsz7Tw=",
|
"narHash": "sha256-gh0OVgAERhv1uSXzTgd0p7GioEG1Jg44FVxc72aM//A=",
|
||||||
"owner": "marienz",
|
"owner": "marienz",
|
||||||
"repo": "nix-doom-emacs-unstraightened",
|
"repo": "nix-doom-emacs-unstraightened",
|
||||||
"rev": "8342ea98bf04d41447d3b7513760232407d351e0",
|
"rev": "0bf7a181e28a8c3d1e89b18f79b15d516f2fb670",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -362,11 +429,11 @@
|
|||||||
},
|
},
|
||||||
"nix-flatpak": {
|
"nix-flatpak": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754777568,
|
"lastModified": 1768656715,
|
||||||
"narHash": "sha256-0bBqT+3XncgF8F03RFAamw9vdf0VmaDoIJLTGkjfQZs=",
|
"narHash": "sha256-Sbh037scxKFm7xL0ahgSCw+X2/5ZKeOwI2clqrYr9j4=",
|
||||||
"owner": "gmodena",
|
"owner": "gmodena",
|
||||||
"repo": "nix-flatpak",
|
"repo": "nix-flatpak",
|
||||||
"rev": "62f636b87ef6050760a8cb325cadb90674d1e23e",
|
"rev": "123fe29340a5b8671367055b75a6e7c320d6f89a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -378,7 +445,7 @@
|
|||||||
"nix-github-actions": {
|
"nix-github-actions": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"jovian",
|
"jovian-nixos",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -399,11 +466,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764080039,
|
"lastModified": 1771423359,
|
||||||
"narHash": "sha256-b1MtLQsQc4Ji1u08f+C6g5XrmLPkJQ1fhNkCt+0AERQ=",
|
"narHash": "sha256-yRKJ7gpVmXbX2ZcA8nFi6CMPkJXZGjie2unsiMzj3Ig=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "da17006633ca9cda369be82893ae36824a2ddf1a",
|
"rev": "740a22363033e9f1bb6270fbfb5a9574067af15b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -415,11 +482,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763966396,
|
"lastModified": 1771369470,
|
||||||
"narHash": "sha256-6eeL1YPcY1MV3DDStIDIdy/zZCDKgHdkCmsrLJFiZf0=",
|
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5ae3b07d8d6527c42f17c876e404993199144b6a",
|
"rev": "0182a361324364ae3f436a63005877674cf45efb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -429,6 +496,48 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"noctalia": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1771732280,
|
||||||
|
"narHash": "sha256-pwfFptl7m1Xu+I7eSjapRfIBtVH9rsLpzuaCouraz9U=",
|
||||||
|
"owner": "noctalia-dev",
|
||||||
|
"repo": "noctalia-shell",
|
||||||
|
"rev": "341c5ee138d688ac1a7ffb1543ce2a3c9801aa34",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "noctalia-dev",
|
||||||
|
"repo": "noctalia-shell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"oh-my-opencode": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770618333,
|
||||||
|
"narHash": "sha256-7Y9e2nrsi4yKwBXZ7RUF1B5FN4RJUT4rYI1SvA0vDEw=",
|
||||||
|
"owner": "yebei199",
|
||||||
|
"repo": "oh-my-opencode",
|
||||||
|
"rev": "bde5264e4c3a91ded482acd35c8ed239d21d1de2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "yebei199",
|
||||||
|
"ref": "nix",
|
||||||
|
"repo": "oh-my-opencode",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"pre-commit": {
|
"pre-commit": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
@@ -439,11 +548,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763741496,
|
"lastModified": 1770726378,
|
||||||
"narHash": "sha256-uIRqs/H18YEtMOn1OkbnPH+aNTwXKx+iU3qnxEkVUd0=",
|
"narHash": "sha256-kck+vIbGOaM/dHea7aTBxdFYpeUl/jHOy5W3eyRvVx8=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "pre-commit-hooks.nix",
|
"repo": "pre-commit-hooks.nix",
|
||||||
"rev": "20e71a403c5de9ce5bd799031440da9728c1cda1",
|
"rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -454,56 +563,38 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"chaotic": "chaotic",
|
|
||||||
"deploy-rs": "deploy-rs",
|
"deploy-rs": "deploy-rs",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"emacs-overlay": "emacs-overlay",
|
"emacs-overlay": "emacs-overlay",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"impermanence": "impermanence",
|
"impermanence": "impermanence",
|
||||||
"jovian": "jovian",
|
"jovian-nixos": "jovian-nixos",
|
||||||
|
"json2steamshortcut": "json2steamshortcut",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
|
"llm-agents": "llm-agents",
|
||||||
"niri": "niri",
|
"niri": "niri",
|
||||||
"nix-doom-emacs-unstraightened": "nix-doom-emacs-unstraightened",
|
"nix-doom-emacs-unstraightened": "nix-doom-emacs-unstraightened",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"rust-overlay": "rust-overlay_2",
|
"noctalia": "noctalia",
|
||||||
|
"oh-my-opencode": "oh-my-opencode",
|
||||||
|
"rust-overlay": "rust-overlay",
|
||||||
"zen-browser": "zen-browser"
|
"zen-browser": "zen-browser"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"lanzaboote",
|
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763865987,
|
"lastModified": 1771729765,
|
||||||
"narHash": "sha256-DJpzM8Jz3B0azJcAoF+YFHr8rEbxYLJ0wy1kWZ29HOw=",
|
"narHash": "sha256-HNsDSR5bhLSrIpi9bTb2uTK1qnPo1xFSBxs6YmFyprk=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "042d905c01a6eec3bcae8530dacb19cda9758a63",
|
"rev": "be926cb1a76e8450ab2b92121b2e88d09fa4d41c",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"rust-overlay_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1764038373,
|
|
||||||
"narHash": "sha256-M6w2wNBRelcavoDAyFL2iO4NeWknD40ASkH1S3C0YGM=",
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"rev": "ab3536fe850211a96673c6ffb2cb88aab8071cc9",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -542,6 +633,72 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"llm-agents",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770228511,
|
||||||
|
"narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "337a4fe074be1042a35086f15481d763b8ddc0e7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
@@ -580,11 +737,11 @@
|
|||||||
"xwayland-satellite-unstable": {
|
"xwayland-satellite-unstable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763704521,
|
"lastModified": 1771195969,
|
||||||
"narHash": "sha256-ceYEV6PnvUN8Zixao4gpPuN+VT3B0SlAXKuPNHZhqUY=",
|
"narHash": "sha256-BUE41HjLIGPjq3U8VXPjf8asH8GaMI7FYdgrIHKFMXA=",
|
||||||
"owner": "Supreeeme",
|
"owner": "Supreeeme",
|
||||||
"repo": "xwayland-satellite",
|
"repo": "xwayland-satellite",
|
||||||
"rev": "f379ff5722a821212eb59ada9cf8e51cb3654aad",
|
"rev": "536bd32efc935bf876d6de385ec18a1b715c9358",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -603,11 +760,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764015829,
|
"lastModified": 1771719171,
|
||||||
"narHash": "sha256-Oi3D37fFYvYRC4cA2voW8kICzmtUCYMoGSuyYuazDZ8=",
|
"narHash": "sha256-ZDE3//9Hg+9X5xXcDJ4k/d6qcOVQ4MrTmvf1zv/omZY=",
|
||||||
"owner": "0xc000022070",
|
"owner": "0xc000022070",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "011760d40ec6ac8af6b078d58def3c7d2d994a53",
|
"rev": "2a71f2e720db962f2522b38704e23e11163e91ae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
41
flake.nix
41
flake.nix
@@ -7,6 +7,7 @@
|
|||||||
lanzaboote = {
|
lanzaboote = {
|
||||||
url = "github:nix-community/lanzaboote";
|
url = "github:nix-community/lanzaboote";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.rust-overlay.follows = "rust-overlay";
|
||||||
};
|
};
|
||||||
|
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
@@ -54,6 +55,8 @@
|
|||||||
|
|
||||||
impermanence = {
|
impermanence = {
|
||||||
url = "github:nix-community/impermanence";
|
url = "github:nix-community/impermanence";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.home-manager.follows = "home-manager";
|
||||||
};
|
};
|
||||||
|
|
||||||
deploy-rs = {
|
deploy-rs = {
|
||||||
@@ -61,22 +64,31 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
jovian = {
|
jovian-nixos = {
|
||||||
url = "github:Jovian-Experiments/Jovian-NixOS";
|
url = "github:Titaniumtown/Jovian-NixOS/pr/fix-sddm-switch-to-desktop";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
chaotic = {
|
noctalia = {
|
||||||
url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
url = "github:noctalia-dev/noctalia-shell";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs = {
|
|
||||||
nixpkgs.follows = "nixpkgs";
|
|
||||||
home-manager.follows = "home-manager";
|
|
||||||
rust-overlay.follows = "rust-overlay";
|
|
||||||
jovian.follows = "jovian";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
llm-agents = {
|
||||||
|
url = "github:numtide/llm-agents.nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
# wait for https://github.com/code-yeongyu/oh-my-opencode/pull/921 to be merged
|
||||||
|
oh-my-opencode = {
|
||||||
|
url = "github:yebei199/oh-my-opencode/nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
json2steamshortcut = {
|
||||||
|
url = "github:ChrisOboe/json2steamshortcut";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
@@ -87,8 +99,7 @@
|
|||||||
nixos-hardware,
|
nixos-hardware,
|
||||||
home-manager,
|
home-manager,
|
||||||
deploy-rs,
|
deploy-rs,
|
||||||
jovian,
|
jovian-nixos,
|
||||||
chaotic,
|
|
||||||
...
|
...
|
||||||
}@inputs:
|
}@inputs:
|
||||||
let
|
let
|
||||||
@@ -101,7 +112,7 @@
|
|||||||
niri-package = inputs.niri.packages.${system}.niri-unstable;
|
niri-package = inputs.niri.packages.${system}.niri-unstable;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
formatter.${system} = nixpkgs.legacyPackages.${system}.nixfmt-rfc-style;
|
formatter.${system} = nixpkgs.legacyPackages.${system}.nixfmt-tree;
|
||||||
|
|
||||||
nixosConfigurations = nixpkgs.lib.foldl' (
|
nixosConfigurations = nixpkgs.lib.foldl' (
|
||||||
config: hostname:
|
config: hostname:
|
||||||
@@ -117,9 +128,7 @@
|
|||||||
;
|
;
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
chaotic.nixosModules.default
|
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
jovian.nixosModules.default
|
|
||||||
(
|
(
|
||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,13 +10,16 @@
|
|||||||
./progs/niri.nix
|
./progs/niri.nix
|
||||||
|
|
||||||
# statusbar
|
# statusbar
|
||||||
./progs/eww/eww.nix
|
# ./progs/eww/eww.nix
|
||||||
|
|
||||||
# lockscreen
|
# lockscreen
|
||||||
./progs/swaylock.nix
|
./progs/swaylock.nix
|
||||||
|
|
||||||
# notification daemon
|
# notification daemon
|
||||||
./progs/dunst.nix
|
./progs/dunst.nix
|
||||||
|
|
||||||
|
# noctalia desktop shell
|
||||||
|
./progs/noctalia.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
pkg:
|
pkg:
|
||||||
builtins.elem (lib.getName pkg) [
|
builtins.elem (lib.getName pkg) [
|
||||||
"apple_cursor"
|
"apple_cursor"
|
||||||
|
"grayjay"
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages =
|
home.packages =
|
||||||
@@ -34,6 +35,7 @@
|
|||||||
[
|
[
|
||||||
tor-browser
|
tor-browser
|
||||||
inputs.zen-browser.packages."${system}".twilight
|
inputs.zen-browser.packages."${system}".twilight
|
||||||
|
grayjay
|
||||||
]
|
]
|
||||||
|
|
||||||
# music library management
|
# music library management
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./gui.nix
|
./gui.nix
|
||||||
./desktop.nix
|
./desktop.nix
|
||||||
|
inputs.json2steamshortcut.homeModules.default
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
@@ -26,4 +27,18 @@
|
|||||||
obs-pipewire-audio-capture
|
obs-pipewire-audio-capture
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.steam-shortcuts = {
|
||||||
|
enable = true;
|
||||||
|
overwriteExisting = true;
|
||||||
|
steamUserId = lib.strings.toInt (lib.strings.trim (builtins.readFile ./secrets/steam-user-id));
|
||||||
|
shortcuts = [
|
||||||
|
{
|
||||||
|
AppName = "Prism Launcher";
|
||||||
|
Exe = "${pkgs.prismlauncher}/bin/prismlauncher";
|
||||||
|
Icon = "${pkgs.prismlauncher}/share/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg";
|
||||||
|
Tags = [ "Game" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
rust_pkgs = with pkgs; [
|
rust_pkgs = with pkgs; [
|
||||||
(rust-bin.stable.latest.default.override ({
|
(rust-bin.nightly.latest.default.override ({
|
||||||
extensions = [
|
extensions = [
|
||||||
"rust-src"
|
"rust-src"
|
||||||
"rust-analyzer"
|
"rust-analyzer"
|
||||||
@@ -147,7 +147,7 @@ in
|
|||||||
sshfs
|
sshfs
|
||||||
|
|
||||||
# nix formatter
|
# nix formatter
|
||||||
nixfmt-rfc-style
|
nixfmt-tree
|
||||||
|
|
||||||
# serial viewer
|
# serial viewer
|
||||||
minicom
|
minicom
|
||||||
@@ -160,7 +160,7 @@ in
|
|||||||
# microcontroller tooling
|
# microcontroller tooling
|
||||||
probe-rs-tools
|
probe-rs-tools
|
||||||
|
|
||||||
(python312.withPackages (
|
(python313.withPackages (
|
||||||
ps: with ps; [
|
ps: with ps; [
|
||||||
mypy # type checking
|
mypy # type checking
|
||||||
types-requests # add types for requests methods
|
types-requests # add types for requests methods
|
||||||
@@ -218,7 +218,7 @@ in
|
|||||||
|
|
||||||
# https://github.com/flamegraph-rs/flamegraph
|
# https://github.com/flamegraph-rs/flamegraph
|
||||||
home.file.".cargo/config.toml".text = ''
|
home.file.".cargo/config.toml".text = ''
|
||||||
[target.${lib.strings.removeSuffix "-linux" pkgs.system}-unknown-linux-gnu]
|
[target.${lib.strings.removeSuffix "-linux" pkgs.stdenv.hostPlatform.system}-unknown-linux-gnu]
|
||||||
linker = "${lib.getExe pkgs.clang}"
|
linker = "${lib.getExe pkgs.clang}"
|
||||||
rustflags = ["-Clink-arg=-Wl,--no-rosegment"]
|
rustflags = ["-Clink-arg=-Wl,--no-rosegment"]
|
||||||
'';
|
'';
|
||||||
@@ -230,6 +230,8 @@ in
|
|||||||
|
|
||||||
lfs.enable = true;
|
lfs.enable = true;
|
||||||
|
|
||||||
|
ignores = [ ".sisyphus" ];
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
init = {
|
init = {
|
||||||
# master -> main
|
# master -> main
|
||||||
|
|||||||
@@ -25,8 +25,10 @@
|
|||||||
emacs = pkgs.emacs-unstable-pgtk;
|
emacs = pkgs.emacs-unstable-pgtk;
|
||||||
extraPackages =
|
extraPackages =
|
||||||
epkgs:
|
epkgs:
|
||||||
|
with epkgs;
|
||||||
[
|
[
|
||||||
epkgs.dracula-theme
|
dracula-theme
|
||||||
|
treesit-grammars.with-all-grammars
|
||||||
]
|
]
|
||||||
++ (with pkgs; [
|
++ (with pkgs; [
|
||||||
shellcheck
|
shellcheck
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
{ pkgs, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
zsh
|
zsh
|
||||||
@@ -11,4 +16,25 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
configDir = ./config;
|
configDir = ./config;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.niri.settings.spawn-at-startup = [
|
||||||
|
{
|
||||||
|
command = [
|
||||||
|
(lib.getExe config.programs.eww.package)
|
||||||
|
"-c"
|
||||||
|
"${config.programs.eww.configDir}"
|
||||||
|
"open"
|
||||||
|
"statusbar"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
# swaybg works on more than just sway (sets a wallpaper)
|
||||||
|
{
|
||||||
|
command = [
|
||||||
|
(lib.getExe pkgs.swaybg)
|
||||||
|
"-i"
|
||||||
|
"${../wallpaper.png}"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,27 +60,6 @@ in
|
|||||||
|
|
||||||
xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite;
|
xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite;
|
||||||
|
|
||||||
spawn-at-startup = [
|
|
||||||
{
|
|
||||||
command = [
|
|
||||||
(lib.getExe config.programs.eww.package)
|
|
||||||
"-c"
|
|
||||||
"${config.programs.eww.configDir}"
|
|
||||||
"open"
|
|
||||||
"statusbar"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
# swaybg works on more than just sway (sets a wallpaper)
|
|
||||||
{
|
|
||||||
command = [
|
|
||||||
(lib.getExe pkgs.swaybg)
|
|
||||||
"-i"
|
|
||||||
"${../wallpaper.png}"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
window-rules = [
|
window-rules = [
|
||||||
{ draw-border-with-background = false; }
|
{ draw-border-with-background = false; }
|
||||||
{
|
{
|
||||||
|
|||||||
92
home-manager/progs/noctalia.nix
Normal file
92
home-manager/progs/noctalia.nix
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.noctalia.homeModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.noctalia-shell = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
bar = {
|
||||||
|
position = "top";
|
||||||
|
floating = true;
|
||||||
|
backgroundOpacity = 0.93;
|
||||||
|
};
|
||||||
|
general = {
|
||||||
|
animationSpeed = 1.5;
|
||||||
|
radiusRatio = 1.2;
|
||||||
|
};
|
||||||
|
colorSchemes = {
|
||||||
|
darkMode = true;
|
||||||
|
useWallpaperColors = true;
|
||||||
|
};
|
||||||
|
location = {
|
||||||
|
weatherEnabled = false;
|
||||||
|
};
|
||||||
|
wallpaper = {
|
||||||
|
enabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.file.".cache/noctalia/wallpapers.json" = {
|
||||||
|
text = builtins.toJSON {
|
||||||
|
defaultWallpaper = "${../wallpaper.png}";
|
||||||
|
wallpapers = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.niri.settings = {
|
||||||
|
spawn-at-startup = [
|
||||||
|
{
|
||||||
|
command = [
|
||||||
|
"noctalia-shell"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
]; # place noctalia overview wallpaper on the backdrop layer
|
||||||
|
layer-rules = [
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{ namespace = "^noctalia-overview*"; }
|
||||||
|
];
|
||||||
|
place-within-backdrop = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# allow notification actions and window activation from noctalia
|
||||||
|
debug = {
|
||||||
|
honor-xdg-activation-with-invalid-serial = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
binds =
|
||||||
|
with config.lib.niri.actions;
|
||||||
|
let
|
||||||
|
noctalia =
|
||||||
|
cmd:
|
||||||
|
[
|
||||||
|
"noctalia-shell"
|
||||||
|
"ipc"
|
||||||
|
"call"
|
||||||
|
]
|
||||||
|
++ (lib.splitString " " cmd);
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
|
||||||
|
# noctalia shell keybinds
|
||||||
|
"Mod+D".action = spawn (noctalia "launcher toggle");
|
||||||
|
"Mod+A".action = spawn (noctalia "controlCenter toggle");
|
||||||
|
"Mod+Escape".action = spawn (noctalia "sessionMenu toggle");
|
||||||
|
"Mod+Shift+X".action = spawn (noctalia "lockScreen lock");
|
||||||
|
"Mod+N".action = spawn (noctalia "notifications toggleHistory");
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,10 +2,108 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
# what model should be used in place of haiku?
|
||||||
|
haiku-model = "zai-coding-plan/glm-5";
|
||||||
|
|
||||||
|
opus-model = "zai-coding-plan/glm-5";
|
||||||
|
|
||||||
|
ohMyOpencodeConfig = {
|
||||||
|
"$schema" =
|
||||||
|
"https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json";
|
||||||
|
agents = {
|
||||||
|
sisyphus.model = opus-model;
|
||||||
|
sisyphus-junior.model = opus-model;
|
||||||
|
oracle = opus-model;
|
||||||
|
librarian.model = haiku-model;
|
||||||
|
explore.model = haiku-model;
|
||||||
|
multimodal-looker.model = "openrouter/qwen/qwen3-vl-30b-a3b-thinking";
|
||||||
|
|
||||||
|
prometheus.model = opus-model;
|
||||||
|
metis.model = opus-model;
|
||||||
|
momus = opus-model;
|
||||||
|
atlas.model = opus-model;
|
||||||
|
};
|
||||||
|
categories = {
|
||||||
|
visual-engineering.model = "openrouter/google/gemini-3-pro";
|
||||||
|
ultrabrain = opus-model;
|
||||||
|
artistry = {
|
||||||
|
model = "openrouter/google/gemini-3-pro";
|
||||||
|
variant = "max";
|
||||||
|
};
|
||||||
|
quick.model = haiku-model;
|
||||||
|
deep.model = opus-model;
|
||||||
|
writing.model = "openrouter/google/gemini-3-flash-preview";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
{
|
{
|
||||||
|
home.packages =
|
||||||
|
let
|
||||||
|
ohMyOpencode =
|
||||||
|
let
|
||||||
|
orig = inputs.oh-my-opencode.packages.${pkgs.stdenv.hostPlatform.system};
|
||||||
|
fixed-node_modules = orig.node_modules.overrideAttrs (_: {
|
||||||
|
outputHash = "sha256-qq/eEoxFELVdt4qaJkrw8XNZ/Ph/RJdsyIp7LteQE5A=";
|
||||||
|
});
|
||||||
|
in
|
||||||
|
orig.oh-my-opencode.overrideAttrs (_: {
|
||||||
|
buildPhase = ''
|
||||||
|
cp -r ${fixed-node_modules}/node_modules .
|
||||||
|
chmod -R u+w node_modules
|
||||||
|
patchShebangs node_modules/
|
||||||
|
export HOME=$(mktemp -d)
|
||||||
|
bun run build
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
in
|
||||||
|
[
|
||||||
|
ohMyOpencode
|
||||||
|
pkgs.playwright-driver.browsers
|
||||||
|
];
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
PLAYWRIGHT_BROWSERS_PATH = "${pkgs.playwright-driver.browsers}";
|
||||||
|
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = "1";
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile."opencode/oh-my-opencode.json".text = builtins.toJSON ohMyOpencodeConfig;
|
||||||
|
|
||||||
|
xdg.configFile."opencode/skills/playwright.md".text =
|
||||||
|
let
|
||||||
|
browsers = pkgs.playwright-driver.browsers;
|
||||||
|
chromiumDir = builtins.head (
|
||||||
|
builtins.filter (n: builtins.match "chromium-[0-9]+" n != null) (
|
||||||
|
builtins.attrNames browsers.passthru.entries
|
||||||
|
)
|
||||||
|
);
|
||||||
|
chromiumPath = "${browsers}/${chromiumDir}/chrome-linux64/chrome";
|
||||||
|
in
|
||||||
|
''
|
||||||
|
---
|
||||||
|
name: playwright
|
||||||
|
description: "MUST USE for any browser-related tasks. Browser automation via Playwright MCP - verification, browsing, information gathering, web scraping, testing, screenshots, and all browser interactions."
|
||||||
|
mcp:
|
||||||
|
playwright:
|
||||||
|
command: npx
|
||||||
|
args:
|
||||||
|
- "@playwright/mcp@latest"
|
||||||
|
- "--executable-path"
|
||||||
|
- "${chromiumPath}"
|
||||||
|
- "--user-data-dir"
|
||||||
|
- "${config.home.homeDirectory}/.cache/playwright-mcp"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Playwright Browser Automation
|
||||||
|
|
||||||
|
This skill provides browser automation capabilities via the Playwright MCP server.
|
||||||
|
'';
|
||||||
|
|
||||||
programs.opencode = {
|
programs.opencode = {
|
||||||
|
package = inputs.llm-agents.packages.${pkgs.stdenv.targetPlatform.system}.opencode;
|
||||||
enable = true;
|
enable = true;
|
||||||
rules = ''
|
rules = ''
|
||||||
You are an intelligent and observant agent.
|
You are an intelligent and observant agent.
|
||||||
@@ -18,34 +116,84 @@
|
|||||||
## Misc
|
## Misc
|
||||||
For long-running commands, make sure you set the timeout of the Bash tool provided to a larger value.
|
For long-running commands, make sure you set the timeout of the Bash tool provided to a larger value.
|
||||||
Do NOT read secret files. Do not directly read files that are api keys or are contextually sensitive.
|
Do NOT read secret files. Do not directly read files that are api keys or are contextually sensitive.
|
||||||
|
Do NOT run `skill_mcp [mcp_name=playwright, tool_name=browser_install]` as browsers are provided by NixOS via PLAYWRIGHT_BROWSERS_PATH.
|
||||||
|
|
||||||
## Behavior
|
## Behavior
|
||||||
Do not be sycophantic in your responses.
|
Do not be sycophantic in your responses.
|
||||||
Do not use emojis unless explicitly asked.
|
Do not use emojis unless explicitly asked to. This includes in code.
|
||||||
|
Use Test Driven Development methodology.
|
||||||
|
|
||||||
## Nix
|
## Nix
|
||||||
For using `nix build` for any test, always append `-L --rebuild`. Build results are cached and may not behave as expected.
|
For using `nix build` append `-L` to get better visibility into the logs.
|
||||||
|
If you get an error that a file can't be found, always try to `git add` the file before trying other troubleshooting steps.
|
||||||
|
|
||||||
|
|
||||||
|
## Android UI Interaction Workflow Summary
|
||||||
|
1. Taking Screenshots
|
||||||
|
adb exec-out screencap -p > /tmp/screen.png
|
||||||
|
Captures the current screen state as a PNG image.
|
||||||
|
|
||||||
|
2. Analyzing Screenshots
|
||||||
|
I delegate screenshot analysis to an explore agent rather than analyzing images directly:
|
||||||
|
mcp_task(subagent_type="explore", prompt="Analyze /tmp/screen.png. What screen is this? What elements are visible?")
|
||||||
|
The agent describes the UI, identifies elements, and estimates Y coordinates.
|
||||||
|
|
||||||
|
3. Getting Precise Element Coordinates
|
||||||
|
UI Automator dump - extracts the full UI hierarchy as XML:
|
||||||
|
adb shell uiautomator dump /sdcard/ui.xml && adb pull /sdcard/ui.xml /tmp/ui.xml
|
||||||
|
Then grep for specific elements:
|
||||||
|
# Find by text
|
||||||
|
grep -oP 'text="Login".*?bounds="[^"]*"' /tmp/ui.xml
|
||||||
|
# Find by class
|
||||||
|
grep -oP 'class="android.widget.EditText".*?bounds="[^"]*"' /tmp/ui.xml
|
||||||
|
Bounds format: [left,top][right,bottom] → tap center: ((left+right)/2, (top+bottom)/2)
|
||||||
|
|
||||||
|
4. Tapping Elements
|
||||||
|
adb shell input tap X Y
|
||||||
|
Where X, Y are pixel coordinates from the bounds.
|
||||||
|
|
||||||
|
5. Text Input
|
||||||
|
adb shell input text "some_text"
|
||||||
|
Note: Special characters need escaping (\!, \;, etc.)
|
||||||
|
|
||||||
|
6. Other Gestures
|
||||||
|
# Swipe/scroll
|
||||||
|
adb shell input swipe startX startY endX endY duration_ms
|
||||||
|
# Key events
|
||||||
|
adb shell input keyevent KEYCODE_BACK
|
||||||
|
adb shell input keyevent KEYCODE_ENTER
|
||||||
|
|
||||||
|
7. WebView Limitation
|
||||||
|
- UI Automator can see WebView content if accessibility is enabled
|
||||||
|
- Touch events on iframe content (like Cloudflare Turnstile) often fail due to cross-origin isolation
|
||||||
|
- Form fields in WebViews work if you get exact bounds from the UI dump
|
||||||
|
|
||||||
|
Typical Flow
|
||||||
|
1. Take screenshot → analyze with explore agent (get rough layout)
|
||||||
|
2. Dump UI hierarchy → grep for exact element bounds
|
||||||
|
- NEVER ASSUME COORDINATES. You must ALWAYS check first.
|
||||||
|
- Do this before ANY tap action as elements on the screen may of changed.
|
||||||
|
3. Calculate center coordinates from bounds
|
||||||
|
4. Tap/interact
|
||||||
|
5. Wait → screenshot → verify result
|
||||||
'';
|
'';
|
||||||
settings = {
|
settings = {
|
||||||
theme = "opencode";
|
theme = "opencode";
|
||||||
|
|
||||||
model = "openrouter/z-ai/glm-4.6";
|
model = opus-model;
|
||||||
# small model used for titles
|
# small model used for titles
|
||||||
small_model = "openrouter/openai/gpt-oss-20b";
|
small_model = "openrouter/openai/gpt-oss-20b:free";
|
||||||
|
|
||||||
autoshare = false;
|
autoshare = false;
|
||||||
|
# note: this updates opencode (and plugins like oh-my-opencode) at launch,
|
||||||
|
# bypassing the version pinned in flake.lock
|
||||||
autoupdate = true;
|
autoupdate = true;
|
||||||
agent = {
|
agent = { };
|
||||||
};
|
plugin = [ "oh-my-opencode" ];
|
||||||
provider = {
|
provider = {
|
||||||
openrouter = {
|
openrouter = {
|
||||||
models = {
|
models = {
|
||||||
"z-ai/glm-4.6" = { };
|
"openai/gpt-oss-20b:free" = { };
|
||||||
"minimax/minimax-m2" = { };
|
|
||||||
"google/gemini-3-pro-preview" = { };
|
|
||||||
"anthropic/claude-sonnet-4.5" = { };
|
|
||||||
"qwen/qwen3-coder-30b-a3b-instruct" = { };
|
|
||||||
"openrouter/openai/gpt-oss-20b" = { };
|
|
||||||
};
|
};
|
||||||
options = {
|
options = {
|
||||||
# TODO! use agenix here instead
|
# TODO! use agenix here instead
|
||||||
|
|||||||
BIN
home-manager/secrets/steam-user-id
Normal file
BIN
home-manager/secrets/steam-user-id
Normal file
Binary file not shown.
@@ -11,23 +11,20 @@
|
|||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./declarative-nm.nix
|
./vm.nix
|
||||||
# ./vm.nix
|
|
||||||
./steam.nix
|
./steam.nix
|
||||||
./networking.nix
|
./networking.nix
|
||||||
|
|
||||||
inputs.nixos-hardware.nixosModules.common-pc-ssd
|
|
||||||
inputs.disko.nixosModules.disko
|
inputs.disko.nixosModules.disko
|
||||||
inputs.lanzaboote.nixosModules.lanzaboote
|
inputs.lanzaboote.nixosModules.lanzaboote
|
||||||
|
|
||||||
|
inputs.nixos-hardware.nixosModules.common-cpu-amd-pstate
|
||||||
|
inputs.nixos-hardware.nixosModules.common-cpu-amd-zenpower
|
||||||
|
inputs.nixos-hardware.nixosModules.common-pc-ssd
|
||||||
];
|
];
|
||||||
|
|
||||||
# use tuned instead of tlp or ppd
|
|
||||||
services.power-profiles-daemon.enable = false;
|
|
||||||
services.tlp.enable = false;
|
|
||||||
services.tuned.enable = true;
|
|
||||||
|
|
||||||
# allow overclocking (I actually underclock but lol)
|
# allow overclocking (I actually underclock but lol)
|
||||||
hardware.amdgpu.overdrive.ppfeaturemask = "0xFFF7FFFF";
|
hardware.amdgpu.overdrive.ppfeaturemask = "0xFFFFFFFF";
|
||||||
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
hardware.cpu.amd.updateMicrocode = true;
|
hardware.cpu.amd.updateMicrocode = true;
|
||||||
@@ -37,7 +34,6 @@
|
|||||||
# Add niri to display manager session packages
|
# Add niri to display manager session packages
|
||||||
services.displayManager.sessionPackages = [ niri-package ];
|
services.displayManager.sessionPackages = [ niri-package ];
|
||||||
|
|
||||||
# Gamescope configuration for Steam Deck-like experience
|
|
||||||
programs = {
|
programs = {
|
||||||
gamescope = {
|
gamescope = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -81,19 +77,9 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# weird hack to get swaylock working? idk, if you don't put this here, password entry doesnt work
|
|
||||||
# if I move to another lock screen program, i will have to replace `swaylock`
|
|
||||||
security.pam.services.swaylock = { };
|
|
||||||
|
|
||||||
# allow unfree packages for jovian-nixos
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
services.scx.enable = true;
|
|
||||||
|
|
||||||
# kernel options
|
# kernel options
|
||||||
boot = {
|
boot = {
|
||||||
# kernelPackages = pkgs.linuxPackages_cachyos-lto;
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
# kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
# kernelPackages = pkgs.linuxPackages;
|
# kernelPackages = pkgs.linuxPackages;
|
||||||
|
|
||||||
lanzaboote = {
|
lanzaboote = {
|
||||||
@@ -118,6 +104,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
initrd = {
|
initrd = {
|
||||||
|
systemd.enable = true;
|
||||||
compressor = "zstd";
|
compressor = "zstd";
|
||||||
availableKernelModules = [
|
availableKernelModules = [
|
||||||
"xhci_pci"
|
"xhci_pci"
|
||||||
@@ -135,6 +122,13 @@
|
|||||||
"msr"
|
"msr"
|
||||||
"btusb"
|
"btusb"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
kernelParams = [
|
||||||
|
# 1gb huge pages
|
||||||
|
"hugepagesz=1G"
|
||||||
|
"hugepages=3"
|
||||||
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.etc = {
|
environment.etc = {
|
||||||
@@ -170,6 +164,12 @@
|
|||||||
|
|
||||||
# power statistics
|
# power statistics
|
||||||
upower.enable = true;
|
upower.enable = true;
|
||||||
|
|
||||||
|
# power profiles for noctalia shell
|
||||||
|
power-profiles-daemon.enable = true;
|
||||||
|
|
||||||
|
# geolocation (uses beacondb.net by default)
|
||||||
|
geoclue2.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# EST
|
# EST
|
||||||
@@ -206,7 +206,8 @@
|
|||||||
|
|
||||||
# Enable sound with pipewire.
|
# Enable sound with pipewire.
|
||||||
services.pulseaudio.enable = false; # pipewire >>>>>>> pulseaudio
|
services.pulseaudio.enable = false; # pipewire >>>>>>> pulseaudio
|
||||||
security.rtkit.enable = true;
|
# BUG! disable rtkit in order to fix mumble: https://github.com/NixOS/nixpkgs/issues/392992#issuecomment-2799867278
|
||||||
|
security.rtkit.enable = false;
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
alsa.enable = true;
|
alsa.enable = true;
|
||||||
@@ -231,8 +232,6 @@
|
|||||||
services.gvfs.enable = true;
|
services.gvfs.enable = true;
|
||||||
programs.gphoto2.enable = true;
|
programs.gphoto2.enable = true;
|
||||||
|
|
||||||
programs.adb.enable = true;
|
|
||||||
|
|
||||||
# Enable thermal data
|
# Enable thermal data
|
||||||
services.thermald.enable = true;
|
services.thermald.enable = true;
|
||||||
|
|
||||||
@@ -245,7 +244,7 @@
|
|||||||
|
|
||||||
# System packages
|
# System packages
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
mullvad-vpn
|
# mullvad-vpn is provided by services.mullvad-vpn.enable
|
||||||
|
|
||||||
#secureboot ctl
|
#secureboot ctl
|
||||||
sbctl
|
sbctl
|
||||||
@@ -262,6 +261,9 @@
|
|||||||
|
|
||||||
# needed for home-manager
|
# needed for home-manager
|
||||||
git
|
git
|
||||||
|
|
||||||
|
tmux
|
||||||
|
android-tools
|
||||||
];
|
];
|
||||||
|
|
||||||
# wayland with electron/chromium applications
|
# wayland with electron/chromium applications
|
||||||
|
|||||||
@@ -1,51 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
# from: https://discourse.nixos.org/t/imperative-declarative-wifi-networks-with-wpa-supplicant/12394/6
|
|
||||||
let
|
|
||||||
cfg = config.networking.networkmanager;
|
|
||||||
|
|
||||||
getFileName = lib.stringAsChars (x: if x == " " then "-" else x);
|
|
||||||
|
|
||||||
createWifi = ssid: opt: {
|
|
||||||
name = "NetworkManager/system-connections/${getFileName ssid}.nmconnection";
|
|
||||||
value = {
|
|
||||||
mode = "0400";
|
|
||||||
source = pkgs.writeText "${ssid}.nmconnection" ''
|
|
||||||
[connection]
|
|
||||||
id=${ssid}
|
|
||||||
type=wifi
|
|
||||||
|
|
||||||
[wifi]
|
|
||||||
ssid=${ssid}
|
|
||||||
|
|
||||||
[wifi-security]
|
|
||||||
${lib.optionalString (opt.psk != null) ''
|
|
||||||
key-mgmt=wpa-psk
|
|
||||||
psk=${opt.psk}''}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
keyFiles = lib.mapAttrs' createWifi config.networking.wireless.networks;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
environment.etc = keyFiles;
|
|
||||||
|
|
||||||
systemd.services.NetworkManager-predefined-connections = {
|
|
||||||
restartTriggers = lib.mapAttrsToList (name: value: value.source) keyFiles;
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
ExecStart = "${pkgs.coreutils}/bin/true";
|
|
||||||
ExecReload = "${pkgs.networkmanager}/bin/nmcli connection reload";
|
|
||||||
};
|
|
||||||
reloadIfChanged = true;
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -21,12 +21,15 @@
|
|||||||
"/etc/ssh/ssh_host_rsa_key.pub"
|
"/etc/ssh/ssh_host_rsa_key.pub"
|
||||||
"/etc/machine-id"
|
"/etc/machine-id"
|
||||||
];
|
];
|
||||||
|
|
||||||
users.${username} = {
|
|
||||||
directories = [
|
|
||||||
"."
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Bind mount entire home directory from persistent storage
|
||||||
|
# (impermanence doesn't support "." so we do this directly)
|
||||||
|
fileSystems."/home/${username}" = {
|
||||||
|
device = "/persistent/home/${username}";
|
||||||
|
fsType = "none";
|
||||||
|
options = [ "bind" ];
|
||||||
|
neededForBoot = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
|
|||||||
@@ -17,10 +17,10 @@
|
|||||||
wifi = {
|
wifi = {
|
||||||
scanRandMacAddress = true;
|
scanRandMacAddress = true;
|
||||||
# fix suspend issue
|
# fix suspend issue
|
||||||
powersave = false;
|
# powersave = false;
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
wireless.networks = import ./secrets/wifi-passwords.nix;
|
ensureProfiles.profiles = import ./secrets/wifi-passwords.nix;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -9,39 +9,33 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./common.nix
|
./common.nix
|
||||||
./hardware_laptop.nix
|
./disk_mreow.nix
|
||||||
|
|
||||||
inputs.nixos-hardware.nixosModules.framework-amd-ai-300-series
|
inputs.nixos-hardware.nixosModules.framework-amd-ai-300-series
|
||||||
];
|
];
|
||||||
|
|
||||||
# completely and utterly broken
|
# Disable PSR, PSR-SU, and Panel Replay to fix display hangs and corruption.
|
||||||
/*
|
# Panel Replay requires PSR/PSR-SU to also be disabled to avoid issues.
|
||||||
hardware.framework.laptop13.audioEnhancement = {
|
# This overrides nixos-hardware's 0x10 with 0x410 (last value wins in kernel cmdline).
|
||||||
enable = true;
|
# https://github.com/NixOS/nixos-hardware/pull/1692
|
||||||
|
boot.kernelParams = lib.mkAfter [ "amdgpu.dcdebugmask=0x410" ];
|
||||||
|
|
||||||
# seems audio doesn't work without this
|
hardware.framework.laptop13.audioEnhancement.rawDeviceName =
|
||||||
hideRawDevice = false;
|
lib.mkDefault "alsa_output.pci-0000_c1_00.6.analog-stereo";
|
||||||
};
|
|
||||||
*/
|
|
||||||
|
|
||||||
# PST
|
# PST
|
||||||
# time.timeZone = lib.mkForce "America/Los_Angeles";
|
# time.timeZone = lib.mkForce "America/Los_Angeles";
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_cachyos-lto.cachyOverride {
|
# weird hack to get swaylock working? idk, if you don't put this here, password entry doesnt work
|
||||||
# my system is zen 5, but zen 4 is the highest option
|
# if I move to another lock screen program, i will have to replace `swaylock`
|
||||||
mArch = "ZEN4";
|
security.pam.services.swaylock = { };
|
||||||
};
|
|
||||||
|
|
||||||
# disable framework kernel module
|
|
||||||
# https://github.com/NixOS/nixos-hardware/issues/1330
|
|
||||||
hardware.framework.enableKmod = false;
|
|
||||||
|
|
||||||
# Greetd display manager
|
# Greetd display manager
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
default_session = {
|
default_session = {
|
||||||
command = "${lib.getExe pkgs.tuigreet} --sessions /etc/xdg/wayland-sessions/ --time";
|
command = "${lib.getExe pkgs.tuigreet} --time";
|
||||||
user = username;
|
user = username;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,31 +8,47 @@
|
|||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./impermanence-disk-config.nix
|
./disk_yarn.nix
|
||||||
./common.nix
|
./common.nix
|
||||||
./impermanence.nix
|
./impermanence.nix
|
||||||
./no-rgb.nix
|
./no-rgb.nix
|
||||||
./vr.nix
|
./vr.nix
|
||||||
|
|
||||||
inputs.nixos-hardware.nixosModules.common-cpu-amd-pstate
|
|
||||||
inputs.nixos-hardware.nixosModules.common-cpu-amd-zenpower
|
|
||||||
inputs.impermanence.nixosModules.impermanence
|
inputs.impermanence.nixosModules.impermanence
|
||||||
inputs.disko.nixosModules.disko
|
inputs.jovian-nixos.nixosModules.default
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_cachyos-lto.cachyOverride {
|
|
||||||
# this system is zen 3, but this is the highest level this system supports
|
|
||||||
mArch = "GENERIC_V4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/media/games" = {
|
fileSystems."/media/games" = {
|
||||||
device = "/dev/disk/by-uuid/1878136e-765d-4784-b204-3536ab4fdac8";
|
device = "/dev/disk/by-uuid/1878136e-765d-4784-b204-3536ab4fdac8";
|
||||||
fsType = "f2fs";
|
fsType = "f2fs";
|
||||||
options = [ "nofail" ];
|
options = [ "nofail" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.targets = {
|
||||||
|
sleep.enable = false;
|
||||||
|
suspend.enable = false;
|
||||||
|
hibernate.enable = false;
|
||||||
|
hybrid-sleep.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
networking.hostId = "abf570f9";
|
networking.hostId = "abf570f9";
|
||||||
|
|
||||||
|
# Static IP for consistent SSH access
|
||||||
|
networking.networkmanager.ensureProfiles.profiles.enp7s0-static = {
|
||||||
|
connection = {
|
||||||
|
id = "enp7s0-static";
|
||||||
|
type = "ethernet";
|
||||||
|
interface-name = "enp7s0";
|
||||||
|
autoconnect = true;
|
||||||
|
};
|
||||||
|
ipv4 = {
|
||||||
|
method = "manual";
|
||||||
|
address1 = "192.168.1.223/24,192.168.1.1";
|
||||||
|
dns = "1.1.1.1;9.9.9.9;";
|
||||||
|
};
|
||||||
|
ipv6.method = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
ports = [ 22 ];
|
ports = [ 22 ];
|
||||||
@@ -64,6 +80,82 @@
|
|||||||
|
|
||||||
systemd.services.lactd.serviceConfig.ExecStartPre = "${lib.getExe pkgs.bash} -c \"sleep 3s\"";
|
systemd.services.lactd.serviceConfig.ExecStartPre = "${lib.getExe pkgs.bash} -c \"sleep 3s\"";
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfreePredicate =
|
||||||
|
pkg:
|
||||||
|
builtins.elem (lib.getName pkg) [
|
||||||
|
"steamdeck-hw-theme"
|
||||||
|
"steam-jupiter-unwrapped"
|
||||||
|
"steam"
|
||||||
|
"steam-original"
|
||||||
|
"steam-unwrapped"
|
||||||
|
"steam-run"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Override jovian-stubs to disable steamos-update kernel check
|
||||||
|
# This prevents Steam from requesting reboots for "system updates"
|
||||||
|
# Steam client updates will still work normally
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
jovian-stubs = prev.stdenv.mkDerivation {
|
||||||
|
name = "jovian-stubs-no-update";
|
||||||
|
dontUnpack = true;
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
|
||||||
|
# steamos-update: always report "no update available" (exit 7)
|
||||||
|
# This disables the kernel mismatch check that triggers reboot prompts
|
||||||
|
cat > $out/bin/steamos-update << 'STUB'
|
||||||
|
#!/bin/sh
|
||||||
|
>&2 echo "[JOVIAN] $0: stub called with: $* (system updates disabled)"
|
||||||
|
exit 7
|
||||||
|
STUB
|
||||||
|
|
||||||
|
# steamos-reboot: reboot the system
|
||||||
|
cat > $out/bin/steamos-reboot << 'STUB'
|
||||||
|
#!/bin/sh
|
||||||
|
>&2 echo "[JOVIAN] $0: stub called with: $*"
|
||||||
|
systemctl reboot
|
||||||
|
STUB
|
||||||
|
|
||||||
|
# steamos-select-branch: no-op stub
|
||||||
|
cat > $out/bin/steamos-select-branch << 'STUB'
|
||||||
|
#!/bin/sh
|
||||||
|
>&2 echo "[JOVIAN] $0: stub called with: $*"
|
||||||
|
exit 0
|
||||||
|
STUB
|
||||||
|
|
||||||
|
# steamos-factory-reset-config: no-op stub
|
||||||
|
cat > $out/bin/steamos-factory-reset-config << 'STUB'
|
||||||
|
#!/bin/sh
|
||||||
|
>&2 echo "[JOVIAN] $0: stub called with: $*"
|
||||||
|
exit 0
|
||||||
|
STUB
|
||||||
|
|
||||||
|
# steamos-firmware-update: no-op stub
|
||||||
|
cat > $out/bin/steamos-firmware-update << 'STUB'
|
||||||
|
#!/bin/sh
|
||||||
|
>&2 echo "[JOVIAN] $0: stub called with: $*"
|
||||||
|
exit 0
|
||||||
|
STUB
|
||||||
|
|
||||||
|
# pkexec: pass through to real pkexec
|
||||||
|
cat > $out/bin/pkexec << 'STUB'
|
||||||
|
#!/bin/sh
|
||||||
|
exec /run/wrappers/bin/pkexec "$@"
|
||||||
|
STUB
|
||||||
|
|
||||||
|
# sudo: pass through to doas
|
||||||
|
cat > $out/bin/sudo << 'STUB'
|
||||||
|
#!/bin/sh
|
||||||
|
exec /run/wrappers/bin/doas "$@"
|
||||||
|
STUB
|
||||||
|
|
||||||
|
chmod 755 $out/bin/*
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
jovian = {
|
jovian = {
|
||||||
devices.steamdeck.enable = false;
|
devices.steamdeck.enable = false;
|
||||||
steam = {
|
steam = {
|
||||||
@@ -74,6 +166,10 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Jovian-NixOS requires sddm
|
||||||
|
# https://github.com/Jovian-Experiments/Jovian-NixOS/commit/52f140c07493f8bb6cd0773c7e1afe3e1fd1d1fa
|
||||||
|
services.displayManager.sddm.wayland.enable = true;
|
||||||
|
|
||||||
# Disable gamescope from common.nix to avoid conflict with jovian-nixos
|
# Disable gamescope from common.nix to avoid conflict with jovian-nixos
|
||||||
programs.gamescope.enable = lib.mkForce false;
|
programs.gamescope.enable = lib.mkForce false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,14 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
# android virtualization
|
||||||
|
virtualisation.waydroid = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# https://github.com/NixOS/nixpkgs/pull/466473
|
||||||
|
package = pkgs.waydroid-nftables;
|
||||||
|
};
|
||||||
|
|
||||||
programs.virt-manager.enable = true;
|
programs.virt-manager.enable = true;
|
||||||
|
|
||||||
users.groups.libvirtd.members = [ username ];
|
users.groups.libvirtd.members = [ username ];
|
||||||
@@ -13,36 +21,6 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
package = pkgs.libvirt;
|
package = pkgs.libvirt;
|
||||||
|
|
||||||
qemu = {
|
|
||||||
package = (
|
|
||||||
pkgs.qemu_kvm.overrideAttrs (old: {
|
|
||||||
patches = old.patches ++ [
|
|
||||||
# amd?
|
|
||||||
(pkgs.fetchpatch {
|
|
||||||
url = "https://github.com/Scrut1ny/Hypervisor-Phantom/raw/d09d66813570704e2b05440f290d6f9bdf2d26c7/Hypervisor-Phantom/patches/QEMU/amd-qemu-9.2.0.patch";
|
|
||||||
sha256 = "BbzgjRa3qaYH1yXXqU6M/S68SxXWpAc9ObTG5qXu6YA=";
|
|
||||||
})
|
|
||||||
|
|
||||||
# or intel!
|
|
||||||
/*
|
|
||||||
(pkgs.fetchpatch {
|
|
||||||
url = "https://github.com/Scrut1ny/Hypervisor-Phantom/raw/d09d66813570704e2b05440f290d6f9bdf2d26c7/Hypervisor-Phantom/patches/QEMU/intel-qemu-9.2.0.patch";
|
|
||||||
sha256 = "kXY6R/0Tsotf0mGUIevDLlLWHEznnF1dt0K2ayX7XAg=";
|
|
||||||
})
|
|
||||||
*/
|
|
||||||
];
|
|
||||||
})
|
|
||||||
);
|
|
||||||
|
|
||||||
ovmf.packages = lib.mkForce [
|
|
||||||
(pkgs.OVMF.overrideAttrs (old: {
|
|
||||||
secureBoot = true;
|
|
||||||
tpmSupport = true;
|
|
||||||
# TODO! add patches from: https://github.com/Scrut1ny/Hypervisor-Phantom/tree/main/Hypervisor-Phantom/patches/EDK2
|
|
||||||
})).fd
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualisation.spiceUSBRedirection.enable = true;
|
virtualisation.spiceUSBRedirection.enable = true;
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
application = [ pkgs.wlx-overlay-s ];
|
application = [ pkgs.wayvr ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user