Compare commits
4 commits
781572c561
...
e07d1e3187
| Author | SHA1 | Date | |
|---|---|---|---|
| e07d1e3187 | |||
| 8b673159c2 | |||
| 73b91347ec | |||
| c53e9d23d4 |
15 changed files with 1090 additions and 895 deletions
|
|
@ -21,6 +21,7 @@ in
|
|||
[
|
||||
./hardware-configuration.nix
|
||||
"${impermanence}/nixos.nix"
|
||||
#./lemonade.nix
|
||||
];
|
||||
|
||||
boot.loader.grub.enable = true;
|
||||
|
|
|
|||
309
flake.lock
generated
309
flake.lock
generated
|
|
@ -7,11 +7,11 @@
|
|||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770895252,
|
||||
"narHash": "sha256-TUGZVDcC5xsrWVnpBNosAG1cTy+aWchCWXPyeLZdnGM=",
|
||||
"lastModified": 1779666993,
|
||||
"narHash": "sha256-W0yA7Y37oj5BBzl4ojO8dtv9MuOvdrIZDxtRjs7kpdg=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "2c86d41d07471f518e24f5cd1f586e4d2a32d12c",
|
||||
"revCount": 1331,
|
||||
"rev": "9b7f47f7f394dce0a17a7b161e0d2fe391ce72b3",
|
||||
"revCount": 1366,
|
||||
"type": "git",
|
||||
"url": "https://codeberg.org/LGFae/awww"
|
||||
},
|
||||
|
|
@ -20,28 +20,6 @@
|
|||
"url": "https://codeberg.org/LGFae/awww"
|
||||
}
|
||||
},
|
||||
"beads-flake": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs-25-11"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770530478,
|
||||
"narHash": "sha256-zopOpBqaHC2t+tGYtrHyalOUsFDZai2NmZZOKJs2vfQ=",
|
||||
"owner": "steveyegge",
|
||||
"repo": "beads",
|
||||
"rev": "c064f2aa99814d65a439b7b700fa02c44c4e0bb2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "steveyegge",
|
||||
"ref": "v0.49.6",
|
||||
"repo": "beads",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
@ -76,41 +54,23 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs-25-11"
|
||||
"nixpkgs-26-05"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1773681845,
|
||||
"narHash": "sha256-o8hrZrigP0JYcwnglCp8Zi8jQafWsxbDtRRPzuVwFxY=",
|
||||
"lastModified": 1779726825,
|
||||
"narHash": "sha256-RUkMrREjKDQrA+dA9+xZviGAxM5W1aVdyOr/bSYpHrE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "0759e0e137305bc9d0c52c204c6d8dffe6f601a6",
|
||||
"rev": "b179bde238977f7d4454fc770b1a727eaf55111c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.11",
|
||||
"ref": "release-26.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
@ -204,11 +164,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1693660503,
|
||||
"narHash": "sha256-B/g2V4v6gjirFmy+I5mwB2bCYc0l3j5scVfwgl6WOl8=",
|
||||
"lastModified": 1737420293,
|
||||
"narHash": "sha256-F1G5ifvqTpJq7fdkT34e/Jy9VCyzd5XfJ9TO8fHhJWE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-github-actions",
|
||||
"rev": "bd5bdbb52350e145c526108f4ef192eb8e554fa0",
|
||||
"rev": "f4158fa080ef4503c8f4c820967d946c2af31ec9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -217,31 +177,34 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-steipete-tools": {
|
||||
"nix-openclaw-tools": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1773561580,
|
||||
"narHash": "sha256-wT0bKTp45YnMkc4yXQvk943Zz/rksYiIjEXGdWzxnic=",
|
||||
"lastModified": 1778060041,
|
||||
"narHash": "sha256-tXWkN1VnwFG8XlRqW/e7VwbKnUfyU9tB7YDm9QHJXTY=",
|
||||
"owner": "openclaw",
|
||||
"repo": "nix-steipete-tools",
|
||||
"rev": "cd4c429ff3b3aaef9f92e59812cf2baf5704b86f",
|
||||
"repo": "nix-openclaw-tools",
|
||||
"rev": "4c1cee3c7eaf68f9de0f756be1484534f5bb5f34",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "openclaw",
|
||||
"repo": "nix-steipete-tools",
|
||||
"repo": "nix-openclaw-tools",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1773533765,
|
||||
"narHash": "sha256-qonGfS2lzCgCl59Zl63jF6dIRRpvW3AJooBGMaXjHiY=",
|
||||
"lastModified": 1780065812,
|
||||
"narHash": "sha256-SCSLUKBmwlSLGQ8Xbr8PjRFtiHNk0l9ktqkcmqdBkfE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "f8e82243fd601afb9f59ad230958bd073795cbfe",
|
||||
"rev": "b76b5639c0593e0aeb0b5879ad62d4b30596c144",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -268,11 +231,11 @@
|
|||
},
|
||||
"nixpkgs-25-11": {
|
||||
"locked": {
|
||||
"lastModified": 1773705440,
|
||||
"narHash": "sha256-xB30bbAp0e7ogSEYyc126mAJMt4FRFh8wtm6ADE1xuM=",
|
||||
"lastModified": 1779796641,
|
||||
"narHash": "sha256-ZsIrKmhp4vbBXoXXmR/tBXA/UCsAQiJL9vsgZEduhVY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "48652e9d5aea46e555b3df87354280d4f29cd3a3",
|
||||
"rev": "25f538306313eae3927264466c70d7001dcea1df",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -282,13 +245,45 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"nixpkgs-26-05": {
|
||||
"locked": {
|
||||
"lastModified": 1773646010,
|
||||
"narHash": "sha256-iYrs97hS7p5u4lQzuNWzuALGIOdkPXvjz7bviiBjUu8=",
|
||||
"lastModified": 1780203844,
|
||||
"narHash": "sha256-K5sT4jTpGs15ADhviMKNBH38REpPf5Q6mM1+N6cArVE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5b2c2d84341b2afb5647081c1386a80d7a8d8605",
|
||||
"rev": "b51242d7d43689db2f3be91bd05d5b24fbb469c4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-26.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1779560665,
|
||||
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_10": {
|
||||
"locked": {
|
||||
"lastModified": 1775710090,
|
||||
"narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4c1018dae018162ec878d42fec712642d214fdfa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -331,6 +326,19 @@
|
|||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1767892417,
|
||||
"narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
|
||||
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
|
||||
"type": "tarball",
|
||||
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1767364772,
|
||||
"narHash": "sha256-fFUnEYMla8b7UKjijLnMe+oVFOz6HjijGGNS1l7dYaQ=",
|
||||
|
|
@ -346,7 +354,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1767767207,
|
||||
"narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=",
|
||||
|
|
@ -362,13 +370,13 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"nixpkgs_7": {
|
||||
"locked": {
|
||||
"lastModified": 1773646010,
|
||||
"narHash": "sha256-iYrs97hS7p5u4lQzuNWzuALGIOdkPXvjz7bviiBjUu8=",
|
||||
"lastModified": 1779560665,
|
||||
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5b2c2d84341b2afb5647081c1386a80d7a8d8605",
|
||||
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -378,13 +386,29 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_7": {
|
||||
"nixpkgs_8": {
|
||||
"locked": {
|
||||
"lastModified": 1773507054,
|
||||
"narHash": "sha256-Q8U5VXgrcxmCxPtCCJCIZkcAX3FCZwGh1GNVIXxMND0=",
|
||||
"lastModified": 1770107345,
|
||||
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_9": {
|
||||
"locked": {
|
||||
"lastModified": 1775888245,
|
||||
"narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e80236013dc8b77aa49ca90e7a12d86f5d8d64c9",
|
||||
"rev": "13043924aaa7375ce482ebe2494338e058282925",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -394,35 +418,20 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_8": {
|
||||
"locked": {
|
||||
"lastModified": 1698318101,
|
||||
"narHash": "sha256-gUihHt3yPD7bVqg+k/UVHgngyaJ3DMEBchbymBMvK1E=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "63678e9f3d3afecfeafa0acead6239cdb447574c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"openclaw-flake": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"flake-utils": "flake-utils",
|
||||
"home-manager": "home-manager_3",
|
||||
"nix-steipete-tools": "nix-steipete-tools",
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
"nix-openclaw-tools": "nix-openclaw-tools",
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"qmd": "qmd"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1773761774,
|
||||
"narHash": "sha256-wCibqqrlSKReo5MHDdW97BLDAnor5qYezkox5Za8QxU=",
|
||||
"lastModified": 1780230011,
|
||||
"narHash": "sha256-AMJrXHEoL0iErcCtoksDJ6J9BgsYrH0UznmpxYh6E54=",
|
||||
"owner": "openclaw",
|
||||
"repo": "nix-openclaw",
|
||||
"rev": "57df3298491c49525324274e8b8cb5184bdd3458",
|
||||
"rev": "266284148647b425e48ec67335629a5c45880d4a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -434,11 +443,11 @@
|
|||
"plover": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1773500192,
|
||||
"narHash": "sha256-153KePiQ21OJgtRRA4jLQLqR0lY2wbAXT9qbcWIBc6Y=",
|
||||
"lastModified": 1777008591,
|
||||
"narHash": "sha256-fb4EJ4REj8GW8+Z74oFiikgM/5yXgdon6I/NZYlZYLI=",
|
||||
"owner": "openstenoproject",
|
||||
"repo": "plover",
|
||||
"rev": "b0470196a92295f5d5e6f26ab35320da603b01ae",
|
||||
"rev": "6b7a014100eca137e5e82961bb030156b114281a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -449,19 +458,20 @@
|
|||
},
|
||||
"plover-flake": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"nixpkgs": "nixpkgs_7",
|
||||
"plover": "plover",
|
||||
"plover-stroke": "plover-stroke",
|
||||
"plover2cat": "plover2cat",
|
||||
"plover_plugins_registry": "plover_plugins_registry",
|
||||
"rtf-tokenize": "rtf-tokenize"
|
||||
"rtf-tokenize": "rtf-tokenize",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1773724054,
|
||||
"narHash": "sha256-CXGYUnAbcqBHS2oQq1x1mHAcQebUZFSqfnbFb+mhpKk=",
|
||||
"lastModified": 1780122855,
|
||||
"narHash": "sha256-WDSnD4l6q3i7HAIp8mEHIw/5y4MuZudlKAwQ29Pl1aA=",
|
||||
"owner": "openstenoproject",
|
||||
"repo": "plover-flake",
|
||||
"rev": "529ac57c807581b6f24b9ab9d2c4cea784b5aa01",
|
||||
"rev": "93dc9e615fec8b645e1443c133441fc603dc5108",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -489,11 +499,11 @@
|
|||
"plover2cat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1771716484,
|
||||
"narHash": "sha256-38gmfJbjC1n+lrHI2FZmhRvSyOZ2j72VicpteU1H4Hw=",
|
||||
"lastModified": 1777279531,
|
||||
"narHash": "sha256-+yHSp/HCJnqJqpGaiP6d68pZa4MR2woA3AnJtrEb/OM=",
|
||||
"owner": "greenwyrt",
|
||||
"repo": "plover2CAT",
|
||||
"rev": "795eee5750e0841f77054f54487a3cdfe74c92d9",
|
||||
"rev": "36a590f22fa1612b96b7379a76fae8a0c581c793",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -518,15 +528,41 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"qmd": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"openclaw-flake",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"openclaw-flake",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775429264,
|
||||
"narHash": "sha256-bqIVaNRTa8H5vrw3RwsD7QdtTa0xNvRuEVzlzE1hIBQ=",
|
||||
"owner": "tobi",
|
||||
"repo": "qmd",
|
||||
"rev": "65cd1b3fd02891d1ee0eefa751620918664fa321",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tobi",
|
||||
"ref": "v2.1.0",
|
||||
"repo": "qmd",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"awww": "awww",
|
||||
"beads-flake": "beads-flake",
|
||||
"home-manager": "home-manager",
|
||||
"impermanence": "impermanence",
|
||||
"niri": "niri",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs-25-11": "nixpkgs-25-11",
|
||||
"nixpkgs-26-05": "nixpkgs-26-05",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"openclaw-flake": "openclaw-flake",
|
||||
"plover-flake": "plover-flake",
|
||||
|
|
@ -594,14 +630,14 @@
|
|||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_7"
|
||||
"nixpkgs": "nixpkgs_9"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1773698643,
|
||||
"narHash": "sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968=",
|
||||
"lastModified": 1777944972,
|
||||
"narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "8237de83e8200d16fe0c4467b02a1c608ff28044",
|
||||
"rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -625,32 +661,17 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"talon-nix": {
|
||||
"inputs": {
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": "nixpkgs_8"
|
||||
"nixpkgs": "nixpkgs_10"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746431176,
|
||||
"narHash": "sha256-bwXLFy2pDpNE60EkVltrmiRgwNWLo4eYBesP997p8mg=",
|
||||
"lastModified": 1776244716,
|
||||
"narHash": "sha256-+qZasmBp556iAiIx5ZdiTS1yI4aiPZ7XHaCRk6UopME=",
|
||||
"owner": "nix-community",
|
||||
"repo": "talon-nix",
|
||||
"rev": "cc110629c5f0be12e839b2aea6a16880f1822706",
|
||||
"rev": "a13f95e0d7b87d0127079245236bcd8705c6b4dd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -658,6 +679,24 @@
|
|||
"repo": "talon-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_8"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775636079,
|
||||
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
|
|
|||
108
flake.nix
108
flake.nix
|
|
@ -3,17 +3,18 @@
|
|||
|
||||
inputs = {
|
||||
nixpkgs-25-11.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||
nixpkgs-26-05.url = "github:NixOS/nixpkgs/nixos-26.05";
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
home-manager.url = "github:nix-community/home-manager/release-25.11";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs-25-11";
|
||||
home-manager.url = "github:nix-community/home-manager/release-26.05";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs-26-05";
|
||||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||
impermanence.url = "github:nix-community/impermanence";
|
||||
talon-nix.url = "github:nix-community/talon-nix";
|
||||
openclaw-flake.url = "github:openclaw/nix-openclaw";
|
||||
plover-flake.url = "github:openstenoproject/plover-flake";
|
||||
beads-flake.url = "github:steveyegge/beads?ref=v0.49.6";
|
||||
beads-flake.inputs.nixpkgs.follows = "nixpkgs-25-11";
|
||||
#beads-flake.url = "github:steveyegge/beads?ref=v0.49.6";
|
||||
#beads-flake.inputs.nixpkgs.follows = "nixpkgs-25-11";
|
||||
awww.url = "git+https://codeberg.org/LGFae/awww";
|
||||
niri.url = "github:hunner/niri/hunner/focus-to-workspace";
|
||||
#niri.inputs.nixpkgs.follows = "nixpkgs-25-11";
|
||||
|
|
@ -22,6 +23,7 @@
|
|||
outputs = {
|
||||
self,
|
||||
nixpkgs-25-11,
|
||||
nixpkgs-26-05,
|
||||
nixpkgs-unstable,
|
||||
home-manager,
|
||||
sops-nix,
|
||||
|
|
@ -30,7 +32,7 @@
|
|||
talon-nix,
|
||||
openclaw-flake,
|
||||
plover-flake,
|
||||
beads-flake,
|
||||
#beads-flake,
|
||||
awww,
|
||||
niri,
|
||||
...
|
||||
|
|
@ -101,54 +103,56 @@
|
|||
};
|
||||
|
||||
overlay-local = final: prev: {
|
||||
codex = prev.callPackage ./pkgs/codex/package.nix { };
|
||||
lean-ctx = prev.callPackage ./pkgs/lean-ctx/package.nix { };
|
||||
#codex = prev.callPackage ./pkgs/codex/package.nix { };
|
||||
flow = prev.callPackage ./pkgs/flow/package.nix { };
|
||||
opencode = prev.callPackage ./pkgs/opencode/package.nix { };
|
||||
pi-coding-agent = prev.callPackage ./pkgs/pi-coding-agent/package.nix { };
|
||||
beads =
|
||||
let
|
||||
bdBase =
|
||||
(
|
||||
final.callPackage "${beads-flake}/default.nix" {
|
||||
pkgs = final;
|
||||
self = beads-flake;
|
||||
}
|
||||
).overrideAttrs
|
||||
(old: {
|
||||
vendorHash = "sha256-RyOxrW0C+2E+ULhGeF2RbUhaUFt58sux7neHPei5QJI=";
|
||||
env = (old.env or { }) // {
|
||||
# Upstream pulls an ICU-backed regex dep; keep Nix build pure-Go.
|
||||
CGO_ENABLED = "0";
|
||||
};
|
||||
postPatch =
|
||||
(old.postPatch or "")
|
||||
+ ''
|
||||
# Upstream source currently references a removed internal package.
|
||||
rm -f cmd/bd/integration_test_stubs_test.go
|
||||
rm -rf examples/monitor-webui
|
||||
'';
|
||||
});
|
||||
in
|
||||
final.stdenv.mkDerivation {
|
||||
pname = "beads";
|
||||
version = bdBase.version;
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp ${bdBase}/bin/bd $out/bin/bd
|
||||
xai-grok = prev.callPackage ./pkgs/xai-grok/package.nix { };
|
||||
#beads =
|
||||
# let
|
||||
# bdBase =
|
||||
# (
|
||||
# final.callPackage "${beads-flake}/default.nix" {
|
||||
# pkgs = final;
|
||||
# self = beads-flake;
|
||||
# }
|
||||
# ).overrideAttrs
|
||||
# (old: {
|
||||
# vendorHash = "sha256-RyOxrW0C+2E+ULhGeF2RbUhaUFt58sux7neHPei5QJI=";
|
||||
# env = (old.env or { }) // {
|
||||
# # Upstream pulls an ICU-backed regex dep; keep Nix build pure-Go.
|
||||
# CGO_ENABLED = "0";
|
||||
# };
|
||||
# postPatch =
|
||||
# (old.postPatch or "")
|
||||
# + ''
|
||||
# # Upstream source currently references a removed internal package.
|
||||
# rm -f cmd/bd/integration_test_stubs_test.go
|
||||
# rm -rf examples/monitor-webui
|
||||
# '';
|
||||
# });
|
||||
# in
|
||||
# final.stdenv.mkDerivation {
|
||||
# pname = "beads";
|
||||
# version = bdBase.version;
|
||||
# phases = [ "installPhase" ];
|
||||
# installPhase = ''
|
||||
# mkdir -p $out/bin
|
||||
# cp ${bdBase}/bin/bd $out/bin/bd
|
||||
|
||||
ln -s bd $out/bin/beads
|
||||
# ln -s bd $out/bin/beads
|
||||
|
||||
mkdir -p $out/share/fish/vendor_completions.d
|
||||
mkdir -p $out/share/bash-completion/completions
|
||||
mkdir -p $out/share/zsh/site-functions
|
||||
# mkdir -p $out/share/fish/vendor_completions.d
|
||||
# mkdir -p $out/share/bash-completion/completions
|
||||
# mkdir -p $out/share/zsh/site-functions
|
||||
|
||||
$out/bin/bd completion fish > $out/share/fish/vendor_completions.d/bd.fish
|
||||
$out/bin/bd completion bash > $out/share/bash-completion/completions/bd
|
||||
$out/bin/bd completion zsh > $out/share/zsh/site-functions/_bd
|
||||
'';
|
||||
meta = bdBase.meta;
|
||||
};
|
||||
# $out/bin/bd completion fish > $out/share/fish/vendor_completions.d/bd.fish
|
||||
# $out/bin/bd completion bash > $out/share/bash-completion/completions/bd
|
||||
# $out/bin/bd completion zsh > $out/share/zsh/site-functions/_bd
|
||||
# '';
|
||||
# meta = bdBase.meta;
|
||||
# };
|
||||
};
|
||||
in
|
||||
{
|
||||
|
|
@ -176,18 +180,14 @@
|
|||
|
||||
nixosConfigurations.ruil = nixpkgs-25-11.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
inherit openclaw-flake;
|
||||
};
|
||||
modules = [
|
||||
({ ... }: { nixpkgs.overlays = [ overlay-unstable overlay-etherpad-fixes overlay-local openclaw-flake.overlays.default ]; })
|
||||
home-manager.nixosModules.home-manager
|
||||
({ ... }: { nixpkgs.overlays = [ overlay-unstable overlay-etherpad-fixes overlay-local ]; })
|
||||
./hosts/ruil/configuration.nix
|
||||
sops-nix.nixosModules.sops
|
||||
];
|
||||
};
|
||||
|
||||
nixosConfigurations.liminal = nixpkgs-25-11.lib.nixosSystem {
|
||||
nixosConfigurations.liminal = nixpkgs-26-05.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
inherit
|
||||
|
|
@ -195,7 +195,7 @@
|
|||
impermanence
|
||||
talon-nix
|
||||
plover-flake
|
||||
beads-flake
|
||||
#beads-flake
|
||||
awww
|
||||
niri
|
||||
;
|
||||
|
|
|
|||
|
|
@ -138,8 +138,16 @@
|
|||
|
||||
# sops-nix secrets
|
||||
sops.defaultSopsFile = ./secrets/config.yaml;
|
||||
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
||||
sops.age.sshKeyPaths = [ "/persist/etc/ssh/ssh_host_ed25519_key" ];
|
||||
sops.secrets.hashedPassword.neededForUsers = true;
|
||||
sops.secrets.hashedPassword-root.neededForUsers = true;
|
||||
|
||||
users.users.root = {
|
||||
hashedPasswordFile = config.sops.secrets.hashedPassword-root.path;
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAqd6VkCyGOaFVfh61+hVKOvYaCZsCChQq3c6rNH/ifG me@hunner.dev"
|
||||
];
|
||||
};
|
||||
|
||||
# Define a user account
|
||||
users.users.hunner = {
|
||||
|
|
@ -166,6 +174,8 @@
|
|||
unzip
|
||||
lsof
|
||||
gnupg
|
||||
znc
|
||||
zncModules.palaver
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
hashedPassword-root: ENC[AES256_GCM,data:50/GFDAyvI1QvDv8JNoXHTzeCHY+ZK0+DQdg+8cfpdm2Vx5CAKXQ5cBxUNv9dKqLugS5vDtZTbxtHB/MIXFvEtV4wN1k6xhC3A==,iv:jZXZrGhew33nymDKUrhcp/HGu3WLeb2zZhryoHcvVQ4=,tag:kya/1TH8dsk0PcnqSg4Skw==,type:str]
|
||||
hashedPassword: ENC[AES256_GCM,data:iUN2iaC2RPDa/vq6H7Xp2KqHYcHfQHU6IhZ2FWXEuaNhByFzpyMbJC7N2bmbDUD3ERLudHg686Uqt6XJV2PevQoXa1iYhv9cLw==,iv:ekGMzP2TXSrxLkqZVclHgN1NQIv6OqtsVLHdvsTgXQc=,tag:RRSZCHjmhn8ClrUTYteWWA==,type:str]
|
||||
syncoidSshKey: ENC[AES256_GCM,data:tfNUtOa40qTuoE/Ge5wBhQOTqBcYHvjlyhyBclFyqcbWSTSjZzh0WbkZaM5002YHO0izWD5V4TrK2lTgEYRq3wrMyWhkKgHj51LIBqJmw08Gk1+JQ9+hfRoM2ql6GtJLzUb0bOewPzY5aqDBNVNUrMPF5NyqYFDOoUfAbwWy3yOYdXVOsYwUnGMH+g8MnXdvnBT7RYVGZYLp8Kfj2qi6a+WDQh8qBwaJDKeNhVFOy3Ft00e8ykT5koK4pHSK5D8g5xNXzbMibB3CtGW90wTS2D/o1Ybxkh2ZjcescxD+U/NMIHhRuYdzv/1yiiu1IWnDYjcHCnLUfAiVac5IoCtu0IMmC+jy76Z1lxYmhQt6PINAeh4LHTrtp+5+RGKW+XIzVYguwTcH1WSJGOkHCe7a3VKyI0CrUkD9mhgEjvSLKPVOPgmU+vNggbqu9HrGUlCz53acvdYN8GQP9xKOZLjDgYk5d/zRW5NMj3H7PPW+eLpT/P9i+nISui0WDZQVnFo2IEiElRHkDu2pbENNUvKxDIMkb0nCR8BE+a2e,iv:okNdm2cKrP4DDPflGaN5XRZh/OMFhl30sdTdbbvqsGQ=,tag:O9fv2X1nAf9Ed0FN3xlV3A==,type:str]
|
||||
zimaKnownHosts: ENC[AES256_GCM,data:7osQI01DJ8OQBEOIYXt0HO1ZZg1iDW6dTfxEyo3luJ5er5DlgZqvxXHuiiHT6tMzjP+uyQCiN0SnQgDBjFP7lp4i7SIToF+4aAkGLbhCoTND4BjwtoBn4t+nbYgAgPkSFvvqhXgaKhdTYPUZBdxp0d8yUd+EA798mZwsS1k2rJYXcq0D1Dn2D7JmGAD1vD4GC76VP5L8XJC3Wc0MVYOTUeftqLHZQ7H5qCIu+QEFwlQw4CPt7IiClN0u2yx+y2yOwFkw6A3+F5/BqGzEh1KsxBXF+THDuzJpipLiCYzjnK04OZa9x/LR7r0A7XZrDkTMD+NSCLsoZzQOv+9cNw4+6qIYKBvarjAOIdZpP/EHiXrDYy53jrOeG3SU+P/NggL0ryq9aHEjUhX+idAXfspYl5EklrlXYw0JjZE8T6NbGP7706VPrcHzGoB1YjAvnAmQP8846ZH99yw8wWDuEoG6i8O0VaY0Q+RVfPZgKbUVqd0L936VMMN6t8jXSPvtOFCjviqgGCfTC9mcciQ2C83G+j9YWi0rM9/dX04m6a6eOBFtTAp4ryKRI6zoSn7Wh+nF1I3M8Yd+qUE7iVJpDOFb4IjJLNy6E+Xw/mTNlIRBET+2Pqmem+pcqmlr8opg4X0Rn2jp23PzDmH5mBrTJpfs/trPaOZLAZ5N+JKX1WLsKIZdT0AK4AVcs7CCj2FSIVicnrR8H9mwgVCY6HDHJvk7E460bo1Jg0YFYsauvd7FeNpCTk3VnFjsloR7WcXj9jrlkcSoR3d/AuelNreXT2XupVU5pHOHDYPd2fvqTd3i0ZEIhSm71p6Ely6HVONwUU9HHMwrnuXccW3YZyD2VsZKJ61AeG01WRSbOF/fPExSpsU1wiIqMrImD13Sh2je0gmznbJGvm+muvknUCUYprH7WORK0ib5mihfwYalPAnwLNHuECQJt+EdIRQJyGay8Ju5brA+N9o7ImeRWtG5ITdTCZba5QvJGN8+Cdkv1WpFkKnEXihdFBwnd/fuswkNGA04m5YSkg2JBstEKDkDIOq9yICtDfPVMi4H7obqbhJ3GAbQ2O6sPLt3NF4i1ib+TiH6,iv:thh4YjrSjpAdBtQgyW/M6fU3V3Sa/5X5EYKwPoJazn8=,tag:5VYDipu5iMnsI+qp0xNSTg==,type:str]
|
||||
|
|
@ -21,7 +22,7 @@ sops:
|
|||
NDJWOEMyU1hwcHRXMUh6RkEzOFhndG8KY/fCz/+MfGQlnLC3Kzo5hYOmd0fRakDQ
|
||||
JjVD+zxHFqN5b3U03iS9WIsdjF3hRFqqnZMOeXTUDezDfTNPdmUuMg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-12-30T06:09:33Z"
|
||||
mac: ENC[AES256_GCM,data:1Rwi9cvkH2aWmbkX4ZcvUu1MRPMgX5ZVFQ29pJ/q8RGBtYe+yH8c5ODqWkkvlO3Ok1gFg/8fPIoXfJ2il39MTdnt/jbng+z9TupK6raYsIonWcYEMz6hY0imASgF4m8OtS5GcVelRUUOPuYBVdQa9+VCRd1L3tM8HYt6AgiumHI=,iv:Dp0WVo3otn9BKKujtbILAqvdM/79ENum8QVgwSJpSmw=,tag:8+QhXLeDd3maSHj7ip34gg==,type:str]
|
||||
lastmodified: "2026-04-11T21:27:21Z"
|
||||
mac: ENC[AES256_GCM,data:FkaHQIBs3rgAPtrL28EZon8PbWFQNOBsG8zIe1YY+lUxC4EY1KkbUo6Hjvla2XA17jxLeNXxGl+3f9E86jknJ850eSd/ud1KbmH+ycF1AwTJtpYzItC3WxCtxIfyAMgQA4KFYcIBU3Zgi0I4Ae1VUAQcZlKrLUyvEJYxI3vmBVo=,iv:CoFgIfrsnZJB/+op1gz8fmdpy/pHK0LGmDKKp2UpCKc=,tag:16Dai5xHFKZ2V1tP6JYpUw==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.11.0
|
||||
version: 3.12.1
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
impermanence,
|
||||
talon-nix,
|
||||
plover-flake,
|
||||
beads-flake,
|
||||
#beads-flake,
|
||||
awww,
|
||||
niri,
|
||||
... }:
|
||||
|
|
@ -74,10 +74,37 @@
|
|||
enable = true;
|
||||
package = pkgs.unstable.ollama-vulkan;
|
||||
loadModels = [ "qwen3.5" "gpt-oss" ];
|
||||
acceleration = "vulkan";
|
||||
#acceleration = "vulkan";
|
||||
#acceleration = "rocm";
|
||||
#rocmOverrideGfx = "11.0.2";
|
||||
};
|
||||
services.llama-swap = {
|
||||
enable = false;
|
||||
port = 11434;
|
||||
settings = let
|
||||
llamaServer = lib.getExe' pkgs.unstable.llama-cpp-vulkan "llama-server";
|
||||
in {
|
||||
hooks.on_startup.preload = [ "qwen3.5:4b" ];
|
||||
models."qwen3.5:4b" = {
|
||||
cmd = "${llamaServer} --port \${PORT} -m /var/lib/llama-swap/models/Qwen_Qwen3.5-4B-Q5_K_L.gguf -c 65536";
|
||||
aliases = [ "qwen" ];
|
||||
};
|
||||
models."qwen3.5:35b" = {
|
||||
cmd = "${llamaServer} --port \${PORT} -m /var/lib/llama-swap/models/Qwen_Qwen3.5-35B-A3B-Q5_K_L.gguf -c 65536 --mmap --gpu-layers 35";
|
||||
aliases = [ "qwen3.5" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd.services.llama-swap = {
|
||||
environment = {
|
||||
HOME = "/var/lib/llama-swap";
|
||||
XDG_CACHE_HOME = "/var/cache/llama-swap";
|
||||
};
|
||||
serviceConfig = {
|
||||
StateDirectory = "llama-swap";
|
||||
CacheDirectory = "llama-swap";
|
||||
};
|
||||
};
|
||||
|
||||
networking.hostId = "3294c9a2"; # Required for ZFS
|
||||
networking.hostName = "liminal";
|
||||
|
|
@ -87,6 +114,7 @@
|
|||
''
|
||||
127.0.0.1 keycloak
|
||||
127.0.0.1 k3d-cmvm
|
||||
172.17.0.1 docker.host.internal
|
||||
'';
|
||||
|
||||
environment.persistence."/persist" = {
|
||||
|
|
@ -190,10 +218,16 @@
|
|||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
services.xserver.displayManager.sessionCommands = ''
|
||||
(
|
||||
sleep 2
|
||||
${pkgs.xrandr}/bin/xrandr --output eDP --mode 2560x1600 --rate 120 --primary --auto || true
|
||||
) &
|
||||
'';
|
||||
|
||||
# Enable the GNOME Desktop Environment.
|
||||
services.displayManager.gdm.enable = true;
|
||||
services.displayManager.gdm.wayland = true;
|
||||
#services.displayManager.gdm.wayland = true;
|
||||
services.displayManager.gdm.autoSuspend = true;
|
||||
services.desktopManager.gnome.enable = true;
|
||||
|
||||
|
|
@ -217,6 +251,15 @@
|
|||
pkgs.xdg-desktop-portal-gnome
|
||||
#pkgs.xdg-desktop-portal-hyprland
|
||||
];
|
||||
|
||||
config = {
|
||||
hyprland = {
|
||||
default = [ "hyprland" "gtk" ];
|
||||
"org.freedesktop.impl.portal.ScreenCast" = [ "hyprland" ];
|
||||
"org.freedesktop.impl.portal.Screenshot" = [ "wlr" ];
|
||||
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
|
|
@ -261,7 +304,7 @@
|
|||
|
||||
# sops-nix secrets
|
||||
sops.defaultSopsFile = ./secrets/config.yaml;
|
||||
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
||||
sops.age.sshKeyPaths = [ "/persist/etc/ssh/ssh_host_ed25519_key" ];
|
||||
sops.secrets.hashedPassword.neededForUsers = true;
|
||||
|
||||
# Define user accounts
|
||||
|
|
@ -273,20 +316,21 @@
|
|||
home = "/home/agents";
|
||||
createHome = true;
|
||||
homeMode = "0770";
|
||||
extraGroups = [ "docker" "audio" "video" "dialout" ];
|
||||
extraGroups = [ "docker" "audio" "video" "dialout" "input" ];
|
||||
shell = pkgs.zsh;
|
||||
packages = with pkgs; [
|
||||
nodejs
|
||||
nodejs_24
|
||||
docker-credential-helpers
|
||||
pass
|
||||
pkgs.unstable.claude-code
|
||||
codex
|
||||
pkgs.unstable.codex
|
||||
just
|
||||
socat
|
||||
pkgs.beads
|
||||
#pkgs.beads
|
||||
gh
|
||||
pkgs.unstable.opencode
|
||||
pkgs.pi-coding-agent
|
||||
pkgs.xai-grok
|
||||
python3
|
||||
clang
|
||||
clangStdenv
|
||||
|
|
@ -294,6 +338,7 @@
|
|||
just
|
||||
dtach
|
||||
sox # claude voice
|
||||
#lean-ctx
|
||||
];
|
||||
};
|
||||
users.users.hunner = {
|
||||
|
|
@ -315,17 +360,17 @@
|
|||
arandr
|
||||
xclip
|
||||
scrot
|
||||
xorg.xrandr
|
||||
xorg.xsetroot
|
||||
xorg.xset
|
||||
xorg.xev
|
||||
xrandr
|
||||
xsetroot
|
||||
xset
|
||||
xev
|
||||
hsetroot
|
||||
redshift
|
||||
pkgs.unstable.code-cursor
|
||||
pkgs.unstable.cursor-cli
|
||||
pwvucontrol
|
||||
pamixer
|
||||
helvum
|
||||
#helvum
|
||||
#hp15c
|
||||
#nonpareil
|
||||
kitty # for Hyprland
|
||||
|
|
@ -336,6 +381,8 @@
|
|||
alsa-scarlett-gui
|
||||
#pkgs.unstable.ndi-6
|
||||
#(pkgs.unstable.flameshot.override { enableWlrSupport = true; })
|
||||
grim
|
||||
slurp
|
||||
hyprshot
|
||||
hyprpicker
|
||||
flameshot
|
||||
|
|
@ -348,10 +395,10 @@
|
|||
pinentry-gnome3
|
||||
gnupg
|
||||
pkgs.unstable.firefox-devedition
|
||||
nodejs
|
||||
nodejs_24
|
||||
slack
|
||||
mplayer
|
||||
ffmpeg
|
||||
ffmpeg-full
|
||||
docker-credential-helpers
|
||||
jetbrains-toolbox
|
||||
pass
|
||||
|
|
@ -369,8 +416,8 @@
|
|||
#ruff # for zed
|
||||
#goose-cli
|
||||
pkgs.unstable.claude-code
|
||||
codex
|
||||
neofetch
|
||||
pkgs.unstable.codex
|
||||
#neofetch
|
||||
eww
|
||||
quickshell
|
||||
fuzzel
|
||||
|
|
@ -399,17 +446,23 @@
|
|||
socat
|
||||
#plover-flake.packages.${pkgs.stdenv.hostPlatform.system}.plover-full
|
||||
pkgs.unstable.zoom-us
|
||||
pkgs.beads
|
||||
#pkgs.beads
|
||||
awww.packages.${pkgs.stdenv.hostPlatform.system}.awww
|
||||
nix-index # for nix-locate
|
||||
sops
|
||||
bitwarden-desktop
|
||||
bitwarden-cli
|
||||
#bitwarden-desktop
|
||||
#bitwarden-cli
|
||||
itch
|
||||
dtach
|
||||
whois
|
||||
plus42
|
||||
sox # claude voice
|
||||
pkgs.pi-coding-agent
|
||||
pkgs.xai-grok
|
||||
xrandr-invert-colors
|
||||
xcalib
|
||||
#lean-ctx
|
||||
kanata
|
||||
];
|
||||
};
|
||||
systemd.user.services = {
|
||||
|
|
@ -417,12 +470,15 @@
|
|||
description = "PolKit Authentication Agent";
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
wants = [ "graphical-session.target" ];
|
||||
partOf = [ "graphical-session.target" ];
|
||||
after = [ "graphical-session.target" ];
|
||||
unitConfig.StartLimitIntervalSec = 0;
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||
Environment = "GDK_BACKEND=wayland,x11";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 1;
|
||||
RestartSec = 5;
|
||||
TimeoutStopSec = 10;
|
||||
};
|
||||
};
|
||||
|
|
@ -466,7 +522,7 @@
|
|||
bat
|
||||
git
|
||||
vim
|
||||
emacs
|
||||
emacs-pgtk
|
||||
wget
|
||||
curl
|
||||
htop
|
||||
|
|
@ -486,8 +542,11 @@
|
|||
devenv
|
||||
lsof
|
||||
sg3_utils
|
||||
libimobiledevice
|
||||
ifuse
|
||||
];
|
||||
|
||||
services.usbmuxd.enable = true;
|
||||
services.clipmenu.enable = true;
|
||||
services.picom = {
|
||||
enable = true;
|
||||
|
|
@ -510,7 +569,7 @@
|
|||
};
|
||||
programs._1password-gui = {
|
||||
enable = true;
|
||||
polkitPolicyOwners = [ "hunner" ];
|
||||
polkitPolicyOwners = [ "hunner" "agents" ];
|
||||
};
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,10 @@
|
|||
{ config, lib, pkgs, modulesPath, openclaw-flake, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
|
|
@ -16,9 +22,13 @@
|
|||
|
||||
# Enable nix flakes
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
# Keep a little headroom so remote deploys can still complete GC/DB updates.
|
||||
nix.settings.min-free = 1024 * 1024 * 1024;
|
||||
nix.settings.max-free = 2 * 1024 * 1024 * 1024;
|
||||
nix.optimise.automatic = true;
|
||||
nix.gc.automatic = true;
|
||||
nix.gc.options = "--delete-older-than 30d";
|
||||
nix.gc.dates = "daily";
|
||||
nix.gc.options = "--delete-older-than 7d";
|
||||
|
||||
# sops-nix secrets
|
||||
sops.defaultSopsFile = ./secrets/config.yaml;
|
||||
|
|
@ -34,10 +44,10 @@
|
|||
owner = "nginx";
|
||||
mode = "0400";
|
||||
};
|
||||
sops.secrets.openclaw-env = {
|
||||
owner = "ruil";
|
||||
mode = "0400";
|
||||
};
|
||||
#sops.secrets.openclaw-env = {
|
||||
# owner = "ruil";
|
||||
# mode = "0400";
|
||||
#};
|
||||
|
||||
# HTTPS certificates for proxied `*.hunner.dev` sites (Cloudflare Full strict).
|
||||
security.acme = {
|
||||
|
|
@ -66,38 +76,12 @@
|
|||
users.users.ruil = {
|
||||
uid = 1001;
|
||||
isNormalUser = true;
|
||||
linger = true;
|
||||
hashedPasswordFile = config.sops.secrets.hashedPassword-ruil.path;
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAqd6VkCyGOaFVfh61+hVKOvYaCZsCChQq3c6rNH/ifG me@hunner.dev"
|
||||
];
|
||||
};
|
||||
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.ruil = { lib, ... }: {
|
||||
imports = [ openclaw-flake.homeManagerModules.openclaw ];
|
||||
|
||||
home.stateVersion = "25.11";
|
||||
|
||||
# Keep credentials in ruil-owned files to avoid root-only bot access.
|
||||
programs.openclaw.enable = true;
|
||||
|
||||
# Keep ~/.openclaw/openclaw.json user-managed (Home Manager should not touch it).
|
||||
home.file.".openclaw/openclaw.json".enable = lib.mkForce false;
|
||||
home.activation.openclawConfigFiles = lib.mkForce (lib.hm.dag.entryAfter [ "openclawDirs" ] "");
|
||||
|
||||
# openclaw onboarding can exceed Node's default old-space limit on 1 GiB hosts.
|
||||
home.sessionVariables.NODE_OPTIONS = "--max-old-space-size=1536";
|
||||
|
||||
# Environment file is provisioned by sops-nix (`sops.secrets.openclaw-env`).
|
||||
systemd.user.services.openclaw-gateway = {
|
||||
Install.WantedBy = [ "default.target" ];
|
||||
Service.Environment = [ "NODE_OPTIONS=--max-old-space-size=1536" ];
|
||||
Service.EnvironmentFile = [ config.sops.secrets.openclaw-env.path ];
|
||||
};
|
||||
};
|
||||
|
||||
# Packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
|
|
@ -114,6 +98,11 @@
|
|||
services.openssh.settings.PasswordAuthentication = false;
|
||||
services.openssh.settings.KbdInteractiveAuthentication = false;
|
||||
|
||||
services.journald.extraConfig = ''
|
||||
SystemMaxUse=200M
|
||||
RuntimeMaxUse=100M
|
||||
'';
|
||||
|
||||
# Tailscale
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
|
|
@ -203,11 +192,13 @@
|
|||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
boot.loader.grub.configurationLimit = 5;
|
||||
|
||||
# Add swap on small VPS instances to avoid OOM-kill loops.
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/var/lib/swapfile";
|
||||
size = 4096; # MiB
|
||||
size = 2048; # MiB
|
||||
}
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@
|
|||
|
||||
# sops-nix secrets
|
||||
sops.defaultSopsFile = ./secrets/config.yaml;
|
||||
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
||||
sops.age.sshKeyPaths = [ "/persist/etc/ssh/ssh_host_ed25519_key" ];
|
||||
sops.secrets.hashedPassword.neededForUsers = true;
|
||||
|
||||
users.users."root".openssh.authorizedKeys.keys = [
|
||||
|
|
|
|||
4
justfile
4
justfile
|
|
@ -32,6 +32,10 @@ deploy-liminal:
|
|||
deploy-zima:
|
||||
just deploy-auto zima root@zima
|
||||
|
||||
# Shortcut: deploy cryochamber
|
||||
deploy-cryochamber:
|
||||
just deploy-auto cryochamber root@cryochamber
|
||||
|
||||
update-package package version="":
|
||||
if [ -n "{{version}}" ]; then scripts/update-local-package {{package}} --version {{version}}; else scripts/update-local-package {{package}}; fi
|
||||
|
||||
|
|
|
|||
|
|
@ -19,20 +19,20 @@
|
|||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "codex";
|
||||
version = "0.110.0";
|
||||
version = "0.122.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openai";
|
||||
repo = "codex";
|
||||
tag = "rust-v${finalAttrs.version}";
|
||||
#hash = lib.fakeHash;
|
||||
hash = "sha256-RoWKOZCW5qR+NyBqU/AoloVYGscfiVaHZqnaTISTj9w=";
|
||||
hash = "sha256-CpXWP64URsgt/PhQrUkrT87KG633hxRUIY0wWrTFmjk=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/codex-rs";
|
||||
|
||||
#cargoHash = lib.fakeHash;
|
||||
cargoHash = "sha256-tj0OAEvydpdT6haVtRXv5rWpeSFM3aYXVyH6jqvJKJ8=";
|
||||
cargoHash = "sha256-2qtMLWSdYWJ+blNfCHXtgmzizuM1HgpTGa5RQ3U/AEM=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
clang
|
||||
|
|
|
|||
35
pkgs/lean-ctx/package.nix
Normal file
35
pkgs/lean-ctx/package.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "lean-ctx";
|
||||
version = "2.21.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yvgude";
|
||||
repo = "lean-ctx";
|
||||
rev = "40b840c548a40d03fe91d5aa412fc7c92da4b9e0";
|
||||
hash = "sha256-3/YAmN4iO7cngj2DbXm9vAutxiz483qf7a81odxQOl8=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/rust";
|
||||
|
||||
cargoLock = {
|
||||
lockFile = "${finalAttrs.src}/rust/Cargo.lock";
|
||||
};
|
||||
|
||||
# Upstream's test suite exercises shell/sandbox behavior and is not stable
|
||||
# under Nix builds, but the release binary itself builds fine.
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "Context Intelligence Engine with CCP";
|
||||
homepage = "https://github.com/yvgude/lean-ctx";
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "lean-ctx";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
1294
pkgs/pi-coding-agent/package-lock.json
generated
1294
pkgs/pi-coding-agent/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -3,6 +3,6 @@
|
|||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@mariozechner/pi-coding-agent": "0.64.0"
|
||||
"@mariozechner/pi-coding-agent": "0.73.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,10 +5,10 @@
|
|||
}:
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "pi-coding-agent";
|
||||
version = "0.64.0";
|
||||
version = "0.73.0";
|
||||
|
||||
src = ./.;
|
||||
npmDepsHash = "sha256-CS9ZV08xjv7KIkMvnQIHQCMLbeoiYPI7PYtaQawOitE=";
|
||||
npmDepsHash = "sha256-rWNknuzbVsEMyahnOg5ku1e3xBn4/bG5EmkvvEr52Nw=";
|
||||
|
||||
inherit nodejs;
|
||||
dontNpmBuild = true;
|
||||
|
|
|
|||
39
pkgs/xai-grok/package.nix
Normal file
39
pkgs/xai-grok/package.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchurl,
|
||||
nodejs,
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "xai-grok";
|
||||
version = "0.2.38";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@xai-official/grok-linux-x64/-/grok-linux-x64-${version}.tgz";
|
||||
hash = "sha256-E023XTq3PwPH2zBuOh4jFoUh08o6p4IPfX0x7KFUleE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ nodejs ];
|
||||
|
||||
unpackPhase = ''
|
||||
tar -xzf $src
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
node -e "const fs=require('fs'),z=require('zlib'); const b=z.brotliDecompressSync(fs.readFileSync('package/bin/grok.br')); fs.writeFileSync('$out/bin/grok', b, {mode:0o755});"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Official xAI Grok Build CLI";
|
||||
homepage = "https://x.ai/cli";
|
||||
license = lib.licenses.unfree;
|
||||
mainProgram = "grok";
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue