Compare commits

...

89 Commits

Author SHA1 Message Date
05b237f49c opencode: ditch chatgpt 2026-02-28 01:37:43 -05:00
daee9c3246 git: add opencode related file to .gitignore 2026-02-27 21:59:01 -05:00
70ca2d3323 steam: fix jovian-nixos (use my fork) 2026-02-27 01:00:27 -05:00
86ac120d54 steam: enable sddm (now required) 2026-02-26 19:22:08 -05:00
201436ef28 audio: disable rtkit to fix mumble 2026-02-26 19:17:26 -05:00
d453bc1bdd steam: upstream fix for switch-to-desktop 2026-02-25 14:39:37 -05:00
b8be06a8c7 opencode: glm-4.7 -> glm-5 2026-02-25 02:19:07 -05:00
d85434dff2 steam: add entry for prism launcher 2026-02-25 01:57:48 -05:00
b0fe816465 steam: fix switch-to-desktop
PR located here: https://github.com/Jovian-Experiments/Jovian-NixOS/pull/550
2026-02-24 22:44:03 -05:00
eaf550ded6 opencode: openrouter + glm 5 -> zai coding plan glm 4.7 2026-02-24 14:23:13 -05:00
a877826a68 update 2026-02-22 01:51:23 -05:00
1b0bd9b7f8 update 2026-02-20 14:15:01 -05:00
6c12b580e3 opencode: change models 2026-02-19 17:09:15 -05:00
fae2e84c99 update 2026-02-19 12:51:01 -05:00
2e11bf7f31 update 2026-02-18 12:47:42 -05:00
b6350e1170 update 2026-02-17 10:48:30 -05:00
00c98599d8 opencode: change multimodel looker model 2026-02-16 20:24:43 -05:00
52af5b3f47 opencode: change opus-model 2026-02-16 16:52:29 -05:00
99d51e77f0 update 2026-02-16 12:35:43 -05:00
32174c3ccb opencode: add note about autoupdate 2026-02-16 12:35:32 -05:00
eab28b1c44 opencode: fix oh-my-opencode build 2026-02-16 00:25:25 -05:00
9d663b346e update 2026-02-15 23:32:38 -05:00
de8da30b71 rust: stable -> nightly 2026-02-15 23:32:11 -05:00
5c7b5c8e9d opencode: fix playwright skill: 2 2026-02-11 19:22:46 -05:00
d8b380a9c0 opencode: fix playwright skill 2026-02-10 18:11:28 -05:00
b0650b59b7 update 2026-02-09 15:26:55 -05:00
ee5bba25b1 wifi: add network 2026-02-08 20:51:31 -05:00
13b65784b0 update 2026-02-07 01:22:32 -05:00
c767e881ba fmt 2026-02-05 15:05:09 -05:00
7d93b84ca5 opencode: fix ultrabrain model 2026-02-05 15:05:03 -05:00
587412b0be update 2026-02-05 13:26:57 -05:00
8950ee4644 emacs: all treesitter grammars 2026-02-04 15:20:29 -05:00
e2b9e27504 update 2026-02-04 14:08:24 -05:00
fc15c1369f opencode: add note about playwright browser_install 2026-02-03 14:45:15 -05:00
c505a71ab1 enable geoclue2 2026-02-03 13:32:46 -05:00
d5eda18b84 noctalia stuff 2026-02-03 13:29:34 -05:00
d6f7dab062 noctalia 2026-02-03 13:20:14 -05:00
d0de943224 opencode: don't use glm-4.7-flash 2026-02-03 12:54:53 -05:00
22823ff55f update 2026-02-03 12:49:33 -05:00
d1ceb9fa6f waydroid -> waydroid-nftables 2026-02-02 13:33:49 -05:00
f776045d82 vm: enable + android 2026-02-02 13:23:10 -05:00
ff4192b3fc update 2026-02-02 13:08:00 -05:00
d8e3ed76ee oh-my-opencode: update 2026-02-02 13:05:18 -05:00
c4656c11d5 Reapply "oh-my-opencode: move to fork and update"
This reverts commit bc6e196548.
2026-02-02 13:05:01 -05:00
f648c7444d update 2026-01-31 00:56:31 -05:00
bc6e196548 Revert "oh-my-opencode: move to fork and update"
This reverts commit 94f98ae34c.
2026-01-31 00:56:23 -05:00
498154eb15 1gb hugepages 2026-01-31 00:53:37 -05:00
83a5e1b278 fmt 2026-01-31 00:53:29 -05:00
70ddbb1bf5 opencode: add note about coordinates and UI interaction 2026-01-29 21:09:48 -05:00
94f98ae34c oh-my-opencode: move to fork and update 2026-01-29 21:09:28 -05:00
aae9549f8a update 2026-01-29 14:51:34 -05:00
1052b54dfb opencode: overhaul oh-my-opencode config 2026-01-28 13:38:41 -05:00
0e3b77cc59 opencode: fix oh-my-opencode Prometheus + Atlas 2026-01-28 12:47:43 -05:00
39352b10bc opencode: add oh-my-opencode as a plugin 2026-01-28 12:22:48 -05:00
c31a6cc09e opencode: use my fork of oh-my-opencode 2026-01-28 12:18:25 -05:00
cb031d3d66 Reapply "add oh-my-opencode"
This reverts commit 8297cd01f4.
2026-01-28 12:16:00 -05:00
5cbb10b245 opencode: move away from claude 2026-01-28 12:04:23 -05:00
8297cd01f4 Revert "add oh-my-opencode"
This reverts commit 2b912cc38e.
2026-01-28 11:49:04 -05:00
2b912cc38e add oh-my-opencode 2026-01-28 11:38:16 -05:00
60317ef61e update 2026-01-28 11:25:26 -05:00
0a868cf3dd opencode: add info about android app UI interaction 2026-01-27 23:26:01 -05:00
3c6c3592a3 grayjay 2026-01-27 13:52:12 -05:00
2b38c0ecdc yarn: set static ip 2026-01-26 17:57:50 -05:00
980f5feadd wlx-overlay-s -> wayvr 2026-01-26 00:46:00 -05:00
3da2197134 update 2026-01-25 00:40:31 -05:00
78a02d9e3d update 2026-01-23 13:09:33 -05:00
91f3c88347 fmt 2026-01-22 14:17:54 -05:00
9571c1a321 move to python313 to fix jaraco-test instead 2026-01-22 14:13:53 -05:00
3614d12466 fix python312 jaraco-test 2026-01-22 14:13:30 -05:00
a29b92984d update 2026-01-22 14:13:03 -05:00
8f3ad44d34 fix hostPlatform 2026-01-22 12:25:57 -05:00
43fce477fd hostPlatform -> targetPlatform 2026-01-21 15:23:01 -05:00
3b5f4b8fa4 opencode: abstract out haiku model name 2026-01-21 15:21:28 -05:00
681cbcb117 yarn: fix impermiance home directory 2026-01-19 23:34:08 -05:00
b52af2bea8 yarn: disable steamos-update 2026-01-19 23:33:50 -05:00
9cc7c52061 opencode: remove molmo model 2026-01-17 23:47:20 -05:00
d83ca9a3f5 opencode: fix molmo model 2026-01-17 23:45:52 -05:00
72cff90ae0 remove power profile things 2026-01-15 14:48:20 -05:00
e34911fda4 opencode: change models 2026-01-14 22:22:43 -05:00
f51e6789f3 mreow: try and fix graphical corruption issue 2026-01-14 11:22:21 -05:00
ac129e39ed opencode: make oh-my-opencode.json declarative also 2026-01-13 14:46:55 -05:00
a022550c4e fix no-gui nixfmt formatter package 2026-01-12 15:31:01 -05:00
237612fd4c fix pkgs.system deprecation 2026-01-12 15:27:12 -05:00
61325ee8d7 nixfmt -> nixfmt-tree 2026-01-12 15:22:16 -05:00
ee4fce8541 nixfmt-rfc-style -> nixfmt 2026-01-12 15:20:00 -05:00
63f6aa0f65 update (without nixpkgs) 2026-01-12 15:17:30 -05:00
896310a2d4 fix opencode + use free model 2026-01-12 14:20:19 -05:00
d2f7e1a376 opencode: minimax m2.1 2026-01-09 12:42:22 -05:00
a6a67b8543 opencode: fix glm4.7 2026-01-09 12:30:18 -05:00
19 changed files with 646 additions and 145 deletions

273
flake.lock generated
View File

@@ -6,14 +6,14 @@
"llm-agents", "llm-agents",
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_2" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1767386128, "lastModified": 1771437256,
"narHash": "sha256-BJDu7dIMauO2nYRSL4aI8wDNtEm2KOb7lDKP3hxdrpo=", "narHash": "sha256-bLqwib+rtyBRRVBWhMuBXPCL/OThfokA+j6+uH7jDGU=",
"owner": "numtide", "owner": "numtide",
"repo": "blueprint", "repo": "blueprint",
"rev": "0ed984d51a3031065925ab08812a5434f40b93d4", "rev": "06ee7190dc2620ea98af9eb225aa9627b68b0e33",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -24,11 +24,11 @@
}, },
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1767461147, "lastModified": 1771121070,
"narHash": "sha256-TH/xTeq/RI+DOzo+c+4F431eVuBpYVwQwBxzURe7kcI=", "narHash": "sha256-aIlv7FRXF9q70DNJPI237dEDAznSKaXmL5lfK/Id/bI=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "7d59256814085fd9666a2ae3e774dc5ee216b630", "rev": "a2812c19f1ed2e5ed5ce2ef7109798b575c180e1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -46,11 +46,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1766051518, "lastModified": 1770019181,
"narHash": "sha256-znKOwPXQnt3o7lDb3hdf19oDo0BLP4MfBOYiWkEHoik=", "narHash": "sha256-hwsYgDnby50JNVpTRYlF3UR/Rrpt01OrxVuryF40CFY=",
"owner": "serokell", "owner": "serokell",
"repo": "deploy-rs", "repo": "deploy-rs",
"rev": "d5eff7f948535b9c723d60cd8239f8f11ddc90fa", "rev": "77c906c0ba56aabdbc72041bf9111b565cdd6171",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -66,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": {
@@ -83,11 +83,11 @@
"doomemacs": { "doomemacs": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1767773143, "lastModified": 1771637851,
"narHash": "sha256-QL/t9v2kFNxBDyNJb/s411o3mxujan+QX5IZglTdpTk=", "narHash": "sha256-GmrqCINhfdO3EthpVG8ZsoTdfzj3vaEdz9soJwiI2HY=",
"owner": "doomemacs", "owner": "doomemacs",
"repo": "doomemacs", "repo": "doomemacs",
"rev": "3e15fb36d7f94f0a218bda977be4d3f5da983a71", "rev": "ac649cce2abd1eb9d6d3f161928f9a7665b63310",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -106,11 +106,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767863967, "lastModified": 1771728721,
"narHash": "sha256-Yr4d2RRrnz1H1XE4gFYV9gXTXL/WEM8YguLHvtK3Oxs=", "narHash": "sha256-03w1Ka71dJlerySoIT5ZGm/+bx0qONZIjELY4ghkxIo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "emacs-overlay", "repo": "emacs-overlay",
"rev": "2bb26f2f973bfbb0bf127ff8d1ff5f0a12c0a355", "rev": "d7e50ce0c6e1ca698217a251d432799683d23831",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -151,6 +151,42 @@
"type": "github" "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": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -180,11 +216,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767864335, "lastModified": 1771683283,
"narHash": "sha256-2L1hc/V2oHMVsAKxyCoSD0q5lL2ap7MR8pk9U2YB9gs=", "narHash": "sha256-WxAEkAbo8dP7qiyPM6VN4ZGAxfuBVlNBNPkrqkrXVEc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "af7f14ddf770e269bb67cea19708198e618b5c75", "rev": "c6ed3eab64d23520bcbb858aa53fe2b533725d4a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -203,11 +239,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767822991, "lastModified": 1769548169,
"narHash": "sha256-iyrn9AcPZCoyxX4OT8eMkBsjG7SRUQXXS/V1JzxS7rA=", "narHash": "sha256-03+JxvzmfwRu+5JafM0DLbxgHttOQZkUtDWBmeUkN8Y=",
"owner": "nix-community", "owner": "nix-community",
"repo": "impermanence", "repo": "impermanence",
"rev": "82e5bc4508cab9e8d5a136626276eb5bbce5e9c5", "rev": "7b1d382faf603b6d264f58627330f9faa5cba149",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -224,19 +260,41 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767777502, "lastModified": 1772169624,
"narHash": "sha256-jXb2kBU6lO6Q6S9zoR/bhVLMjg2hM9EW8gWIwsmkj64=", "narHash": "sha256-YHaTNllFu90LdXqiNNoeDFnKwioa6lT+gXGGBOAvlfo=",
"owner": "Jovian-Experiments", "owner": "Titaniumtown",
"repo": "Jovian-NixOS", "repo": "Jovian-NixOS",
"rev": "a81fad3f4a70fdaa779e74b7da2063fa2e358028", "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",
@@ -249,11 +307,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767697030, "lastModified": 1771492583,
"narHash": "sha256-0iVZ99H3kR5h6Lhw8kDDuUc5C/k6iismeWgCS1qWTQ4=", "narHash": "sha256-nQzvnU4BGu8dA6BsPPCqmVcab/3ebVmHtX3ZWbW3Hxc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "lanzaboote", "repo": "lanzaboote",
"rev": "657469e8f036334db768daaf7732b1174676054b", "rev": "5e9380994665ef66c87ab8e22c913ff837174ce4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -271,11 +329,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1767866249, "lastModified": 1771730908,
"narHash": "sha256-34M8rysW3vuOYijI/Ns59bPkKPecaQW5oOupR45IRwQ=", "narHash": "sha256-AkmTeSJSGniBsCbc+Oy5emrQflyTzUweOVcQLf69z1A=",
"owner": "numtide", "owner": "numtide",
"repo": "llm-agents.nix", "repo": "llm-agents.nix",
"rev": "7173b37ee4ff714e34dab539aeccb0cc7e4b24dc", "rev": "352ee8c439a3c2c7987f6cfaebddcf87c924959a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -298,11 +356,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
"locked": { "locked": {
"lastModified": 1767833217, "lastModified": 1771638124,
"narHash": "sha256-HLr9k8g1Geq40PLsNw7I5N8TZkBYtQVjkgDPV/Kehxk=", "narHash": "sha256-rIF69lE48tBvOMFiIyserOa0MF3SXh1ZiRqv7WqlUew=",
"owner": "sodiboo", "owner": "sodiboo",
"repo": "niri-flake", "repo": "niri-flake",
"rev": "a789aa1512a9157d5d3392b27e60621fd0d83438", "rev": "a1dac2b08c329af22200104c3c4b18de5ded6034",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -331,11 +389,11 @@
"niri-unstable": { "niri-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1767792726, "lastModified": 1771305475,
"narHash": "sha256-qS4tdG2iUQwSld9dTH1gk8GcIOrRi9umMgPv8MGDIA0=", "narHash": "sha256-lqweVTwHhYc+9T33cysp38gVwxaibGJHriOPZXWyhCY=",
"owner": "YaLTeR", "owner": "YaLTeR",
"repo": "niri", "repo": "niri",
"rev": "10df9f4717cbd4efd20ae796eb6b0aa400127bdc", "rev": "a2a52911757cb3b497db9407592f9b4c439571ea",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -353,14 +411,14 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_3" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1767862133, "lastModified": 1771663801,
"narHash": "sha256-wxs62H8lxO+5FH+8JfJMwZyg4Yx3HwY67QSLwYi/olw=", "narHash": "sha256-gh0OVgAERhv1uSXzTgd0p7GioEG1Jg44FVxc72aM//A=",
"owner": "marienz", "owner": "marienz",
"repo": "nix-doom-emacs-unstraightened", "repo": "nix-doom-emacs-unstraightened",
"rev": "6337dd4ccf780724ea6e8adbf1c721fef7515ae3", "rev": "0bf7a181e28a8c3d1e89b18f79b15d516f2fb670",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -371,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": {
@@ -408,11 +466,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1767185284, "lastModified": 1771423359,
"narHash": "sha256-ljDBUDpD1Cg5n3mJI81Hz5qeZAwCGxon4kQW3Ho3+6Q=", "narHash": "sha256-yRKJ7gpVmXbX2ZcA8nFi6CMPkJXZGjie2unsiMzj3Ig=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "40b1a28dce561bea34858287fbb23052c3ee63fe", "rev": "740a22363033e9f1bb6270fbfb5a9574067af15b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -424,11 +482,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1767767207, "lastModified": 1771369470,
"narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=", "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5912c1772a44e31bf1c63c0390b90501e5026886", "rev": "0182a361324364ae3f436a63005877674cf45efb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -438,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",
@@ -448,11 +548,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767281941, "lastModified": 1770726378,
"narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=", "narHash": "sha256-kck+vIbGOaM/dHea7aTBxdFYpeUl/jHOy5W3eyRvVx8=",
"owner": "cachix", "owner": "cachix",
"repo": "pre-commit-hooks.nix", "repo": "pre-commit-hooks.nix",
"rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa", "rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -469,6 +569,7 @@
"home-manager": "home-manager", "home-manager": "home-manager",
"impermanence": "impermanence", "impermanence": "impermanence",
"jovian-nixos": "jovian-nixos", "jovian-nixos": "jovian-nixos",
"json2steamshortcut": "json2steamshortcut",
"lanzaboote": "lanzaboote", "lanzaboote": "lanzaboote",
"llm-agents": "llm-agents", "llm-agents": "llm-agents",
"niri": "niri", "niri": "niri",
@@ -476,6 +577,8 @@
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"noctalia": "noctalia",
"oh-my-opencode": "oh-my-opencode",
"rust-overlay": "rust-overlay", "rust-overlay": "rust-overlay",
"zen-browser": "zen-browser" "zen-browser": "zen-browser"
} }
@@ -487,11 +590,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767840362, "lastModified": 1771729765,
"narHash": "sha256-ZtsFqUhilubohNZ1TgpQIFsi4biZTwRH9rjZsDRDik8=", "narHash": "sha256-HNsDSR5bhLSrIpi9bTb2uTK1qnPo1xFSBxs6YmFyprk=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "d159ea1fc321c60f88a616ac28bab660092a227d", "rev": "be926cb1a76e8450ab2b92121b2e88d09fa4d41c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -545,6 +648,36 @@
"type": "github" "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": { "treefmt-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -553,11 +686,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767801790, "lastModified": 1770228511,
"narHash": "sha256-QfX6g3Wj2vQe7oBJEbTf0npvC6sJoDbF9hb2+gM5tf8=", "narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "778a1d691f1ef45dd68c661715c5bf8cbf131c80", "rev": "337a4fe074be1042a35086f15481d763b8ddc0e7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -604,11 +737,11 @@
"xwayland-satellite-unstable": { "xwayland-satellite-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1767830382, "lastModified": 1771195969,
"narHash": "sha256-0PgS7M1SV6JCN3MugFZPaP8J+Mr2o7lSDFTPVYZSIAY=", "narHash": "sha256-BUE41HjLIGPjq3U8VXPjf8asH8GaMI7FYdgrIHKFMXA=",
"owner": "Supreeeme", "owner": "Supreeeme",
"repo": "xwayland-satellite", "repo": "xwayland-satellite",
"rev": "74cf1a95a35fd7aec76432bc2cd9b310e0d908c5", "rev": "536bd32efc935bf876d6de385ec18a1b715c9358",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -627,11 +760,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767763594, "lastModified": 1771719171,
"narHash": "sha256-5ysv8EuVAgDoYmNuXEUNf7vBzdeRaFxeIlIndv5HMvs=", "narHash": "sha256-ZDE3//9Hg+9X5xXcDJ4k/d6qcOVQ4MrTmvf1zv/omZY=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "8b2302d8c10369c9135552cc892da75cff5ddb03", "rev": "2a71f2e720db962f2522b38704e23e11163e91ae",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -65,7 +65,12 @@
}; };
jovian-nixos = { 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"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@@ -73,6 +78,17 @@
url = "github:numtide/llm-agents.nix"; url = "github:numtide/llm-agents.nix";
inputs.nixpkgs.follows = "nixpkgs"; 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 =
@@ -96,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:

View File

@@ -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; [

View File

@@ -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

View File

@@ -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" ];
}
];
};
} }

View File

@@ -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

View File

@@ -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

View File

@@ -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}"
];
}
];
} }

View File

@@ -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; }
{ {

View 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");
};
};
}

View File

@@ -5,9 +5,105 @@
inputs, 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.system}.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.
@@ -20,6 +116,7 @@
## 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.
@@ -29,17 +126,70 @@
## Nix ## Nix
For using `nix build` append `-L` to get better visibility into the logs. 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. 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 = "z-ai/glm-4.7"; model = opus-model;
# small model used for titles # small model used for titles
small_model = "openrouter/openai/gpt-oss-20b:free"; 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 = {

Binary file not shown.

View File

@@ -11,7 +11,7 @@
}: }:
{ {
imports = [ imports = [
# ./vm.nix ./vm.nix
./steam.nix ./steam.nix
./networking.nix ./networking.nix
@@ -23,11 +23,6 @@
inputs.nixos-hardware.nixosModules.common-pc-ssd 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 = "0xFFFFFFFF"; hardware.amdgpu.overdrive.ppfeaturemask = "0xFFFFFFFF";
@@ -127,6 +122,13 @@
"msr" "msr"
"btusb" "btusb"
]; ];
kernelParams = [
# 1gb huge pages
"hugepagesz=1G"
"hugepages=3"
];
}; };
environment.etc = { environment.etc = {
@@ -162,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
@@ -198,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;

View File

@@ -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} = { # Bind mount entire home directory from persistent storage
directories = [ # (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 = [

Binary file not shown.

View File

@@ -14,6 +14,12 @@
inputs.nixos-hardware.nixosModules.framework-amd-ai-300-series inputs.nixos-hardware.nixosModules.framework-amd-ai-300-series
]; ];
# 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.
# This overrides nixos-hardware's 0x10 with 0x410 (last value wins in kernel cmdline).
# https://github.com/NixOS/nixos-hardware/pull/1692
boot.kernelParams = lib.mkAfter [ "amdgpu.dcdebugmask=0x410" ];
hardware.framework.laptop13.audioEnhancement.rawDeviceName = hardware.framework.laptop13.audioEnhancement.rawDeviceName =
lib.mkDefault "alsa_output.pci-0000_c1_00.6.analog-stereo"; lib.mkDefault "alsa_output.pci-0000_c1_00.6.analog-stereo";

View File

@@ -33,6 +33,22 @@
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 ];
@@ -75,6 +91,71 @@
"steam-run" "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 = {
@@ -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 # Disable gamescope from common.nix to avoid conflict with jovian-nixos
programs.gamescope.enable = lib.mkForce false; programs.gamescope.enable = lib.mkForce false;
} }

View File

@@ -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;

View File

@@ -42,7 +42,7 @@
} }
]; ];
application = [ pkgs.wlx-overlay-s ]; application = [ pkgs.wayvr ];
}; };
}; };
}; };