Compare commits
75 Commits
9cc7c52061
...
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
|
273
flake.lock
generated
273
flake.lock
generated
@@ -6,14 +6,14 @@
|
||||
"llm-agents",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_2"
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767386128,
|
||||
"narHash": "sha256-BJDu7dIMauO2nYRSL4aI8wDNtEm2KOb7lDKP3hxdrpo=",
|
||||
"lastModified": 1771437256,
|
||||
"narHash": "sha256-bLqwib+rtyBRRVBWhMuBXPCL/OThfokA+j6+uH7jDGU=",
|
||||
"owner": "numtide",
|
||||
"repo": "blueprint",
|
||||
"rev": "0ed984d51a3031065925ab08812a5434f40b93d4",
|
||||
"rev": "06ee7190dc2620ea98af9eb225aa9627b68b0e33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -24,11 +24,11 @@
|
||||
},
|
||||
"crane": {
|
||||
"locked": {
|
||||
"lastModified": 1767461147,
|
||||
"narHash": "sha256-TH/xTeq/RI+DOzo+c+4F431eVuBpYVwQwBxzURe7kcI=",
|
||||
"lastModified": 1771121070,
|
||||
"narHash": "sha256-aIlv7FRXF9q70DNJPI237dEDAznSKaXmL5lfK/Id/bI=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "7d59256814085fd9666a2ae3e774dc5ee216b630",
|
||||
"rev": "a2812c19f1ed2e5ed5ce2ef7109798b575c180e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -46,11 +46,11 @@
|
||||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766051518,
|
||||
"narHash": "sha256-znKOwPXQnt3o7lDb3hdf19oDo0BLP4MfBOYiWkEHoik=",
|
||||
"lastModified": 1770019181,
|
||||
"narHash": "sha256-hwsYgDnby50JNVpTRYlF3UR/Rrpt01OrxVuryF40CFY=",
|
||||
"owner": "serokell",
|
||||
"repo": "deploy-rs",
|
||||
"rev": "d5eff7f948535b9c723d60cd8239f8f11ddc90fa",
|
||||
"rev": "77c906c0ba56aabdbc72041bf9111b565cdd6171",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -66,11 +66,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746728054,
|
||||
"narHash": "sha256-eDoSOhxGEm2PykZFa/x9QG5eTH0MJdiJ9aR00VAofXE=",
|
||||
"lastModified": 1768920986,
|
||||
"narHash": "sha256-CNzzBsRhq7gg4BMBuTDObiWDH/rFYHEuDRVOwCcwXw4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "ff442f5d1425feb86344c028298548024f21256d",
|
||||
"rev": "de5708739256238fb912c62f03988815db89ec9a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -83,11 +83,11 @@
|
||||
"doomemacs": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767773143,
|
||||
"narHash": "sha256-QL/t9v2kFNxBDyNJb/s411o3mxujan+QX5IZglTdpTk=",
|
||||
"lastModified": 1771637851,
|
||||
"narHash": "sha256-GmrqCINhfdO3EthpVG8ZsoTdfzj3vaEdz9soJwiI2HY=",
|
||||
"owner": "doomemacs",
|
||||
"repo": "doomemacs",
|
||||
"rev": "3e15fb36d7f94f0a218bda977be4d3f5da983a71",
|
||||
"rev": "ac649cce2abd1eb9d6d3f161928f9a7665b63310",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -106,11 +106,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768238022,
|
||||
"narHash": "sha256-lc40dAJi/AE38Oz3ebmzpnoPILUg7gzT2s93gzUzafc=",
|
||||
"lastModified": 1771728721,
|
||||
"narHash": "sha256-03w1Ka71dJlerySoIT5ZGm/+bx0qONZIjELY4ghkxIo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "emacs-overlay",
|
||||
"rev": "28210bc3e3aa1dfb883504d95c07705afcab4670",
|
||||
"rev": "d7e50ce0c6e1ca698217a251d432799683d23831",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -151,6 +151,42 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -180,11 +216,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768248913,
|
||||
"narHash": "sha256-Kr45H5StnR9hgEhpKD8/BDZLvEpLVJb51lvIDQ9EC7U=",
|
||||
"lastModified": 1771683283,
|
||||
"narHash": "sha256-WxAEkAbo8dP7qiyPM6VN4ZGAxfuBVlNBNPkrqkrXVEc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "360620ec9d5ffc186b5b1fca4c5f5b2e1634a5cf",
|
||||
"rev": "c6ed3eab64d23520bcbb858aa53fe2b533725d4a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -203,11 +239,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767822991,
|
||||
"narHash": "sha256-iyrn9AcPZCoyxX4OT8eMkBsjG7SRUQXXS/V1JzxS7rA=",
|
||||
"lastModified": 1769548169,
|
||||
"narHash": "sha256-03+JxvzmfwRu+5JafM0DLbxgHttOQZkUtDWBmeUkN8Y=",
|
||||
"owner": "nix-community",
|
||||
"repo": "impermanence",
|
||||
"rev": "82e5bc4508cab9e8d5a136626276eb5bbce5e9c5",
|
||||
"rev": "7b1d382faf603b6d264f58627330f9faa5cba149",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -224,19 +260,41 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767888166,
|
||||
"narHash": "sha256-dfZKtAv2bTD8EsOxLQ6/a7zSZt8KTy+HuRq3wz1z3LA=",
|
||||
"owner": "Jovian-Experiments",
|
||||
"lastModified": 1772169624,
|
||||
"narHash": "sha256-YHaTNllFu90LdXqiNNoeDFnKwioa6lT+gXGGBOAvlfo=",
|
||||
"owner": "Titaniumtown",
|
||||
"repo": "Jovian-NixOS",
|
||||
"rev": "3e0747d31474cdb182801518e39511eed2c84c91",
|
||||
"rev": "68f2a686a27f0b6899b085fd6e653fffa59db444",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Jovian-Experiments",
|
||||
"owner": "Titaniumtown",
|
||||
"ref": "pr/fix-sddm-switch-to-desktop",
|
||||
"repo": "Jovian-NixOS",
|
||||
"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": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
@@ -249,11 +307,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768208826,
|
||||
"narHash": "sha256-HWnVcDDuBCHUDoDpNADw1LybfF4jKofGAynV4HDRRrg=",
|
||||
"lastModified": 1771492583,
|
||||
"narHash": "sha256-nQzvnU4BGu8dA6BsPPCqmVcab/3ebVmHtX3ZWbW3Hxc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "lanzaboote",
|
||||
"rev": "ba5f08218d4f14bf1baeeb69eaadb7a2f2d995af",
|
||||
"rev": "5e9380994665ef66c87ab8e22c913ff837174ce4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -271,11 +329,11 @@
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768227710,
|
||||
"narHash": "sha256-m6GRI1hzt/jfKaPyyraxUCi0HAc6ROwasemyeWGulJA=",
|
||||
"lastModified": 1771730908,
|
||||
"narHash": "sha256-AkmTeSJSGniBsCbc+Oy5emrQflyTzUweOVcQLf69z1A=",
|
||||
"owner": "numtide",
|
||||
"repo": "llm-agents.nix",
|
||||
"rev": "321aab84a04492df7230090eabc61fa0b224a106",
|
||||
"rev": "352ee8c439a3c2c7987f6cfaebddcf87c924959a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -298,11 +356,11 @@
|
||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768200625,
|
||||
"narHash": "sha256-/OzaFZnKs9hbqv1pnB9riPBdgQo8qACYme2VrC5uVjI=",
|
||||
"lastModified": 1771638124,
|
||||
"narHash": "sha256-rIF69lE48tBvOMFiIyserOa0MF3SXh1ZiRqv7WqlUew=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "bc9753e6e2f20873307e246f859c463f9d20ce1d",
|
||||
"rev": "a1dac2b08c329af22200104c3c4b18de5ded6034",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -331,11 +389,11 @@
|
||||
"niri-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1768196703,
|
||||
"narHash": "sha256-mttBQdVnVFO3mn+M+oqCsZZOtS2HvXYy+VaHxb8YuMw=",
|
||||
"lastModified": 1771305475,
|
||||
"narHash": "sha256-lqweVTwHhYc+9T33cysp38gVwxaibGJHriOPZXWyhCY=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "3672e79369d72297abda8878245ea4ec327062c6",
|
||||
"rev": "a2a52911757cb3b497db9407592f9b4c439571ea",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -353,14 +411,14 @@
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_3"
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768207864,
|
||||
"narHash": "sha256-JUU3iYKlDQ0EIcNC9kIcQbHmdRa8it0bxUMr4vfNSjk=",
|
||||
"lastModified": 1771663801,
|
||||
"narHash": "sha256-gh0OVgAERhv1uSXzTgd0p7GioEG1Jg44FVxc72aM//A=",
|
||||
"owner": "marienz",
|
||||
"repo": "nix-doom-emacs-unstraightened",
|
||||
"rev": "735ab2d975c05195a468e410a5da071d2e7fada4",
|
||||
"rev": "0bf7a181e28a8c3d1e89b18f79b15d516f2fb670",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -371,11 +429,11 @@
|
||||
},
|
||||
"nix-flatpak": {
|
||||
"locked": {
|
||||
"lastModified": 1768119771,
|
||||
"narHash": "sha256-kbbmAfCXcgjdShTDDEn/pCoC5rKQMTd1BksXANn8D2A=",
|
||||
"lastModified": 1768656715,
|
||||
"narHash": "sha256-Sbh037scxKFm7xL0ahgSCw+X2/5ZKeOwI2clqrYr9j4=",
|
||||
"owner": "gmodena",
|
||||
"repo": "nix-flatpak",
|
||||
"rev": "2e49028cb29c76c8553c6099b19f11879db2cbd1",
|
||||
"rev": "123fe29340a5b8671367055b75a6e7c320d6f89a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -408,11 +466,11 @@
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1767185284,
|
||||
"narHash": "sha256-ljDBUDpD1Cg5n3mJI81Hz5qeZAwCGxon4kQW3Ho3+6Q=",
|
||||
"lastModified": 1771423359,
|
||||
"narHash": "sha256-yRKJ7gpVmXbX2ZcA8nFi6CMPkJXZGjie2unsiMzj3Ig=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "40b1a28dce561bea34858287fbb23052c3ee63fe",
|
||||
"rev": "740a22363033e9f1bb6270fbfb5a9574067af15b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -424,11 +482,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1767767207,
|
||||
"narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=",
|
||||
"lastModified": 1771369470,
|
||||
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5912c1772a44e31bf1c63c0390b90501e5026886",
|
||||
"rev": "0182a361324364ae3f436a63005877674cf45efb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -438,6 +496,48 @@
|
||||
"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": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
@@ -448,11 +548,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767281941,
|
||||
"narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=",
|
||||
"lastModified": 1770726378,
|
||||
"narHash": "sha256-kck+vIbGOaM/dHea7aTBxdFYpeUl/jHOy5W3eyRvVx8=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa",
|
||||
"rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -469,6 +569,7 @@
|
||||
"home-manager": "home-manager",
|
||||
"impermanence": "impermanence",
|
||||
"jovian-nixos": "jovian-nixos",
|
||||
"json2steamshortcut": "json2steamshortcut",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"llm-agents": "llm-agents",
|
||||
"niri": "niri",
|
||||
@@ -476,6 +577,8 @@
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"noctalia": "noctalia",
|
||||
"oh-my-opencode": "oh-my-opencode",
|
||||
"rust-overlay": "rust-overlay",
|
||||
"zen-browser": "zen-browser"
|
||||
}
|
||||
@@ -487,11 +590,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768186348,
|
||||
"narHash": "sha256-nkpIe3zkpeoFuOl8xBpexulECsHLQ9Ljg1gW3bPCjSI=",
|
||||
"lastModified": 1771729765,
|
||||
"narHash": "sha256-HNsDSR5bhLSrIpi9bTb2uTK1qnPo1xFSBxs6YmFyprk=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "af69e497567a5945a64057717bc9b17c8478097e",
|
||||
"rev": "be926cb1a76e8450ab2b92121b2e88d09fa4d41c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -545,6 +648,36 @@
|
||||
"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": [
|
||||
@@ -553,11 +686,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768158989,
|
||||
"narHash": "sha256-67vyT1+xClLldnumAzCTBvU0jLZ1YBcf4vANRWP3+Ak=",
|
||||
"lastModified": 1770228511,
|
||||
"narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "e96d59dff5c0d7fddb9d113ba108f03c3ef99eca",
|
||||
"rev": "337a4fe074be1042a35086f15481d763b8ddc0e7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -604,11 +737,11 @@
|
||||
"xwayland-satellite-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1768106915,
|
||||
"narHash": "sha256-HlLo9zH4ULRXlmlIK948cHmdVhxyHgTHxGaoCRlW4k8=",
|
||||
"lastModified": 1771195969,
|
||||
"narHash": "sha256-BUE41HjLIGPjq3U8VXPjf8asH8GaMI7FYdgrIHKFMXA=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "72245e108f3b03c3c4474d2de9de2d1830849603",
|
||||
"rev": "536bd32efc935bf876d6de385ec18a1b715c9358",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -627,11 +760,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768183082,
|
||||
"narHash": "sha256-XsiMOsqRLfmUi+24F7adhb/GAM2dMvplzwaW2Wxg/lo=",
|
||||
"lastModified": 1771719171,
|
||||
"narHash": "sha256-ZDE3//9Hg+9X5xXcDJ4k/d6qcOVQ4MrTmvf1zv/omZY=",
|
||||
"owner": "0xc000022070",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "cdbc300fd89d503a95d1c8564de31a93d7b0a0ae",
|
||||
"rev": "2a71f2e720db962f2522b38704e23e11163e91ae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
18
flake.nix
18
flake.nix
@@ -65,7 +65,12 @@
|
||||
};
|
||||
|
||||
jovian-nixos = {
|
||||
url = "github:Jovian-Experiments/Jovian-NixOS";
|
||||
url = "github:Titaniumtown/Jovian-NixOS/pr/fix-sddm-switch-to-desktop";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
noctalia = {
|
||||
url = "github:noctalia-dev/noctalia-shell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
@@ -73,6 +78,17 @@
|
||||
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 =
|
||||
|
||||
@@ -10,13 +10,16 @@
|
||||
./progs/niri.nix
|
||||
|
||||
# statusbar
|
||||
./progs/eww/eww.nix
|
||||
# ./progs/eww/eww.nix
|
||||
|
||||
# lockscreen
|
||||
./progs/swaylock.nix
|
||||
|
||||
# notification daemon
|
||||
./progs/dunst.nix
|
||||
|
||||
# noctalia desktop shell
|
||||
./progs/noctalia.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
pkg:
|
||||
builtins.elem (lib.getName pkg) [
|
||||
"apple_cursor"
|
||||
"grayjay"
|
||||
];
|
||||
|
||||
home.packages =
|
||||
@@ -34,6 +35,7 @@
|
||||
[
|
||||
tor-browser
|
||||
inputs.zen-browser.packages."${system}".twilight
|
||||
grayjay
|
||||
]
|
||||
|
||||
# music library management
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
imports = [
|
||||
./gui.nix
|
||||
./desktop.nix
|
||||
inputs.json2steamshortcut.homeModules.default
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
@@ -26,4 +27,18 @@
|
||||
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
|
||||
rust_pkgs = with pkgs; [
|
||||
(rust-bin.stable.latest.default.override ({
|
||||
(rust-bin.nightly.latest.default.override ({
|
||||
extensions = [
|
||||
"rust-src"
|
||||
"rust-analyzer"
|
||||
@@ -160,7 +160,7 @@ in
|
||||
# microcontroller tooling
|
||||
probe-rs-tools
|
||||
|
||||
(python312.withPackages (
|
||||
(python313.withPackages (
|
||||
ps: with ps; [
|
||||
mypy # type checking
|
||||
types-requests # add types for requests methods
|
||||
@@ -230,6 +230,8 @@ in
|
||||
|
||||
lfs.enable = true;
|
||||
|
||||
ignores = [ ".sisyphus" ];
|
||||
|
||||
settings = {
|
||||
init = {
|
||||
# master -> main
|
||||
|
||||
@@ -25,8 +25,10 @@
|
||||
emacs = pkgs.emacs-unstable-pgtk;
|
||||
extraPackages =
|
||||
epkgs:
|
||||
with epkgs;
|
||||
[
|
||||
epkgs.dracula-theme
|
||||
dracula-theme
|
||||
treesit-grammars.with-all-grammars
|
||||
]
|
||||
++ (with pkgs; [
|
||||
shellcheck
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
zsh
|
||||
@@ -11,4 +16,25 @@
|
||||
enable = true;
|
||||
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;
|
||||
|
||||
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 = [
|
||||
{ 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");
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
@@ -6,25 +6,104 @@
|
||||
...
|
||||
}:
|
||||
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 = "anthropic/claude-opus-4-5";
|
||||
librarian.model = "anthropic/claude-haiku-4-5";
|
||||
explore.model = "anthropic/claude-haiku-4-5";
|
||||
oracle.model = "openrouter/openai/gpt-5.2";
|
||||
frontend-ui-ux-engineer.model = "openrouter/google/gemini-3-pro-preview";
|
||||
document-writer.model = "anthropic/claude-sonnet-4-5";
|
||||
multimodal-looker.model = "anthropic/claude-haiku-4-5";
|
||||
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 = {
|
||||
package = inputs.llm-agents.packages.${pkgs.stdenv.hostPlatform.system}.opencode;
|
||||
package = inputs.llm-agents.packages.${pkgs.stdenv.targetPlatform.system}.opencode;
|
||||
enable = true;
|
||||
rules = ''
|
||||
You are an intelligent and observant agent.
|
||||
@@ -37,6 +116,7 @@ in
|
||||
## Misc
|
||||
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 run `skill_mcp [mcp_name=playwright, tool_name=browser_install]` as browsers are provided by NixOS via PLAYWRIGHT_BROWSERS_PATH.
|
||||
|
||||
## Behavior
|
||||
Do not be sycophantic in your responses.
|
||||
@@ -46,22 +126,74 @@ in
|
||||
## Nix
|
||||
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 = {
|
||||
theme = "opencode";
|
||||
|
||||
model = "anthropic/claude-opus-4-5";
|
||||
model = opus-model;
|
||||
# small model used for titles
|
||||
small_model = "openrouter/openai/gpt-oss-20b:free";
|
||||
|
||||
autoshare = false;
|
||||
# note: this updates opencode (and plugins like oh-my-opencode) at launch,
|
||||
# bypassing the version pinned in flake.lock
|
||||
autoupdate = true;
|
||||
agent = { };
|
||||
plugin = [ "oh-my-opencode" ];
|
||||
provider = {
|
||||
openrouter = {
|
||||
models = {
|
||||
"openai/gpt-oss-20b:free" = { };
|
||||
"minimax/minimax-m2.1" = { };
|
||||
};
|
||||
options = {
|
||||
# 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,7 +11,7 @@
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
# ./vm.nix
|
||||
./vm.nix
|
||||
./steam.nix
|
||||
./networking.nix
|
||||
|
||||
@@ -122,6 +122,13 @@
|
||||
"msr"
|
||||
"btusb"
|
||||
];
|
||||
|
||||
kernelParams = [
|
||||
# 1gb huge pages
|
||||
"hugepagesz=1G"
|
||||
"hugepages=3"
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
environment.etc = {
|
||||
@@ -157,6 +164,12 @@
|
||||
|
||||
# power statistics
|
||||
upower.enable = true;
|
||||
|
||||
# power profiles for noctalia shell
|
||||
power-profiles-daemon.enable = true;
|
||||
|
||||
# geolocation (uses beacondb.net by default)
|
||||
geoclue2.enable = true;
|
||||
};
|
||||
|
||||
# EST
|
||||
@@ -193,7 +206,8 @@
|
||||
|
||||
# Enable sound with pipewire.
|
||||
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 = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
|
||||
@@ -21,12 +21,15 @@
|
||||
"/etc/ssh/ssh_host_rsa_key.pub"
|
||||
"/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 = [
|
||||
|
||||
Binary file not shown.
@@ -33,6 +33,22 @@
|
||||
|
||||
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 = {
|
||||
enable = true;
|
||||
ports = [ 22 ];
|
||||
@@ -75,6 +91,71 @@
|
||||
"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 = {
|
||||
devices.steamdeck.enable = false;
|
||||
steam = {
|
||||
@@ -85,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
|
||||
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;
|
||||
|
||||
users.groups.libvirtd.members = [ username ];
|
||||
@@ -13,36 +21,6 @@
|
||||
enable = true;
|
||||
|
||||
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;
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
}
|
||||
];
|
||||
|
||||
application = [ pkgs.wlx-overlay-s ];
|
||||
application = [ pkgs.wayvr ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user