Compare commits
1 Commits
yshtola-bu
...
emulation
| Author | SHA1 | Date | |
|---|---|---|---|
| 6f2b5f7f57 |
288
flake.lock
generated
288
flake.lock
generated
@@ -9,11 +9,11 @@
|
|||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771170334,
|
"lastModified": 1761836926,
|
||||||
"narHash": "sha256-tCgoCWORfNHaRXTh2QS44LwxlV8q28jVvjN5ioMicv8=",
|
"narHash": "sha256-HnNzEUuBqmJCUV/N/IbL0wFT1LHmNGWTLkUg7yRIhpY=",
|
||||||
"owner": "ezKEa",
|
"owner": "ezKEa",
|
||||||
"repo": "aagl-gtk-on-nix",
|
"repo": "aagl-gtk-on-nix",
|
||||||
"rev": "821b4f92c2c0981ea5b571b03403df87d2b2e2ae",
|
"rev": "e601b479a3d08124ee6ceea391cdc3f395aab54e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -29,16 +29,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767634391,
|
"lastModified": 1759509947,
|
||||||
"narHash": "sha256-owcSz2ICqTSvhBbhPP+1eWzi88e54rRZtfCNE5E/wwg=",
|
"narHash": "sha256-4XifSIHfpJKcCf5bZZRhj8C4aCpjNBaE3kXr02s4rHU=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "08585aacc3d6d6c280a02da195fdbd4b9cf083c2",
|
"rev": "000eadb231812ad6ea6aebd7526974aaf4e79355",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"ref": "nix-darwin-25.11",
|
"ref": "nix-darwin-25.05",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -46,11 +46,11 @@
|
|||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767039857,
|
"lastModified": 1761588595,
|
||||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -59,32 +59,60 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-schemas": {
|
"flake-compat_2": {
|
||||||
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761577921,
|
"lastModified": 1747046372,
|
||||||
"narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=",
|
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||||
"rev": "47849c7625e223d36766968cc6dc23ba0e135922",
|
"owner": "edolstra",
|
||||||
"revCount": 107,
|
"repo": "flake-compat",
|
||||||
"type": "tarball",
|
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"owner": "edolstra",
|
||||||
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A"
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-schemas_2": {
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761577921,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
"rev": "47849c7625e223d36766968cc6dc23ba0e135922",
|
"owner": "numtide",
|
||||||
"revCount": 107,
|
"repo": "flake-utils",
|
||||||
"type": "tarball",
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"owner": "numtide",
|
||||||
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A"
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ghostty": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"zig": "zig",
|
||||||
|
"zon2nix": "zon2nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1761933492,
|
||||||
|
"narHash": "sha256-DNGhpvYt6dVbkDse4s/L/jJvejvOV0bs+YWfAAskJ7g=",
|
||||||
|
"owner": "ghostty-org",
|
||||||
|
"repo": "ghostty",
|
||||||
|
"rev": "765ee6842930f0d6918574b9b87c2ee6583e4727",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ghostty-org",
|
||||||
|
"repo": "ghostty",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
@@ -94,16 +122,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770260404,
|
"lastModified": 1758463745,
|
||||||
"narHash": "sha256-3iVX1+7YUIt23hBx1WZsUllhbmP2EnXrV8tCRbLxHc8=",
|
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "0d782ee42c86b196acff08acfbf41bb7d13eed5b",
|
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-25.11",
|
"ref": "release-25.05",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -142,21 +170,47 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771043024,
|
"lastModified": 315532800,
|
||||||
"narHash": "sha256-O1XDr7EWbRp+kHrNNgLWgIrB0/US5wvw9K6RERWAj6I=",
|
"narHash": "sha256-sV6pJNzFkiPc6j9Bi9JuHBnWdVhtKB/mHgVmMPvDFlk=",
|
||||||
|
"rev": "82c2e0d6dde50b17ae366d2aa36f224dc19af469",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre877938.82c2e0d6dde5/nixexprs.tar.xz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1758360447,
|
||||||
|
"narHash": "sha256-XDY3A83bclygHDtesRoaRTafUd80Q30D/Daf9KSG6bs=",
|
||||||
|
"rev": "8eaee110344796db060382e15d3af0a9fc396e0e",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://releases.nixos.org/nixos/unstable/nixos-25.11pre864002.8eaee1103447/nixexprs.tar.xz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1761597516,
|
||||||
|
"narHash": "sha256-wxX7u6D2rpkJLWkZ2E932SIvDJW8+ON/0Yy8+a5vsDU=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "3aadb7ca9eac2891d52a9dec199d9580a6e2bf44",
|
"rev": "daf6dc47aa4b44791372d6139ab7b25269184d55",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-25.11",
|
"ref": "nixos-25.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744536153,
|
"lastModified": 1744536153,
|
||||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||||
@@ -172,44 +226,15 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1766201043,
|
|
||||||
"narHash": "sha256-eplAP+rorKKd0gNjV3rA6+0WMzb1X1i16F5m5pASnjA=",
|
|
||||||
"rev": "b3aad468604d3e488d627c0b43984eb60e75e782",
|
|
||||||
"revCount": 904049,
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.904049%2Brev-b3aad468604d3e488d627c0b43984eb60e75e782/019b3f6c-8b33-7edb-b858-9979590f270b/source.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_5": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769089682,
|
|
||||||
"narHash": "sha256-9yA/LIuAVQq0lXelrZPjLuLVuZdm03p8tfmHhnDIkms=",
|
|
||||||
"rev": "078d69f03934859a181e81ba987c2bb033eebfc5",
|
|
||||||
"revCount": 906333,
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.906333%2Brev-078d69f03934859a181e81ba987c2bb033eebfc5/019bebf2-031c-7119-8fdc-ce9d29d005fa/source.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"aagl": "aagl",
|
"aagl": "aagl",
|
||||||
"darwin": "darwin",
|
"darwin": "darwin",
|
||||||
|
"ghostty": "ghostty",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"rust-overlay": "rust-overlay_2",
|
"rust-overlay": "rust-overlay_2"
|
||||||
"swaytreesave": "swaytreesave",
|
|
||||||
"vintage-story": "vintage-story"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay": {
|
||||||
@@ -217,11 +242,11 @@
|
|||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770952264,
|
"lastModified": 1761791894,
|
||||||
"narHash": "sha256-CjymNrJZWBtpavyuTkfPVPaZkwzIzGaf0E/3WgcwM14=",
|
"narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "ec6a3d5cdf14bb5a1dd03652bd3f6351004d2188",
|
"rev": "59c45eb69d9222a4362673141e00ff77842cd219",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -232,58 +257,83 @@
|
|||||||
},
|
},
|
||||||
"rust-overlay_2": {
|
"rust-overlay_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_3"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1771211437,
|
|
||||||
"narHash": "sha256-lcNK438i4DGtyA+bPXXyVLHVmJjYpVKmpux9WASa3ro=",
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"rev": "c62195b3d6e1bb11e0c2fb2a494117d3b55d410f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"swaytreesave": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-schemas": "flake-schemas",
|
|
||||||
"nixpkgs": "nixpkgs_4"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1767148467,
|
|
||||||
"narHash": "sha256-W0O7SWq8ucokt4ctEAEvRvNoSM/oF7fBfb2kTN+lwTs=",
|
|
||||||
"ref": "refs/heads/master",
|
|
||||||
"rev": "0f4bb9bb450b28aa4f29d5eb2062deac6c26687a",
|
|
||||||
"revCount": 4,
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"vintage-story": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-schemas": "flake-schemas_2",
|
|
||||||
"nixpkgs": "nixpkgs_5"
|
"nixpkgs": "nixpkgs_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769397199,
|
"lastModified": 1761964689,
|
||||||
"narHash": "sha256-MSajncUGZtlpl88rqFdj42eGGyWnk2jw84VbK3AgUBA=",
|
"narHash": "sha256-Zo3LQQDz+64EQ9zor/WmeNTFLoZkjmhp0UY3G0D3seE=",
|
||||||
"ref": "refs/heads/master",
|
"owner": "oxalica",
|
||||||
"rev": "4d2313c50933645040a0d12556016fc2916bfa65",
|
"repo": "rust-overlay",
|
||||||
"revCount": 1,
|
"rev": "63d22578600f70d293aede6bc737efef60ebd97f",
|
||||||
"type": "git",
|
"type": "github"
|
||||||
"url": "https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "git",
|
"owner": "oxalica",
|
||||||
"url": "https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git"
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zig": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"ghostty",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"flake-utils": [
|
||||||
|
"ghostty",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"ghostty",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1760401936,
|
||||||
|
"narHash": "sha256-/zj5GYO5PKhBWGzbHbqT+ehY8EghuABdQ2WGfCwZpCQ=",
|
||||||
|
"owner": "mitchellh",
|
||||||
|
"repo": "zig-overlay",
|
||||||
|
"rev": "365085b6652259753b598d43b723858184980bbe",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "mitchellh",
|
||||||
|
"repo": "zig-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zon2nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1758405547,
|
||||||
|
"narHash": "sha256-WgaDgvIZMPvlZcZrpPMjkaalTBnGF2lTG+62znXctWM=",
|
||||||
|
"owner": "jcollie",
|
||||||
|
"repo": "zon2nix",
|
||||||
|
"rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "jcollie",
|
||||||
|
"repo": "zon2nix",
|
||||||
|
"rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
77
flake.nix
77
flake.nix
@@ -1,25 +1,22 @@
|
|||||||
{
|
{
|
||||||
description = "Wyatt's nix configuration suite";
|
description = "Wyatt's nix configuration suite";
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||||
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0";
|
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0";
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-25.11";
|
url = "github:nix-community/home-manager/release-25.05";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
darwin = {
|
darwin = {
|
||||||
url = "github:lnl7/nix-darwin/nix-darwin-25.11";
|
url = "github:lnl7/nix-darwin/nix-darwin-25.05";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
ghostty.url = "github:ghostty-org/ghostty";
|
||||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||||
aagl = {
|
aagl = {
|
||||||
url = "github:ezKEa/aagl-gtk-on-nix";
|
url = "github:ezKEa/aagl-gtk-on-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
# My personal flakes
|
|
||||||
swaytreesave.url = "git+https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git";
|
|
||||||
vintage-story.url = "git+https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ {
|
outputs = inputs @ {
|
||||||
@@ -28,16 +25,15 @@
|
|||||||
nix-flatpak,
|
nix-flatpak,
|
||||||
darwin,
|
darwin,
|
||||||
home-manager,
|
home-manager,
|
||||||
|
ghostty,
|
||||||
rust-overlay,
|
rust-overlay,
|
||||||
aagl,
|
aagl,
|
||||||
swaytreesave,
|
|
||||||
vintage-story,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
userName = "wyatt";
|
userName = "wyatt";
|
||||||
userEmail = "wyatt@wyattjmiller.com";
|
userEmail = "wyatt@wyattjmiller.com";
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit userName userEmail swaytreesave;
|
inherit userName userEmail ghostty;
|
||||||
};
|
};
|
||||||
|
|
||||||
myOverlays = { ... }: {
|
myOverlays = { ... }: {
|
||||||
@@ -58,9 +54,9 @@
|
|||||||
darwinConfigurations."sephiroth" = darwin.lib.darwinSystem {
|
darwinConfigurations."sephiroth" = darwin.lib.darwinSystem {
|
||||||
system = "aarch64-darwin";
|
system = "aarch64-darwin";
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit userName userEmail;
|
inherit userName userEmail ghostty;
|
||||||
hostname = "sephiroth";
|
hostname = "sephiroth";
|
||||||
role = "workstation";
|
role = "devel";
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
myOverlays
|
myOverlays
|
||||||
@@ -71,8 +67,7 @@
|
|||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = false; role = "workstation"; };
|
home-manager.extraSpecialArgs = extraSpecialArgs;
|
||||||
# home-manager.extraSpecialArgs = extraSpecialArgs;
|
|
||||||
home-manager.backupFileExtension = "bak";
|
home-manager.backupFileExtension = "bak";
|
||||||
home-manager.users.${userName} = import ./home;
|
home-manager.users.${userName} = import ./home;
|
||||||
}
|
}
|
||||||
@@ -83,9 +78,9 @@
|
|||||||
nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem {
|
nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit userName userEmail aagl vintage-story;
|
inherit userName userEmail ghostty aagl;
|
||||||
hostname = "cloud";
|
hostname = "cloud";
|
||||||
role = "workstation";
|
role = "devel";
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
myOverlays
|
myOverlays
|
||||||
@@ -97,7 +92,7 @@
|
|||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "workstation"; };
|
home-manager.extraSpecialArgs = extraSpecialArgs;
|
||||||
home-manager.backupFileExtension = "bak";
|
home-manager.backupFileExtension = "bak";
|
||||||
home-manager.users.${userName}.imports = [
|
home-manager.users.${userName}.imports = [
|
||||||
./home
|
./home
|
||||||
@@ -161,53 +156,5 @@
|
|||||||
# }
|
# }
|
||||||
# ];
|
# ];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixosConfigurations."yshtola" = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
specialArgs = {
|
|
||||||
inherit userName userEmail;
|
|
||||||
hostname = "yshtola";
|
|
||||||
role = "server";
|
|
||||||
};
|
|
||||||
modules = [
|
|
||||||
myOverlays
|
|
||||||
./modules/common
|
|
||||||
./modules/machine/yshtola
|
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
{
|
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "server"; };
|
|
||||||
home-manager.backupFileExtension = "bak";
|
|
||||||
home-manager.users.${userName}.imports = [
|
|
||||||
./home
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# generic non-NixOS Linux machine
|
|
||||||
homeConfigurations."generic" = let
|
|
||||||
hostname = builtins.getEnv "HOSTNAME";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
in home-manager.lib.homeManagerConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
|
||||||
|
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit userName userEmail hostname;
|
|
||||||
isNixOS = false;
|
|
||||||
role = "workstation";
|
|
||||||
};
|
|
||||||
modules = [
|
|
||||||
{
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
rust-overlay.overlays.default
|
|
||||||
self.common.overlays
|
|
||||||
];
|
|
||||||
}
|
|
||||||
./home
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
isNixOS ? true,
|
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
@@ -10,7 +9,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
programs.chromium = {
|
programs.chromium = {
|
||||||
enable = pkgs.stdenv.isLinux && isNixOS;
|
enable = pkgs.stdenv.isLinux;
|
||||||
package = pkgs.ungoogled-chromium.override {
|
package = pkgs.ungoogled-chromium.override {
|
||||||
enableWideVine = true;
|
enableWideVine = true;
|
||||||
commandLineArgs = [
|
commandLineArgs = [
|
||||||
|
|||||||
@@ -1,59 +1,64 @@
|
|||||||
{ lib
|
{
|
||||||
, pkgs
|
lib,
|
||||||
, userName
|
pkgs,
|
||||||
, swaytreesave
|
userName,
|
||||||
, isNixOS ? true
|
userEmail,
|
||||||
, ...
|
ghostty,
|
||||||
|
...
|
||||||
}: let
|
}: let
|
||||||
# Have a file sturcture that holds all the configuration files that can't be configured by Nix
|
# Have a file sturcture that holds all the configuration files that can't be configured by Nix
|
||||||
# or maybe I'm too lazy to do anything about it? I dunno
|
# or maybe I'm too lazy to do anything about it? I dunno
|
||||||
dirs = {
|
dirs = {
|
||||||
defaults = ../defaults;
|
defaults = ../defaults;
|
||||||
};
|
};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
_module.args = {
|
|
||||||
inherit dirs;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Import sub modules
|
# Import sub modules
|
||||||
imports = [
|
imports = map (module: import module {inherit lib pkgs dirs userName userEmail ghostty;}) [
|
||||||
|
./atuin.nix
|
||||||
|
./shell.nix
|
||||||
./packages
|
./packages
|
||||||
|
./git.nix
|
||||||
|
./starship.nix
|
||||||
|
./eza.nix
|
||||||
|
./neovim.nix
|
||||||
|
./direnv.nix
|
||||||
|
./sway.nix
|
||||||
|
./terminal.nix
|
||||||
|
./browser.nix
|
||||||
|
./zellij.nix
|
||||||
|
./bat.nix
|
||||||
|
./lazygit.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home = lib.mkMerge [
|
# Home Manager needs a bit of information about you and the
|
||||||
{
|
# paths it should manage.
|
||||||
|
home = {
|
||||||
username = userName;
|
username = userName;
|
||||||
homeDirectory =
|
homeDirectory =
|
||||||
if pkgs.stdenv.isDarwin
|
if pkgs.stdenv.isDarwin
|
||||||
then "/Users/${userName}"
|
then "/Users/${userName}"
|
||||||
else "/home/${userName}";
|
else "/home/${userName}";
|
||||||
|
|
||||||
stateVersion = "24.11";
|
|
||||||
}
|
|
||||||
|
|
||||||
(lib.mkIf isNixOS {
|
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
XDG_CURRENT_DESKTOP = "sway";
|
XDG_CURRENT_DESKTOP = "sway";
|
||||||
XDG_SESSION_TYPE = "wayland";
|
XDG_SESSION_TYPE = "wayland";
|
||||||
XDG_SESSION_DESKTOP = "sway";
|
XDG_SESSION_DESKTOP="sway";
|
||||||
XDG_CONFIG_HOME = "$HOME/.config";
|
XDG_CONFIG_HOME = "$HOME/.config";
|
||||||
XDG_CACHE_HOME = "$HOME/.cache";
|
XDG_CACHE_HOME = "$HOME/.cache";
|
||||||
XDG_DATA_HOME = "$HOME/.local/share";
|
XDG_DATA_HOME = "$HOME/.local/share";
|
||||||
XDG_STATE_HOME = "$HOME/.local/state";
|
XDG_STATE_HOME = "$HOME/.local/state";
|
||||||
NIXOS_OZONE_WL = "1";
|
NIXOS_OZONE_WL = "1";
|
||||||
};
|
};
|
||||||
})
|
|
||||||
|
|
||||||
(lib.mkIf pkgs.stdenv.isLinux {
|
pointerCursor = lib.mkIf pkgs.stdenv.isLinux {
|
||||||
pointerCursor = {
|
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
package = pkgs.catppuccin-cursors.mochaDark;
|
package = pkgs.catppuccin-cursors.mochaDark;
|
||||||
name = "catppuccin-mocha-dark-cursors";
|
name = "catppuccin-mocha-dark-cursors";
|
||||||
size = 22;
|
size = 22;
|
||||||
};
|
};
|
||||||
})
|
|
||||||
];
|
stateVersion = "24.11";
|
||||||
|
};
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|||||||
32
home/k9s.nix
32
home/k9s.nix
@@ -1,32 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
programs.k9s = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.k9s;
|
|
||||||
settings.k9s = {
|
|
||||||
refreshRate = "2s";
|
|
||||||
liveViewAutoRefresh = false;
|
|
||||||
apiServerTimeout = "30s";
|
|
||||||
maxConnRetry = 5;
|
|
||||||
readOnly = true;
|
|
||||||
noExitOnCtrlC = false;
|
|
||||||
portForwardAddress = "localhost";
|
|
||||||
skipLatestRevCheck = false;
|
|
||||||
|
|
||||||
skin = {
|
|
||||||
catppuccin-mocha = ../defaults/k9s/catppuccin-mocha.yaml;
|
|
||||||
};
|
|
||||||
|
|
||||||
ui = {
|
|
||||||
skin = "catppuccin-mocha";
|
|
||||||
enableMouse = true;
|
|
||||||
headless = false;
|
|
||||||
logoless = true;
|
|
||||||
crumbsless = false;
|
|
||||||
splashless = true;
|
|
||||||
reactive = false;
|
|
||||||
noIcons = false;
|
|
||||||
defaultsToFullscreen = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
{ pkgs, lib, ... }:
|
|
||||||
with pkgs;
|
|
||||||
let
|
|
||||||
plugins = [
|
|
||||||
"krew"
|
|
||||||
"oidc-login"
|
|
||||||
];
|
|
||||||
in {
|
|
||||||
home.activation.krew = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
|
||||||
${lib.concatMapStringsSep "\n" (plugin: ''
|
|
||||||
$DRY_RUN_CMD ${krew}/bin/krew install ${plugin} || true
|
|
||||||
'') plugins}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,4 @@
|
|||||||
{...}: let
|
{dirs, ...}: {
|
||||||
dirs = {
|
|
||||||
defaults = ../defaults;
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
programs.neovim = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
|
|||||||
@@ -2,19 +2,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
|
||||||
../atuin.nix
|
|
||||||
../shell.nix
|
|
||||||
../git.nix
|
|
||||||
../starship.nix
|
|
||||||
../eza.nix
|
|
||||||
../neovim.nix
|
|
||||||
../bat.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
yazi # terminal file manager
|
||||||
|
|
||||||
# archives
|
# archives
|
||||||
zip
|
zip
|
||||||
xz
|
xz
|
||||||
@@ -22,21 +12,39 @@
|
|||||||
p7zip
|
p7zip
|
||||||
|
|
||||||
# utils
|
# utils
|
||||||
yazi
|
|
||||||
tmux
|
tmux
|
||||||
bottom
|
bottom
|
||||||
ripgrep
|
ripgrep
|
||||||
jq
|
jq
|
||||||
yq-go
|
yq-go
|
||||||
fzf
|
fzf
|
||||||
|
fh
|
||||||
aria2
|
aria2
|
||||||
gnupg
|
yt-dlp
|
||||||
|
obsidian
|
||||||
|
vscode
|
||||||
|
weechat
|
||||||
|
inetutils
|
||||||
|
|
||||||
# misc
|
# misc
|
||||||
|
cowsay
|
||||||
file
|
file
|
||||||
which
|
which
|
||||||
tree
|
tree
|
||||||
gnutar
|
gnutar
|
||||||
|
gnupg
|
||||||
|
zoxide
|
||||||
babelfish
|
babelfish
|
||||||
|
|
||||||
|
# language-specific package managers
|
||||||
|
nodejs
|
||||||
|
cargo
|
||||||
|
python3
|
||||||
|
|
||||||
|
# nix specific stuff
|
||||||
|
nixd
|
||||||
|
deadnix
|
||||||
|
alejandra
|
||||||
|
statix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
{ lib, pkgs, ... }:
|
{
|
||||||
lib.mkIf pkgs.stdenv.isDarwin {
|
pkgs,
|
||||||
home.packages = with pkgs; [
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = lib.mkIf pkgs.stdenv.isDarwin (with pkgs; [
|
||||||
discord
|
discord
|
||||||
ollama
|
ollama
|
||||||
];
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
{ lib, role ? "workstation", ... }:
|
|
||||||
{
|
{
|
||||||
imports =
|
pkgs,
|
||||||
[
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
./common.nix
|
./common.nix
|
||||||
./darwin.nix
|
./darwin.nix
|
||||||
./linux.nix
|
./linux.nix
|
||||||
]
|
];
|
||||||
++ lib.optional (role == "workstation") ./workstation.nix
|
|
||||||
++ lib.optional (role == "server") ./server.nix;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
{ lib, pkgs, isNixOS ? true, ... }:
|
{
|
||||||
lib.mkIf pkgs.stdenv.isLinux {
|
pkgs,
|
||||||
home.packages = with pkgs; [
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = lib.mkIf pkgs.stdenv.isLinux (with pkgs; [
|
||||||
imv
|
imv
|
||||||
xdg-utils
|
|
||||||
] ++ lib.optionals isNixOS [
|
|
||||||
betterdiscordctl
|
betterdiscordctl
|
||||||
vesktop
|
vesktop
|
||||||
|
xdg-utils
|
||||||
|
mcrcon
|
||||||
xfce.thunar
|
xfce.thunar
|
||||||
pavucontrol
|
pavucontrol
|
||||||
godot
|
godot
|
||||||
@@ -13,6 +16,6 @@ lib.mkIf pkgs.stdenv.isLinux {
|
|||||||
zathura
|
zathura
|
||||||
gpu-screen-recorder
|
gpu-screen-recorder
|
||||||
gpu-screen-recorder-gtk
|
gpu-screen-recorder-gtk
|
||||||
inetutils
|
# ungoogled-chromium
|
||||||
];
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
home.packages = [
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
isNixOS ? true,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
../terminal.nix
|
|
||||||
../browser.nix
|
|
||||||
../zellij.nix
|
|
||||||
../lazygit.nix
|
|
||||||
../k9s.nix
|
|
||||||
../krew.nix
|
|
||||||
../direnv.nix
|
|
||||||
] ++ lib.optional isNixOS ../sway.nix;
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
fh
|
|
||||||
kubectl # kube config is deliberately not included
|
|
||||||
kubectx
|
|
||||||
obsidian
|
|
||||||
vscode
|
|
||||||
yt-dlp
|
|
||||||
weechat
|
|
||||||
nodejs
|
|
||||||
cargo
|
|
||||||
python3
|
|
||||||
nixd
|
|
||||||
deadnix
|
|
||||||
alejandra
|
|
||||||
statix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
{pkgs, lib, ...}: {
|
{pkgs, lib, ...}: {
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
shellInit = ''
|
# initExtra = ''
|
||||||
if test -d $HOME/.krew/bin
|
# export PATH="$PATH:$HOME/bin:$HOME/.local/bin:$HOME/go/bin"
|
||||||
set -gx PATH $HOME/.krew/bin $PATH
|
# '';
|
||||||
end
|
|
||||||
'';
|
|
||||||
|
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
# ls aliases
|
# ls aliases
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
swaytreesave,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
dirs = {
|
dirs = {
|
||||||
@@ -16,12 +15,6 @@
|
|||||||
hash = "sha256-ZDFbI69ECsUTjbhlw2kHRufZbQMu+FQSMmncCJ5pagg=";
|
hash = "sha256-ZDFbI69ECsUTjbhlw2kHRufZbQMu+FQSMmncCJ5pagg=";
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
imports = [
|
|
||||||
swaytreesave.homeManagerModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.swaytreesave.enable = if pkgs.stdenv.isLinux then true else false;
|
|
||||||
|
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
enable = pkgs.stdenv.isLinux;
|
enable = pkgs.stdenv.isLinux;
|
||||||
extraOptions = []; # Extra arguments to pass into sway. If sway goes haywire, we might need something in here
|
extraOptions = []; # Extra arguments to pass into sway. If sway goes haywire, we might need something in here
|
||||||
@@ -155,5 +148,4 @@ in {
|
|||||||
enable = pkgs.stdenv.isLinux;
|
enable = pkgs.stdenv.isLinux;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ... }: {
|
{ lib, pkgs, ghostty, ... }: {
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
enable = pkgs.stdenv.isLinux;
|
enable = pkgs.stdenv.isLinux;
|
||||||
settings = {
|
settings = {
|
||||||
@@ -103,4 +103,9 @@
|
|||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = false; # TODO: to enable later
|
enable = false; # TODO: to enable later
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.packages = if pkgs.stdenv.isLinux then
|
||||||
|
[ ghostty.packages.${pkgs.system}.default ]
|
||||||
|
else
|
||||||
|
[ ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,11 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
aagl,
|
aagl,
|
||||||
vintage-story,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.gaming;
|
cfg = config.gaming;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [ aagl.nixosModules.default ];
|
||||||
aagl.nixosModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
options.gaming = {
|
options.gaming = {
|
||||||
steam = {
|
steam = {
|
||||||
@@ -146,8 +143,17 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
vintage-story = {
|
emulators = {
|
||||||
enable = lib.mkEnableOption "Vintage Story client and server";
|
enable = lib.mkEnableOption "Emulation";
|
||||||
|
|
||||||
|
n64 = {
|
||||||
|
enable = lib.mkEnableOption "Nintendo 64 (N64) emulator";
|
||||||
|
package = lib.mkOption {
|
||||||
|
type = lib.types.package;
|
||||||
|
default = pkgs.mupen64plus;
|
||||||
|
description = "Package used for the Nintendo 64 (N64) emulator";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -218,10 +224,12 @@ in {
|
|||||||
)) ++
|
)) ++
|
||||||
(lib.optionals cfg.minecraft.enable [pkgs.prismlauncher]) ++
|
(lib.optionals cfg.minecraft.enable [pkgs.prismlauncher]) ++
|
||||||
(lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher pkgs.fflogs]) ++
|
(lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher pkgs.fflogs]) ++
|
||||||
(lib.optionals cfg.vintage-story.enable [vintage-story.packages.${pkgs.system}.default]) ++
|
(lib.optionals cfg.vkbasalt.enable [pkgs.vkbasalt pkgs.vkBasalt pkgs.vkbasalt-cli]) ++
|
||||||
(lib.optionals cfg.vkbasalt.enable [pkgs.vkbasalt pkgs.vkbasalt-cli]) ++
|
|
||||||
(lib.optionals cfg.mangohud.enable [pkgs.mangohud]) ++
|
(lib.optionals cfg.mangohud.enable [pkgs.mangohud]) ++
|
||||||
(lib.optionals (cfg.vkbasalt.enable || cfg.mangohud.enable) [pkgs.goverlay pkgs.mesa-demos pkgs.vulkan-tools]);
|
(lib.optionals (cfg.vkbasalt.enable || cfg.mangohud.enable) [pkgs.goverlay pkgs.mesa-demos pkgs.vulkan-tools]) ++
|
||||||
|
(lib.optionals cfg.emulators.enable (
|
||||||
|
lib.optionals cfg.emulators.n64.enable [pkgs.mupen64plus]
|
||||||
|
));
|
||||||
|
|
||||||
nix.settings = let
|
nix.settings = let
|
||||||
inherit agl;
|
inherit agl;
|
||||||
|
|||||||
@@ -7,11 +7,3 @@ Licensed by the Mozilla Public License v2
|
|||||||
## Synopsis
|
## Synopsis
|
||||||
|
|
||||||
This is the directory that holds shared configuration files amongst computers that I own. They are called by the root `flake.nix` file.
|
This is the directory that holds shared configuration files amongst computers that I own. They are called by the root `flake.nix` file.
|
||||||
|
|
||||||
Here's a quick synopsis of each file:
|
|
||||||
|
|
||||||
- core: Sane Nix options that I set for myself
|
|
||||||
- environment: Core packages and environment variables to be set and installed
|
|
||||||
- fonts: Fonts and icons that are to be installed
|
|
||||||
- overlays: Customized packages tailored to my needs
|
|
||||||
- users: Users to be set on my system
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
systemd
|
systemd
|
||||||
lshw
|
lshw
|
||||||
dmidecode
|
dmidecode
|
||||||
|
nix-ld
|
||||||
]) ++
|
]) ++
|
||||||
lib.optionals pkgs.stdenv.isDarwin (with pkgs; [
|
lib.optionals pkgs.stdenv.isDarwin (with pkgs; [
|
||||||
# nothing here, yet ;)
|
# nothing here, yet ;)
|
||||||
|
|||||||
@@ -6,14 +6,10 @@
|
|||||||
fonts.packages = with pkgs;
|
fonts.packages = with pkgs;
|
||||||
[
|
[
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-color-emoji
|
noto-fonts-emoji
|
||||||
liberation_ttf
|
liberation_ttf
|
||||||
noto-fonts-cjk-sans
|
noto-fonts-cjk-sans
|
||||||
monaspace
|
monaspace
|
||||||
]
|
]
|
||||||
++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts);
|
++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts);
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
adwaita-icon-theme
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,62 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
programs.nix-ld = {
|
|
||||||
enable = true;
|
|
||||||
libraries = with pkgs;
|
|
||||||
[
|
|
||||||
acl
|
|
||||||
attr
|
|
||||||
bzip2
|
|
||||||
dbus
|
|
||||||
expat
|
|
||||||
fontconfig
|
|
||||||
freetype
|
|
||||||
fuse3
|
|
||||||
icu
|
|
||||||
libnotify
|
|
||||||
libsodium
|
|
||||||
libssh
|
|
||||||
libunwind
|
|
||||||
libusb1
|
|
||||||
libuuid
|
|
||||||
nspr
|
|
||||||
nss
|
|
||||||
stdenv.cc.cc
|
|
||||||
util-linux
|
|
||||||
zlib
|
|
||||||
zstd
|
|
||||||
pipewire
|
|
||||||
cups
|
|
||||||
libxkbcommon
|
|
||||||
pango
|
|
||||||
mesa
|
|
||||||
libdrm
|
|
||||||
libglvnd
|
|
||||||
libpulseaudio
|
|
||||||
atk
|
|
||||||
cairo
|
|
||||||
alsa-lib
|
|
||||||
at-spi2-atk
|
|
||||||
at-spi2-core
|
|
||||||
gdk-pixbuf
|
|
||||||
glib
|
|
||||||
gtk3
|
|
||||||
libGL
|
|
||||||
libappindicator-gtk3
|
|
||||||
vulkan-loader
|
|
||||||
xorg.libX11
|
|
||||||
xorg.libXScrnSaver
|
|
||||||
xorg.libXcomposite
|
|
||||||
xorg.libXcursor
|
|
||||||
xorg.libXdamage
|
|
||||||
xorg.libXext
|
|
||||||
xorg.libXfixes
|
|
||||||
xorg.libXi
|
|
||||||
xorg.libXrandr
|
|
||||||
xorg.libXrender
|
|
||||||
xorg.libXtst
|
|
||||||
xorg.libxcb
|
|
||||||
xorg.libxkbfile
|
|
||||||
xorg.libxshmfence
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
final: prev: let
|
final: prev: let
|
||||||
# Use latest rust from overlay which should work on non-NixOS
|
rust_1_90_0 = prev.rust-bin.stable."1.90.0".default;
|
||||||
rust_latest = prev.rust-bin.stable.latest.default;
|
|
||||||
myRustPlatform = prev.makeRustPlatform {
|
myRustPlatform = prev.makeRustPlatform {
|
||||||
cargo = rust_latest;
|
cargo = rust_1_90_0;
|
||||||
rustc = rust_latest;
|
rustc = rust_1_90_0;
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
lazygitLatest = prev.lazygit.overrideAttrs (_: rec {
|
lazygitLatest = prev.lazygit.overrideAttrs (_: rec {
|
||||||
@@ -48,18 +47,4 @@ in {
|
|||||||
mkdir -p "$XDG_CONFIG_HOME" "$XDG_DATA_HOME" "$XDG_STATE_HOME"
|
mkdir -p "$XDG_CONFIG_HOME" "$XDG_DATA_HOME" "$XDG_STATE_HOME"
|
||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
|
|
||||||
# k9sLatest = prev.k9s.overrideAttrs (oldAttrs: rec {
|
|
||||||
# version = "0.30.16";
|
|
||||||
# src = prev.fetchFromGitHub {
|
|
||||||
# owner = "derailed";
|
|
||||||
# repo = "k9s";
|
|
||||||
# rev = "v${version}";
|
|
||||||
# hash = "sha256-1z6r6v3n1p6vd2q6n4pl5q3f7q3q7q1p7j5j1k3l4m5n6o7p8q9r";
|
|
||||||
# };
|
|
||||||
# ldflags = [
|
|
||||||
# "-X github.com/derailed/k9s/version.Version=${version}"
|
|
||||||
# "-X github.com/derailed/k9s/version.BuildSource=nix"
|
|
||||||
# ];
|
|
||||||
# });
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ in {
|
|||||||
config = mkIf cfg.enable (mkMerge [
|
config = mkIf cfg.enable (mkMerge [
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
glxinfo
|
||||||
vulkan-tools
|
vulkan-tools
|
||||||
mesa-demos
|
mesa-demos
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -12,4 +12,4 @@ These are named after Final Fantasy VII characters.
|
|||||||
|
|
||||||
### Servers/Network Infrastructure
|
### Servers/Network Infrastructure
|
||||||
|
|
||||||
These are named after Final Fantasy summons. There is some infrastructure missing here like my routers and switches that I also name after summons.
|
These are named after Final Fantasy summons.
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ in {
|
|||||||
gamemode.enable = true;
|
gamemode.enable = true;
|
||||||
gamescope.enable = true;
|
gamescope.enable = true;
|
||||||
mangohud.enable = true;
|
mangohud.enable = true;
|
||||||
|
|
||||||
lutris = {
|
lutris = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wine = {
|
wine = {
|
||||||
@@ -104,10 +105,16 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
emulators = {
|
||||||
|
enable = true;
|
||||||
|
n64 = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
ffxiv.enable = true;
|
ffxiv.enable = true;
|
||||||
minecraft.enable = true;
|
minecraft.enable = true;
|
||||||
aagl.anime-game-launcher.enable = true;
|
aagl.anime-game-launcher.enable = true;
|
||||||
vintage-story.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Power management (see ../../pwrMgmt/default.nix)
|
# Power management (see ../../pwrMgmt/default.nix)
|
||||||
@@ -151,7 +158,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Add username to groups "wheel" and "video" - more may be added here later
|
# Add username to groups "wheel" and "video" - more may be added here later
|
||||||
users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network" "libvirtd"];
|
users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network"];
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
# Enable OpenSSH
|
# Enable OpenSSH
|
||||||
@@ -191,23 +198,5 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# sched_ext userspace CPU scheduling stuff - idk
|
|
||||||
services.scx = {
|
|
||||||
enable = true;
|
|
||||||
scheduler = "scx_bpfland";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.obs-studio = {
|
|
||||||
enable = true;
|
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
|
||||||
wlrobs
|
|
||||||
obs-backgroundremoval
|
|
||||||
obs-pipewire-audio-capture
|
|
||||||
obs-vaapi #optional AMD hardware acceleration
|
|
||||||
obs-gstreamer
|
|
||||||
obs-vkcapture
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "24.11";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,5 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../common/linker.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,216 +0,0 @@
|
|||||||
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
userName,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
../../pwrMgmt
|
|
||||||
../../networking/core.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enable flakes for NixOS
|
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
|
||||||
|
|
||||||
# Custom kernel/boot stuff
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
boot.loader.systemd-boot.enable = true; # TODO: check on this
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
# Set your timezone
|
|
||||||
time.timeZone = "America/Detroit";
|
|
||||||
|
|
||||||
# Enable OpenSSH
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
PermitRootLogin = "no";
|
|
||||||
PasswordAuthentication = "no";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable keyring
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
# Enable GnuPG
|
|
||||||
programs.gnupg.agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSSHSupport = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable SUID wrappers (some programs need them)
|
|
||||||
programs.mtr.enable = true;
|
|
||||||
|
|
||||||
# Enable Polkit
|
|
||||||
security.polkit.enable = true;
|
|
||||||
|
|
||||||
# Power management (see ../../pwrMgmt/default.nix)
|
|
||||||
pwrMgmt = {
|
|
||||||
enable = true;
|
|
||||||
cpuFreqGovernor = "performance";
|
|
||||||
powertop.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Core networking module (see ../../networking/core.nix)
|
|
||||||
network = {
|
|
||||||
networkManager.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Firewall settings (fallback, upstream way of doing things)
|
|
||||||
networking.firewall = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
allowedTCPPorts = [
|
|
||||||
3478
|
|
||||||
5349
|
|
||||||
7880
|
|
||||||
7881
|
|
||||||
8080
|
|
||||||
];
|
|
||||||
|
|
||||||
allowedUDPPorts = [
|
|
||||||
3478
|
|
||||||
];
|
|
||||||
|
|
||||||
allowedUDPPortRanges =[
|
|
||||||
{
|
|
||||||
from = 49000;
|
|
||||||
to = 50000;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
from = 50100;
|
|
||||||
to = 50200;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Add username to groups "wheel" and "video" - more may be added here later
|
|
||||||
users.users.${userName} = {
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com"
|
|
||||||
];
|
|
||||||
extraGroups = ["wheel" "video" "network"];
|
|
||||||
};
|
|
||||||
|
|
||||||
# fail2ban
|
|
||||||
services.fail2ban = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.fail2ban;
|
|
||||||
maxretry = 5;
|
|
||||||
bantime = "3h";
|
|
||||||
bantime-increment = {
|
|
||||||
enable = true;
|
|
||||||
rndtime = "10m";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Matrix server
|
|
||||||
services.matrix-tuwunel = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.matrix-tuwunel;
|
|
||||||
settings = {
|
|
||||||
global = {
|
|
||||||
server_name = "wyattjmiller.com";
|
|
||||||
allow_encryption = true;
|
|
||||||
allow_federation = true;
|
|
||||||
allow_registration = false;
|
|
||||||
allow_unstable_room_versions = false;
|
|
||||||
allow_experimental_room_versions = false;
|
|
||||||
encryption_enabled_by_default_for_room_type = "all";
|
|
||||||
zstd_compression = true;
|
|
||||||
new_user_displayname_suffix = "✨";
|
|
||||||
max_request_size = 1048575600; # 100MB in bytes, for file uploads
|
|
||||||
database_path = "/var/lib/tuwunel";
|
|
||||||
database_backup_path = "/var/lib/tuwunel/database_backups";
|
|
||||||
database_backups_to_keep = 2;
|
|
||||||
|
|
||||||
address = [
|
|
||||||
"127.0.0.1"
|
|
||||||
"::1"
|
|
||||||
];
|
|
||||||
port = [ 8008 ];
|
|
||||||
|
|
||||||
well_known = {
|
|
||||||
client = "https://chat.wyattjmiller.com";
|
|
||||||
server = "chat.wyattjmiller.com:443";
|
|
||||||
support_email = "wyatt@wyattjmiller.com";
|
|
||||||
support_mxid = "@wymiller:wyattjmiller.com";
|
|
||||||
|
|
||||||
rtc_transports = {
|
|
||||||
type = "livekit";
|
|
||||||
livekit_service_url = "https://rtc.wyattjmiller.com";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# LiveKit (Matrix RTC)
|
|
||||||
services.livekit = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.livekit;
|
|
||||||
openFirewall = true;
|
|
||||||
settings = {
|
|
||||||
port = 7880;
|
|
||||||
room.auto_create = true;
|
|
||||||
rtc = {
|
|
||||||
use_external_ip = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Reverse proxy
|
|
||||||
services.caddy = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.caddy;
|
|
||||||
virtualHosts = {
|
|
||||||
"chat.wyattjmiller.com" = {
|
|
||||||
extraConfig = ''
|
|
||||||
encode zstd gzip
|
|
||||||
reverse_proxy localhost:8008
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
"chat.wyattjmiller.com:8443" = {
|
|
||||||
extraConfig = ''
|
|
||||||
encode zstd gzip
|
|
||||||
reverse_proxy localhost:8008
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
"rtc.wyattjmiller.com" = {
|
|
||||||
extraConfig = ''
|
|
||||||
@jwt_service {
|
|
||||||
path /sfu/get* /healthz*
|
|
||||||
}
|
|
||||||
|
|
||||||
handle @jwt_service {
|
|
||||||
reverse_proxy localhost:8081
|
|
||||||
}
|
|
||||||
|
|
||||||
handle {
|
|
||||||
reverse_proxy localhost:7880 {
|
|
||||||
header_up Connection "upgrade"
|
|
||||||
header_up Upgrade {http.request.header.Upgrade}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# TURN/STUN server
|
|
||||||
services.coturn = {
|
|
||||||
enable = true;
|
|
||||||
no-cli = false;
|
|
||||||
no-tcp-relay = false;
|
|
||||||
realm = "turn.wyattjmiller.com";
|
|
||||||
min-port = 49000;
|
|
||||||
max-port = 50000;
|
|
||||||
|
|
||||||
# TODO: fill out this extraConfig option a bit more with denial of private IP addresses
|
|
||||||
extraConfig = ''
|
|
||||||
verbose
|
|
||||||
no-multicast-peers
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "25.11";
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{ ... }: {
|
|
||||||
imports = [
|
|
||||||
./configuration.nix
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,10 +1,4 @@
|
|||||||
{ pkgs, ... }: {
|
{...}: {
|
||||||
virtualisation.libvirtd.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
programs.virt-manager.enable = true;
|
programs.virt-manager.enable = true;
|
||||||
services.qemuGuest.enable = true;
|
|
||||||
services.spice-vdagentd.enable = true;
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
qemu
|
|
||||||
quickemu
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user