Compare commits
4 commits
33332afe63
...
49dc0ecc50
| Author | SHA1 | Date | |
|---|---|---|---|
| 49dc0ecc50 | |||
| 083adeee17 | |||
| 23f115760d | |||
| b2dfb94ec9 |
27 changed files with 2219 additions and 653 deletions
1
direnvs/python/.python-version
Normal file
1
direnvs/python/.python-version
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
3.11
|
||||||
0
direnvs/python/README.md
Normal file
0
direnvs/python/README.md
Normal file
6
direnvs/python/main.py
Normal file
6
direnvs/python/main.py
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
def main():
|
||||||
|
print("Hello from python!")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
9
direnvs/python/pyproject.toml
Normal file
9
direnvs/python/pyproject.toml
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
[project]
|
||||||
|
name = "python"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = "Add your description here"
|
||||||
|
readme = "README.md"
|
||||||
|
requires-python = ">=3.11"
|
||||||
|
dependencies = [
|
||||||
|
"jupyter>=1.1.1",
|
||||||
|
]
|
||||||
1654
direnvs/python/uv.lock
generated
Normal file
1654
direnvs/python/uv.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
548
flake.lock
generated
548
flake.lock
generated
|
|
@ -1,322 +1,236 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"blueprint": {
|
"blueprint": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nix-ai-tools",
|
"nix-ai-tools",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763308703,
|
"lastModified": 1763308703,
|
||||||
"narHash": "sha256-O9Y+Wer8wOh+N+4kcCK5p/VLrXyX+ktk0/s3HdZvJzk=",
|
"narHash": "sha256-O9Y+Wer8wOh+N+4kcCK5p/VLrXyX+ktk0/s3HdZvJzk=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "blueprint",
|
"repo": "blueprint",
|
||||||
"rev": "5a9bba070f801d63e2af3c9ef00b86b212429f4f",
|
"rev": "5a9bba070f801d63e2af3c9ef00b86b212429f4f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "blueprint",
|
"repo": "blueprint",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nixvim",
|
"nixvim",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754091436,
|
"lastModified": 1763759067,
|
||||||
"narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
|
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
|
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_3"
|
"nixpkgs": [
|
||||||
},
|
"nixpkgs"
|
||||||
"locked": {
|
]
|
||||||
"lastModified": 1731533236,
|
},
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"locked": {
|
||||||
"owner": "numtide",
|
"lastModified": 1765202646,
|
||||||
"repo": "flake-utils",
|
"narHash": "sha256-Cgceqa+xPgI8JiS1fMaviGw4dthTeW2RqE6RUR4OcS8=",
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
"owner": "nix-community",
|
||||||
"type": "github"
|
"repo": "home-manager",
|
||||||
},
|
"rev": "caa47b637d877124ac891a64abc14de09fce1675",
|
||||||
"original": {
|
"type": "github"
|
||||||
"owner": "numtide",
|
},
|
||||||
"repo": "flake-utils",
|
"original": {
|
||||||
"type": "github"
|
"owner": "nix-community",
|
||||||
}
|
"repo": "home-manager",
|
||||||
},
|
"type": "github"
|
||||||
"home-manager": {
|
}
|
||||||
"inputs": {
|
},
|
||||||
"nixpkgs": [
|
"nix-ai-tools": {
|
||||||
"nixpkgs"
|
"inputs": {
|
||||||
]
|
"blueprint": "blueprint",
|
||||||
},
|
"nixpkgs": "nixpkgs",
|
||||||
"locked": {
|
"treefmt-nix": "treefmt-nix"
|
||||||
"lastModified": 1755442500,
|
},
|
||||||
"narHash": "sha256-RHK4H6SWzkAtW/5WBHsyugaXJX25yr5y7FAZznxcBJs=",
|
"locked": {
|
||||||
"owner": "nix-community",
|
"lastModified": 1765203591,
|
||||||
"repo": "home-manager",
|
"narHash": "sha256-LAWxwGYTM6bZqTode/bHmR2tX96X4u0JQDOaHxUSNkA=",
|
||||||
"rev": "d2ffdedfc39c591367b1ddf22b4ce107f029dcc3",
|
"owner": "numtide",
|
||||||
"type": "github"
|
"repo": "nix-ai-tools",
|
||||||
},
|
"rev": "edfd764a49e2440fd2169c9e14d8fd6b7df11135",
|
||||||
"original": {
|
"type": "github"
|
||||||
"owner": "nix-community",
|
},
|
||||||
"repo": "home-manager",
|
"original": {
|
||||||
"type": "github"
|
"owner": "numtide",
|
||||||
}
|
"repo": "nix-ai-tools",
|
||||||
},
|
"type": "github"
|
||||||
"ixx": {
|
}
|
||||||
"inputs": {
|
},
|
||||||
"flake-utils": [
|
"nixpkgs": {
|
||||||
"nixvim",
|
"locked": {
|
||||||
"nuschtosSearch",
|
"lastModified": 1764947035,
|
||||||
"flake-utils"
|
"narHash": "sha256-EYHSjVM4Ox4lvCXUMiKKs2vETUSL5mx+J2FfutM7T9w=",
|
||||||
],
|
"owner": "NixOS",
|
||||||
"nixpkgs": [
|
"repo": "nixpkgs",
|
||||||
"nixvim",
|
"rev": "a672be65651c80d3f592a89b3945466584a22069",
|
||||||
"nuschtosSearch",
|
"type": "github"
|
||||||
"nixpkgs"
|
},
|
||||||
]
|
"original": {
|
||||||
},
|
"owner": "NixOS",
|
||||||
"locked": {
|
"ref": "nixpkgs-unstable",
|
||||||
"lastModified": 1748294338,
|
"repo": "nixpkgs",
|
||||||
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
|
"type": "github"
|
||||||
"owner": "NuschtOS",
|
}
|
||||||
"repo": "ixx",
|
},
|
||||||
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
|
"nixpkgs_2": {
|
||||||
"type": "github"
|
"locked": {
|
||||||
},
|
"lastModified": 1764950072,
|
||||||
"original": {
|
"narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=",
|
||||||
"owner": "NuschtOS",
|
"owner": "NixOS",
|
||||||
"ref": "v0.0.8",
|
"repo": "nixpkgs",
|
||||||
"repo": "ixx",
|
"rev": "f61125a668a320878494449750330ca58b78c557",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
},
|
||||||
},
|
"original": {
|
||||||
"nix-ai-tools": {
|
"owner": "NixOS",
|
||||||
"inputs": {
|
"ref": "nixos-unstable",
|
||||||
"blueprint": "blueprint",
|
"repo": "nixpkgs",
|
||||||
"nixpkgs": "nixpkgs",
|
"type": "github"
|
||||||
"treefmt-nix": "treefmt-nix"
|
}
|
||||||
},
|
},
|
||||||
"locked": {
|
"nixvim": {
|
||||||
"lastModified": 1764903547,
|
"inputs": {
|
||||||
"narHash": "sha256-ZAkVNnHrjp4lLtcpA0bLk7IoR4UuxeR/X3vD/G2nX8o=",
|
"flake-parts": "flake-parts",
|
||||||
"owner": "numtide",
|
"nixpkgs": [
|
||||||
"repo": "nix-ai-tools",
|
"nixpkgs"
|
||||||
"rev": "a5eb2131473bdaaa6081db3d17eb1b2a98b5e781",
|
],
|
||||||
"type": "github"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"original": {
|
"locked": {
|
||||||
"owner": "numtide",
|
"lastModified": 1765210697,
|
||||||
"repo": "nix-ai-tools",
|
"narHash": "sha256-Gq6/MRmBhNjGdMDFvZBcnPcfuw/j/dk6N1Y9R+HSA7Q=",
|
||||||
"type": "github"
|
"owner": "nix-community",
|
||||||
}
|
"repo": "nixvim",
|
||||||
},
|
"rev": "05c57f2e74d39e87ef0696e450b7e817dde5378d",
|
||||||
"nixpkgs": {
|
"type": "github"
|
||||||
"locked": {
|
},
|
||||||
"lastModified": 1764856222,
|
"original": {
|
||||||
"narHash": "sha256-yEJmtoFu4cJre1NuU4fb8q57Oux+NTbocnALtJ64aEI=",
|
"owner": "nix-community",
|
||||||
"owner": "NixOS",
|
"repo": "nixvim",
|
||||||
"repo": "nixpkgs",
|
"type": "github"
|
||||||
"rev": "ece6e266caf1effab32eceef0403b797b4330373",
|
}
|
||||||
"type": "github"
|
},
|
||||||
},
|
"root": {
|
||||||
"original": {
|
"inputs": {
|
||||||
"owner": "NixOS",
|
"flake-utils": "flake-utils",
|
||||||
"ref": "nixpkgs-unstable",
|
"home-manager": "home-manager",
|
||||||
"repo": "nixpkgs",
|
"nix-ai-tools": "nix-ai-tools",
|
||||||
"type": "github"
|
"nixpkgs": "nixpkgs_2",
|
||||||
}
|
"nixvim": "nixvim"
|
||||||
},
|
}
|
||||||
"nixpkgs_2": {
|
},
|
||||||
"locked": {
|
"systems": {
|
||||||
"lastModified": 1755186698,
|
"locked": {
|
||||||
"narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=",
|
"lastModified": 1681028828,
|
||||||
"owner": "NixOS",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
"repo": "nixpkgs",
|
"owner": "nix-systems",
|
||||||
"rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c",
|
"repo": "default",
|
||||||
"type": "github"
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
},
|
"type": "github"
|
||||||
"original": {
|
},
|
||||||
"owner": "NixOS",
|
"original": {
|
||||||
"ref": "nixos-unstable",
|
"owner": "nix-systems",
|
||||||
"repo": "nixpkgs",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixvim": {
|
"systems_2": {
|
||||||
"inputs": {
|
"locked": {
|
||||||
"flake-parts": "flake-parts",
|
"lastModified": 1681028828,
|
||||||
"nixpkgs": [
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
"nixpkgs"
|
"owner": "nix-systems",
|
||||||
],
|
"repo": "default",
|
||||||
"nuschtosSearch": "nuschtosSearch",
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
"systems": "systems_4"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"locked": {
|
"original": {
|
||||||
"lastModified": 1754262585,
|
"owner": "nix-systems",
|
||||||
"narHash": "sha256-Yz5dJ0VzGRzSRHdHldsWQbuFYmtP3NWNreCvPfCi9CI=",
|
"repo": "default",
|
||||||
"owner": "nix-community",
|
"type": "github"
|
||||||
"repo": "nixvim",
|
}
|
||||||
"rev": "ab1b5962e1ca90b42de47e1172e0d24ca80e6256",
|
},
|
||||||
"type": "github"
|
"systems_3": {
|
||||||
},
|
"locked": {
|
||||||
"original": {
|
"lastModified": 1681028828,
|
||||||
"owner": "nix-community",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
"ref": "nixos-25.05",
|
"owner": "nix-systems",
|
||||||
"repo": "nixvim",
|
"repo": "default",
|
||||||
"type": "github"
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
}
|
"type": "github"
|
||||||
},
|
},
|
||||||
"nuschtosSearch": {
|
"original": {
|
||||||
"inputs": {
|
"owner": "nix-systems",
|
||||||
"flake-utils": "flake-utils_2",
|
"repo": "default",
|
||||||
"ixx": "ixx",
|
"type": "github"
|
||||||
"nixpkgs": [
|
}
|
||||||
"nixvim",
|
},
|
||||||
"nixpkgs"
|
"treefmt-nix": {
|
||||||
]
|
"inputs": {
|
||||||
},
|
"nixpkgs": [
|
||||||
"locked": {
|
"nix-ai-tools",
|
||||||
"lastModified": 1753771532,
|
"nixpkgs"
|
||||||
"narHash": "sha256-Pmpke0JtLRzgdlwDC5a+aiLVZ11JPUO5Bcqkj0nHE/k=",
|
]
|
||||||
"owner": "NuschtOS",
|
},
|
||||||
"repo": "search",
|
"locked": {
|
||||||
"rev": "2a65adaf2c0c428efb0f4a2bc406aab466e96a06",
|
"lastModified": 1762938485,
|
||||||
"type": "github"
|
"narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=",
|
||||||
},
|
"owner": "numtide",
|
||||||
"original": {
|
"repo": "treefmt-nix",
|
||||||
"owner": "NuschtOS",
|
"rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4",
|
||||||
"repo": "search",
|
"type": "github"
|
||||||
"type": "github"
|
},
|
||||||
}
|
"original": {
|
||||||
},
|
"owner": "numtide",
|
||||||
"root": {
|
"repo": "treefmt-nix",
|
||||||
"inputs": {
|
"type": "github"
|
||||||
"flake-utils": "flake-utils",
|
}
|
||||||
"home-manager": "home-manager",
|
}
|
||||||
"nix-ai-tools": "nix-ai-tools",
|
|
||||||
"nixpkgs": "nixpkgs_2",
|
|
||||||
"nixvim": "nixvim"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nix-ai-tools",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1762938485,
|
|
||||||
"narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
"version": 7
|
"version": 7
|
||||||
}
|
}
|
||||||
|
|
|
||||||
46
flake.nix
46
flake.nix
|
|
@ -9,7 +9,7 @@
|
||||||
};
|
};
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
nixvim = {
|
nixvim = {
|
||||||
url = "github:nix-community/nixvim/nixos-25.05";
|
url = "github:nix-community/nixvim";
|
||||||
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
@ -18,42 +18,32 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, home-manager, flake-utils, nixvim, nix-ai-tools } @ inputs: {
|
outputs = { self, nixpkgs, home-manager, flake-utils, nixvim, nix-ai-tools } @ inputs: {
|
||||||
|
# Reusable modules
|
||||||
|
homeManagerModules.copilot-cli = import ./modules/home-manager/copilot-cli.nix;
|
||||||
|
nixosModules.auto-upgrade = import ./modules/nixos/auto-upgrade.nix;
|
||||||
|
|
||||||
|
# Host configurations
|
||||||
|
|
||||||
homeManagerModules.copilot-cli = { lib, pkgs, config, inputs, ... }: {
|
|
||||||
options.programs.copilot-cli.enable = lib.mkEnableOption "";
|
|
||||||
config = lib.mkIf config.programs.copilot-cli.enable {
|
|
||||||
home.packages = [
|
|
||||||
(
|
|
||||||
inputs.nix-ai-tools.packages.${pkgs.system}.copilot-cli or
|
|
||||||
(inputs.nixpkgs.legacyPackages.${pkgs.system}.fetchgit {
|
|
||||||
url = "github:numtide/nix-ai-tools";
|
|
||||||
ref = "main";
|
|
||||||
}).packages.${pkgs.system}.copilot-cli
|
|
||||||
)
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nixosConfigurations.nxs = nixpkgs.lib.nixosSystem {
|
nixosConfigurations.nxs = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/nxs/configuration.nix
|
./hosts/nxs/configuration.nix
|
||||||
./hosts/nxs/hardware-configuration.nix
|
./hosts/nxs/hardware-configuration.nix
|
||||||
|
self.nixosModules.auto-upgrade
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager = {
|
||||||
home-manager.useUserPackages = true;
|
useGlobalPkgs = true;
|
||||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
useUserPackages = true;
|
||||||
home-manager.users.narrator = import ./hosts/nxs/home.nix;
|
extraSpecialArgs = { inherit inputs; };
|
||||||
system.autoUpgrade = {
|
users.narrator = import ./hosts/nxs/home.nix;
|
||||||
|
sharedModules = [
|
||||||
|
self.homeManagerModules.copilot-cli
|
||||||
|
];
|
||||||
|
};
|
||||||
|
nixos.autoUpgrade = {
|
||||||
enable = true;
|
enable = true;
|
||||||
flake = self.outPath; # <<< here use self.outPath directly, NOT inputs.self
|
flakePath = self.outPath;
|
||||||
flags = [ "-L" ];
|
|
||||||
dates = "02:00";
|
|
||||||
randomizedDelaySec = "45min";
|
|
||||||
operation = "switch";
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,136 +1,47 @@
|
||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page, on
|
|
||||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
|
||||||
|
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [
|
||||||
[
|
./hardware-configuration.nix
|
||||||
./hardware-configuration.nix
|
./modules/nixos/boot.nix
|
||||||
];
|
./modules/nixos/hardware.nix
|
||||||
|
./modules/nixos/desktop.nix
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
./modules/nixos/power-management.nix
|
||||||
fileSystems."/home" = {
|
|
||||||
device = "/dev/disk/by-uuid/31dbc3a8-dfdc-4177-8d3e-2b6e294e7daf";
|
|
||||||
fsType = "btrfs";
|
|
||||||
};
|
|
||||||
swapDevices = [
|
|
||||||
{ device = "/dev/disk/by-uuid/f9da6980-510f-4cce-bff5-50a791346c07"; }
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# System settings
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
# Use the systemd-boot EFI boot loader.
|
system.stateVersion = "25.05";
|
||||||
#boot.loader.systemd-boot.enable = true;
|
|
||||||
#boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
boot.loader.grub.enable = true;
|
|
||||||
boot.loader.grub.efiSupport = true;
|
|
||||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
|
||||||
boot.loader.grub.device = "nodev";
|
|
||||||
boot.loader.grub.useOSProber = true;
|
|
||||||
boot.loader.grub.configurationLimit = 5;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
#boot.loader.grub.efiInstallAsRemovable = true;
|
|
||||||
boot.loader.grub.extraConfig = ''
|
|
||||||
GRUB_DISABLE_OS_PROBER=false
|
|
||||||
GRUB_TERMINAL_OUTPUT=console
|
|
||||||
'';
|
|
||||||
|
|
||||||
boot.loader.grub.gfxmodeBios = "1280x720"; # for BIOS, or
|
# Networking
|
||||||
boot.loader.grub.gfxmodeEfi = "1280x720"; # for EFI
|
networking = {
|
||||||
boot.loader.grub.gfxpayloadBios = "keep";
|
hostName = "nxs";
|
||||||
# Use latest kernel.
|
networkmanager.enable = true;
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
firewall.enable = true;
|
||||||
boot.kernelParams = [ "nvidia-drm.modeset=1" "nvidia.NVreg_PreserveVideoMemoryAllocations=1" ];
|
};
|
||||||
networking.hostName = "nxs"; # Define your hostname.
|
|
||||||
# Pick only one of the below networking options.
|
|
||||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
|
||||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
|
||||||
|
|
||||||
# Set your time zone.
|
# Localization
|
||||||
time.timeZone = "Europe/Rome";
|
time.timeZone = "Europe/Rome";
|
||||||
virtualisation.docker.enable = true;
|
|
||||||
|
|
||||||
# optional but sane:
|
# Virtualization
|
||||||
virtualisation.docker.enableOnBoot = true;
|
virtualisation.docker = {
|
||||||
# Configure network proxy if necessary
|
|
||||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
# i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
# console = {
|
|
||||||
# font = "Lat2-Terminus16";
|
|
||||||
# keyMap = "us";
|
|
||||||
# useXkbConfig = true; # use xkb.options in tty.
|
|
||||||
# };
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
services.xserver = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableOnBoot = true;
|
||||||
libinput = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
touchpad = {
|
|
||||||
naturalScrolling = true;
|
|
||||||
tapping = true;
|
|
||||||
disableWhileTyping = true;
|
|
||||||
clickMethod = "clickfinger";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
displayManager.lightdm = {
|
|
||||||
enable = true;
|
|
||||||
autoLogin.enable = true;
|
|
||||||
autoLogin.user = "narrator";
|
|
||||||
};
|
|
||||||
windowManager.i3.enable = true;
|
|
||||||
|
|
||||||
|
|
||||||
videoDrivers = [ "amdgpu" "nvidia" ];
|
|
||||||
deviceSection = ''
|
|
||||||
BusID "PCI:1:0:0"
|
|
||||||
Driver "nvidia"
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Configure keymap in X11
|
# Users
|
||||||
# services.xserver.xkb.layout = "us";
|
|
||||||
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
# services.printing.enable = true;
|
|
||||||
|
|
||||||
# Enable sound.
|
|
||||||
# services.pulseaudio.enable = true;
|
|
||||||
# OR
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
services.pipewire = {
|
|
||||||
alsa.enable = true;
|
|
||||||
enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
|
||||||
# services.libinput.enable = true;
|
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
||||||
programs.fish.enable = true;
|
programs.fish.enable = true;
|
||||||
users.users.narrator = {
|
users.users.narrator = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" "docker" ]; # Enable ‘sudo’ for the user.
|
extraGroups = [ "wheel" "docker" ];
|
||||||
shell = pkgs.fish;
|
shell = pkgs.fish;
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [ tree ];
|
||||||
tree
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.firefox.enable = true;
|
# System packages
|
||||||
|
|
||||||
# List packages installed in system profile.
|
|
||||||
# You can use https://search.nixos.org/ to find more packages (and options).
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
vim
|
||||||
gnupg
|
gnupg
|
||||||
wget
|
wget
|
||||||
cryptsetup
|
cryptsetup
|
||||||
|
|
@ -143,119 +54,28 @@
|
||||||
git
|
git
|
||||||
pinentry-curses
|
pinentry-curses
|
||||||
lightdm
|
lightdm
|
||||||
i3-gaps
|
i3
|
||||||
awesome
|
awesome
|
||||||
blueman
|
blueman
|
||||||
];
|
];
|
||||||
fonts.packages = with pkgs; [
|
|
||||||
nerd-fonts.fira-code
|
|
||||||
nerd-fonts.droid-sans-mono
|
|
||||||
nerd-fonts.symbols-only
|
|
||||||
];
|
|
||||||
services.logind = {
|
|
||||||
|
|
||||||
lidSwitch = "ignore";
|
# Services
|
||||||
lidSwitchDocked = "ignore";
|
services = {
|
||||||
lidSwitchExternalPower = "lock";
|
openssh.enable = true;
|
||||||
extraConfig = ''
|
timesyncd.enable = true;
|
||||||
IdleAction=ignore
|
pcscd.enable = true;
|
||||||
HandleSuspendKey=ignore
|
|
||||||
HandleLidSwitch=ignore
|
|
||||||
HandleLidSwitchDocked=ignore
|
|
||||||
SuspendKeyIgnoreInhibited=yes
|
|
||||||
LidSwitchIgnoreInhibited=yes
|
|
||||||
HandlePowerKey=poweroff
|
|
||||||
HandleSuspendKey=hibernate
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
systemd.sleep.extraConfig = ''
|
|
||||||
AllowSuspend=no
|
|
||||||
AllowHibernation=no
|
|
||||||
AllowHybridSleep=no
|
|
||||||
AllowSuspendThenHibernate=no
|
|
||||||
'';
|
|
||||||
|
|
||||||
# firewall bc duh
|
|
||||||
networking.firewall.enable = true;
|
|
||||||
documentation.man.generateCaches = false;
|
|
||||||
|
|
||||||
# time sync
|
|
||||||
services.timesyncd.enable = true;
|
|
||||||
|
|
||||||
|
|
||||||
# bluetooth
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
services.blueman.enable = true;
|
|
||||||
|
|
||||||
# enable printing
|
|
||||||
services.printing.enable = true;
|
|
||||||
|
|
||||||
# enable openssh for remote access
|
|
||||||
services.openssh.enable = true;
|
|
||||||
|
|
||||||
|
|
||||||
programs.ssh.startAgent = true;
|
|
||||||
|
|
||||||
|
# Programs
|
||||||
|
programs = {
|
||||||
|
firefox.enable = true;
|
||||||
|
ssh.startAgent = true;
|
||||||
|
gnupg.agent.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Security
|
||||||
security.sudo.wheelNeedsPassword = false;
|
security.sudo.wheelNeedsPassword = false;
|
||||||
system.stateVersion = "25.05"; # Did you read the comment?
|
|
||||||
|
|
||||||
# GnuPG
|
|
||||||
programs.gnupg.agent = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
services.pcscd.enable = true;
|
|
||||||
systemd.services."getty@tty2".enable = true;
|
|
||||||
systemd.services."getty@tty3".enable = true;
|
|
||||||
|
|
||||||
|
|
||||||
hardware.graphics = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Load nvidia driver for Xorg and Wayland
|
|
||||||
hardware.nvidia = {
|
|
||||||
|
|
||||||
# Modesetting is required.
|
|
||||||
modesetting.enable = true;
|
|
||||||
|
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
|
||||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
|
||||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
|
||||||
# of just the bare essentials.
|
|
||||||
powerManagement.enable = true;
|
|
||||||
|
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
|
||||||
#powerManagement.finegrained = true;
|
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
|
||||||
# independent third-party "nouveau" open source driver).
|
|
||||||
# Support is limited to the Turing and later architectures. Full list of
|
|
||||||
# supported GPUs is at:
|
|
||||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
|
||||||
# Only available from driver 515.43.04+
|
|
||||||
open = true;
|
|
||||||
|
|
||||||
# Enable the Nvidia settings menu,
|
|
||||||
# accessible via `nvidia-settings`.
|
|
||||||
nvidiaSettings = true;
|
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
|
||||||
# SSH config:
|
|
||||||
};
|
|
||||||
hardware.nvidia.forceFullCompositionPipeline = true;
|
|
||||||
systemd.services = {
|
|
||||||
systemd-suspend.environment.SYSTEMD_SLEEP_FREEZE_USER_SESSIONS = "false";
|
|
||||||
systemd-hibernate.environment.SYSTEMD_SLEEP_FREEZE_USER_SESSIONS = "false"; # if u care
|
|
||||||
};
|
|
||||||
hardware.nvidia.prime = {
|
|
||||||
offload.enable = true;
|
|
||||||
amdgpuBusId = "PCI:7:0:0";
|
|
||||||
nvidiaBusId = "PCI:1:0:0";
|
|
||||||
#amdgpuBusId = "PCI:54:0:0"; # If you have an AMD iGPU
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
# Documentation
|
||||||
|
documentation.man.generateCaches = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,101 +1,101 @@
|
||||||
{ config, lib, pkgs, inputs, ... }:
|
{ config, lib, pkgs, inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
inputs.self.homeManagerModules.copilot-cli
|
./modules/home-manager/i3.nix
|
||||||
./i3.nix
|
./modules/home-manager/i3blocks.nix
|
||||||
./i3blocks.nix
|
./modules/home-manager/neovim.nix
|
||||||
./modules/neovim.nix
|
./modules/home-manager/fish.nix
|
||||||
./modules/fish.nix
|
./modules/home-manager/tmux.nix
|
||||||
./modules/tmux.nix
|
|
||||||
];
|
];
|
||||||
home.username = "narrator";
|
|
||||||
home.homeDirectory = "/home/narrator";
|
# Home Manager settings
|
||||||
home.stateVersion = "25.05";
|
home = {
|
||||||
programs.home-manager.enable = true;
|
username = "narrator";
|
||||||
programs.ssh = {
|
homeDirectory = "/home/narrator";
|
||||||
enable = true;
|
stateVersion = "25.05";
|
||||||
forwardAgent = true;
|
|
||||||
addKeysToAgent = "yes";
|
packages = with pkgs; [
|
||||||
matchBlocks = {
|
ssh-to-age
|
||||||
"git.unime.it" = {
|
pinentry-curses
|
||||||
hostname = "git.unime.it";
|
cryptsetup
|
||||||
port = 42000; # e.g. 2222
|
grc
|
||||||
};
|
nix-prefetch-github
|
||||||
};
|
gemini-cli
|
||||||
extraConfig = ''
|
gh-copilot
|
||||||
Host git.nonaxiomatic.systems
|
picard
|
||||||
ControlMaster no
|
chromaprint
|
||||||
'';
|
xorg.xmodmap
|
||||||
|
pavucontrol
|
||||||
|
mumble
|
||||||
|
kiwix
|
||||||
|
kiwix-tools
|
||||||
|
aria2
|
||||||
|
git
|
||||||
|
nicotine-plus
|
||||||
|
sl
|
||||||
|
firefox
|
||||||
|
i3blocks
|
||||||
|
strawberry
|
||||||
|
iproute2
|
||||||
|
gawk
|
||||||
|
inetutils
|
||||||
|
gnugrep
|
||||||
|
wireplumber
|
||||||
|
lm_sensors
|
||||||
|
btop
|
||||||
|
flameshot
|
||||||
|
xclip
|
||||||
|
psmisc
|
||||||
|
dmenu
|
||||||
|
picom
|
||||||
|
telegram-desktop
|
||||||
|
feh
|
||||||
|
alacritty
|
||||||
|
i3
|
||||||
|
lsd
|
||||||
|
polybar
|
||||||
|
tmux
|
||||||
|
zoxide
|
||||||
|
fortune
|
||||||
|
nixpkgs-fmt
|
||||||
|
rofi
|
||||||
|
pipewire
|
||||||
|
lshw
|
||||||
|
age
|
||||||
|
notepad-next
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
home-manager.enable = true;
|
||||||
|
copilot-cli.enable = true;
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
ssh = {
|
||||||
|
enable = true;
|
||||||
|
forwardAgent = true;
|
||||||
|
addKeysToAgent = "yes";
|
||||||
|
matchBlocks = {
|
||||||
|
"git.unime.it" = {
|
||||||
|
hostname = "git.unime.it";
|
||||||
|
port = 42000;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
Host git.nonaxiomatic.systems
|
||||||
|
ControlMaster no
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
services.gpg-agent = {
|
services.gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultCacheTtl = 28800;
|
defaultCacheTtl = 28800;
|
||||||
defaultCacheTtlSsh = 28800;
|
defaultCacheTtlSsh = 28800;
|
||||||
sshKeys = [ ]; # auto-populates from gpg keys
|
sshKeys = [ ];
|
||||||
};
|
};
|
||||||
programs.copilot-cli.enable = true;
|
|
||||||
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
ssh-to-age
|
|
||||||
pinentry-curses
|
|
||||||
cryptsetup
|
|
||||||
grc
|
|
||||||
nix-prefetch-github
|
|
||||||
gemini-cli
|
|
||||||
gh-copilot
|
|
||||||
picard
|
|
||||||
chromaprint
|
|
||||||
xorg.xmodmap
|
|
||||||
pavucontrol
|
|
||||||
mumble
|
|
||||||
kiwix
|
|
||||||
kiwix-tools
|
|
||||||
aria2
|
|
||||||
teamspeak3
|
|
||||||
git
|
|
||||||
nicotine-plus
|
|
||||||
sl
|
|
||||||
firefox
|
|
||||||
i3blocks
|
|
||||||
strawberry
|
|
||||||
iproute2
|
|
||||||
gawk
|
|
||||||
inetutils
|
|
||||||
gnugrep
|
|
||||||
wireplumber
|
|
||||||
lm_sensors
|
|
||||||
btop
|
|
||||||
flameshot
|
|
||||||
xclip
|
|
||||||
psmisc
|
|
||||||
dmenu
|
|
||||||
picom
|
|
||||||
telegram-desktop
|
|
||||||
feh
|
|
||||||
alacritty
|
|
||||||
i3-gaps
|
|
||||||
lsd
|
|
||||||
polybar
|
|
||||||
tmux
|
|
||||||
zoxide
|
|
||||||
fortune
|
|
||||||
nixpkgs-fmt
|
|
||||||
rofi
|
|
||||||
pipewire
|
|
||||||
lshw
|
|
||||||
age
|
|
||||||
notepad-next
|
|
||||||
|
|
||||||
];
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
40
hosts/nxs/modules/nixos/boot.nix
Normal file
40
hosts/nxs/modules/nixos/boot.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
boot = {
|
||||||
|
loader = {
|
||||||
|
grub = {
|
||||||
|
enable = true;
|
||||||
|
efiSupport = true;
|
||||||
|
device = "nodev";
|
||||||
|
useOSProber = true;
|
||||||
|
configurationLimit = 5;
|
||||||
|
gfxmodeBios = "1280x720";
|
||||||
|
gfxmodeEfi = "1280x720";
|
||||||
|
gfxpayloadBios = "keep";
|
||||||
|
extraConfig = ''
|
||||||
|
GRUB_DISABLE_OS_PROBER=false
|
||||||
|
GRUB_TERMINAL_OUTPUT=console
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
efi = {
|
||||||
|
efiSysMountPoint = "/boot/efi";
|
||||||
|
canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
kernelParams = [
|
||||||
|
"nvidia-drm.modeset=1"
|
||||||
|
"nvidia.NVreg_PreserveVideoMemoryAllocations=1"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/home" = {
|
||||||
|
device = "/dev/disk/by-uuid/31dbc3a8-dfdc-4177-8d3e-2b6e294e7daf";
|
||||||
|
fsType = "btrfs";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{ device = "/dev/disk/by-uuid/f9da6980-510f-4cce-bff5-50a791346c07"; }
|
||||||
|
];
|
||||||
|
}
|
||||||
39
hosts/nxs/modules/nixos/desktop.nix
Normal file
39
hosts/nxs/modules/nixos/desktop.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.xserver.enable = true;
|
||||||
|
|
||||||
|
services.libinput = {
|
||||||
|
enable = true;
|
||||||
|
touchpad = {
|
||||||
|
naturalScrolling = true;
|
||||||
|
tapping = true;
|
||||||
|
disableWhileTyping = true;
|
||||||
|
clickMethod = "clickfinger";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.displayManager.autoLogin = {
|
||||||
|
enable = true;
|
||||||
|
user = "narrator";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver.displayManager.lightdm.enable = true;
|
||||||
|
services.xserver.windowManager.i3.enable = true;
|
||||||
|
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.blueman.enable = true;
|
||||||
|
services.printing.enable = true;
|
||||||
|
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
nerd-fonts.fira-code
|
||||||
|
nerd-fonts.droid-sans-mono
|
||||||
|
nerd-fonts.symbols-only
|
||||||
|
];
|
||||||
|
}
|
||||||
31
hosts/nxs/modules/nixos/hardware.nix
Normal file
31
hosts/nxs/modules/nixos/hardware.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
hardware = {
|
||||||
|
graphics.enable = true;
|
||||||
|
bluetooth.enable = true;
|
||||||
|
|
||||||
|
nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
powerManagement.enable = true;
|
||||||
|
open = true;
|
||||||
|
nvidiaSettings = true;
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||||
|
forceFullCompositionPipeline = true;
|
||||||
|
|
||||||
|
prime = {
|
||||||
|
offload.enable = true;
|
||||||
|
amdgpuBusId = "PCI:7:0:0";
|
||||||
|
nvidiaBusId = "PCI:1:0:0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver = {
|
||||||
|
videoDrivers = [ "amdgpu" "nvidia" ];
|
||||||
|
deviceSection = ''
|
||||||
|
BusID "PCI:1:0:0"
|
||||||
|
Driver "nvidia"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
23
hosts/nxs/modules/nixos/power-management.nix
Normal file
23
hosts/nxs/modules/nixos/power-management.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.logind = {
|
||||||
|
lidSwitch = "ignore";
|
||||||
|
lidSwitchDocked = "ignore";
|
||||||
|
lidSwitchExternalPower = "lock";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.sleep.extraConfig = ''
|
||||||
|
AllowSuspend=no
|
||||||
|
AllowHibernation=no
|
||||||
|
AllowHybridSleep=no
|
||||||
|
AllowSuspendThenHibernate=no
|
||||||
|
'';
|
||||||
|
|
||||||
|
systemd.services = {
|
||||||
|
systemd-suspend.environment.SYSTEMD_SLEEP_FREEZE_USER_SESSIONS = "false";
|
||||||
|
systemd-hibernate.environment.SYSTEMD_SLEEP_FREEZE_USER_SESSIONS = "false";
|
||||||
|
"getty@tty2".enable = true;
|
||||||
|
"getty@tty3".enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
17
modules/home-manager/copilot-cli.nix
Normal file
17
modules/home-manager/copilot-cli.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{ lib, pkgs, config, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.programs.copilot-cli.enable = lib.mkEnableOption "GitHub Copilot CLI";
|
||||||
|
|
||||||
|
config = lib.mkIf config.programs.copilot-cli.enable {
|
||||||
|
home.packages = [
|
||||||
|
(
|
||||||
|
inputs.nix-ai-tools.packages.${pkgs.system}.copilot-cli or
|
||||||
|
(inputs.nixpkgs.legacyPackages.${pkgs.system}.fetchgit {
|
||||||
|
url = "github:numtide/nix-ai-tools";
|
||||||
|
ref = "main";
|
||||||
|
}).packages.${pkgs.system}.copilot-cli
|
||||||
|
)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
22
modules/nixos/auto-upgrade.nix
Normal file
22
modules/nixos/auto-upgrade.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.nixos.autoUpgrade = {
|
||||||
|
enable = lib.mkEnableOption "automatic NixOS upgrades";
|
||||||
|
flakePath = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "Path to the flake for auto-upgrade";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.nixos.autoUpgrade.enable {
|
||||||
|
system.autoUpgrade = {
|
||||||
|
enable = true;
|
||||||
|
flake = config.nixos.autoUpgrade.flakePath;
|
||||||
|
flags = [ "-L" ];
|
||||||
|
dates = "02:00";
|
||||||
|
randomizedDelaySec = "45min";
|
||||||
|
operation = "switch";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue