Compare commits
56 Commits
galadriel-
...
c30e1479cf
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c30e1479cf | ||
|
|
48bfbd1f30 | ||
| ddda931c58 | |||
| 9898acd20b | |||
| c82983b6d5 | |||
| 338655e0b1 | |||
| 2cd032ef2a | |||
| 5c25748fec | |||
| ce86eafd38 | |||
| 6cb75f5957 | |||
| ef13eb8858 | |||
| 5d9674da2f | |||
| c76199e73c | |||
| 64f8f359eb | |||
| 2aec319e9f | |||
| c994b85ca9 | |||
| 243b202360 | |||
| 2b81323d98 | |||
|
|
0e4702031c | ||
|
|
61896c8791 | ||
| a4c23dc36f | |||
| b8906d74ef | |||
| 74b1e3f80a | |||
| 732ea6f993 | |||
| 869172bd48 | |||
| 9970a7c382 | |||
| 3188032143 | |||
| e39c2a165e | |||
| b5b7d8560e | |||
| 1e0eefe7e4 | |||
| 73831eef96 | |||
| 8da0b07a86 | |||
| db5312b5ca | |||
| d3043498a9 | |||
| 05435bb34d | |||
|
|
466bde0a26 | ||
|
|
92b1292880 | ||
| 4a92a6f4bc | |||
| 2b8f60cf1e | |||
| d3c2cd9d70 | |||
| 0b3df2e535 | |||
| f66c53c9c6 | |||
| d35039e780 | |||
|
|
1b188e35e1 | ||
| 6ec962a860 | |||
| 5ba4b94afa | |||
| f79d2959dd | |||
| 7e048cb77a | |||
| 9e3ababbbc | |||
|
|
af0b840bdc | ||
| 20a8370909 | |||
| 90da56e58f | |||
| 93936eedae | |||
| 602bc358ad | |||
| 17cd8d6795 | |||
|
|
191835ff2b |
475
flake.lock
generated
475
flake.lock
generated
@@ -1,475 +0,0 @@
|
||||
{
|
||||
"nodes": {
|
||||
"base16-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696158499,
|
||||
"narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-schemes",
|
||||
"rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-schemes",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-schemes_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696158499,
|
||||
"narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-schemes",
|
||||
"rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-schemes",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"blog-generator": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nix-colors": "nix-colors",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760358235,
|
||||
"narHash": "sha256-uR6lu5QtudOPQrUVVziEzJqAdYMZn+maPxn95a3bs1U=",
|
||||
"owner": "adrlau",
|
||||
"repo": "blog-generator",
|
||||
"rev": "8497f0fada979c6f67e11c5e70f1eb1f6a5e0d4b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "adrlau",
|
||||
"repo": "blog-generator",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"locked": {
|
||||
"lastModified": 1731098351,
|
||||
"narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730504689,
|
||||
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"pre-commit-hooks-nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758463745,
|
||||
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lanzaboote": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
|
||||
"rust-overlay": "rust-overlay_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737639419,
|
||||
"narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "lanzaboote",
|
||||
"rev": "a65905a09e2c43ff63be8c0e86a93712361f871e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "v0.4.2",
|
||||
"repo": "lanzaboote",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-colors": {
|
||||
"inputs": {
|
||||
"base16-schemes": "base16-schemes",
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1707825078,
|
||||
"narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=",
|
||||
"owner": "misterio77",
|
||||
"repo": "nix-colors",
|
||||
"rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "misterio77",
|
||||
"repo": "nix-colors",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-colors_2": {
|
||||
"inputs": {
|
||||
"base16-schemes": "base16-schemes_2",
|
||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1707825078,
|
||||
"narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=",
|
||||
"owner": "misterio77",
|
||||
"repo": "nix-colors",
|
||||
"rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "misterio77",
|
||||
"repo": "nix-colors",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1760106635,
|
||||
"narHash": "sha256-2GoxVaKWTHBxRoeUYSjv0AfSOx4qw5CWSFz2b+VolKU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "9ed85f8afebf2b7478f25db0a98d0e782c0ed903",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "master",
|
||||
"repo": "nixos-hardware",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1759831965,
|
||||
"narHash": "sha256-vgPm2xjOmKdZ0xKA6yLXPJpjOtQPHfaZDRtH+47XEBo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c9b6fb798541223bbb396d287d16f43520250518",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1697935651,
|
||||
"narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib_2": {
|
||||
"locked": {
|
||||
"lastModified": 1697935651,
|
||||
"narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1730741070,
|
||||
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1744536153,
|
||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1760139962,
|
||||
"narHash": "sha256-4xggC56Rub3WInz5eD7EZWXuLXpNvJiUPahGtMkwtuc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7e297ddff44a3cc93673bb38d0374df8d0ad73e4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks-nix": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"lanzaboote",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731363552,
|
||||
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"blog-generator": "blog-generator",
|
||||
"home-manager": "home-manager",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"nix-colors": "nix-colors_2",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"sops-nix": "sops-nix",
|
||||
"unstable": "unstable"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760063676,
|
||||
"narHash": "sha256-s5Fjh43skH2L+avOGioLmEHoYZffDbg3abV5h0gjeew=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "897deed0923cc5a1d560c5176abe0d172ec9716d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"rust-overlay_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731897198,
|
||||
"narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "0be641045af6d8666c11c2c40e45ffc9667839b5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760240450,
|
||||
"narHash": "sha256-sa9bS9jSyc4vH0jSWrUsPGdqtMvDwmkLg971ntWOo2U=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "41fd1f7570c89f645ee0ada0be4e2d3c4b169549",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1760038930,
|
||||
"narHash": "sha256-Oncbh0UmHjSlxO7ErQDM3KM0A5/Znfofj2BSzlHLeVw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0b4defa2584313f3b781240b29d61f6f9f7e0df3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
52
flake.nix
52
flake.nix
@@ -2,15 +2,19 @@
|
||||
description = "NixOS configuration for legolas (laptop)";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||
unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.05";
|
||||
url = "github:nix-community/home-manager/release-25.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nix-colors.url = "github:misterio77/nix-colors";
|
||||
stylix = {
|
||||
url = "github:nix-community/stylix/release-25.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
sops-nix = {
|
||||
url = "github:Mic92/sops-nix";
|
||||
@@ -18,15 +22,13 @@
|
||||
};
|
||||
|
||||
lanzaboote = {
|
||||
url = "github:nix-community/lanzaboote/v0.4.2";
|
||||
url = "github:nix-community/lanzaboote/v0.4.3";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
|
||||
|
||||
blog-generator.url = "github:adrlau/blog-generator";
|
||||
|
||||
blog-generator.url = "github:adrlau/blog-generator";
|
||||
};
|
||||
|
||||
outputs =
|
||||
@@ -36,6 +38,7 @@
|
||||
unstable,
|
||||
home-manager,
|
||||
nix-colors,
|
||||
stylix,
|
||||
sops-nix,
|
||||
lanzaboote,
|
||||
nixos-hardware,
|
||||
@@ -49,7 +52,7 @@
|
||||
# legolas
|
||||
nixosConfigurations.legolas = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs; };
|
||||
specialArgs = { inherit inputs system; };
|
||||
modules = [
|
||||
./hosts/legolas/configuration.nix
|
||||
|
||||
@@ -60,27 +63,30 @@
|
||||
home-manager.users.gunalx = import ./home/gunalx.nix;
|
||||
home-manager.backupFileExtension = "bac";
|
||||
home-manager.extraSpecialArgs = { inherit nix-colors inputs; };
|
||||
home-manager.sharedModules = [ inputs.sops-nix.homeManagerModules.sops ];
|
||||
home-manager.sharedModules = [
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
inputs.stylix.homeModules.stylix
|
||||
];
|
||||
}
|
||||
|
||||
./modules/unstable.nix
|
||||
|
||||
sops-nix.nixosModules.sops
|
||||
|
||||
lanzaboote.nixosModules.lanzaboote
|
||||
|
||||
nixos-hardware.nixosModules.dell-xps-13-9370
|
||||
|
||||
|
||||
#temporarily for testing run my blog on my laptop
|
||||
blog-generator.nixosModules.default
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
# aragon
|
||||
nixosConfigurations.aragon = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs; };
|
||||
specialArgs = { inherit inputs system; };
|
||||
modules = [
|
||||
./hosts/aragon/configuration.nix
|
||||
|
||||
@@ -91,9 +97,14 @@
|
||||
home-manager.users.gunalx = import ./home/gunalx.nix;
|
||||
home-manager.backupFileExtension = "bac";
|
||||
home-manager.extraSpecialArgs = { inherit nix-colors inputs; };
|
||||
home-manager.sharedModules = [ inputs.sops-nix.homeManagerModules.sops ];
|
||||
home-manager.sharedModules = [
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
inputs.stylix.homeModules.stylix
|
||||
];
|
||||
}
|
||||
|
||||
./modules/unstable.nix
|
||||
|
||||
sops-nix.nixosModules.sops
|
||||
|
||||
lanzaboote.nixosModules.lanzaboote
|
||||
@@ -101,14 +112,13 @@
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
# galadriel
|
||||
nixosConfigurations.galadriel = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs; };
|
||||
specialArgs = { inherit inputs system; };
|
||||
modules = [
|
||||
./modules/unstable.nix
|
||||
|
||||
./hosts/galadriel/configuration.nix
|
||||
|
||||
sops-nix.nixosModules.sops
|
||||
@@ -118,7 +128,15 @@
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
# elros
|
||||
nixosConfigurations.elros = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs system; };
|
||||
modules = [
|
||||
./hosts/elros/configuration.nix
|
||||
sops-nix.nixosModules.sops
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
36
home/aider.nix
Normal file
36
home/aider.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
unstable,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
aider-chat-full
|
||||
];
|
||||
|
||||
programs.aider-chat = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.aider-chat-full;
|
||||
settings = {
|
||||
architect = true;
|
||||
auto-accept-architect = false;
|
||||
cache-prompts = true;
|
||||
check-model-accepts-settings = false;
|
||||
dark-mode = true;
|
||||
dirty-commits = false;
|
||||
lint = true;
|
||||
show-model-warnings = false;
|
||||
verify-ssl = false;
|
||||
|
||||
watch-files=true;
|
||||
analytics-disable=true;
|
||||
check-update=false;
|
||||
multiline=true;
|
||||
notifications=true;
|
||||
show-diffs=true;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
@@ -59,18 +59,18 @@
|
||||
YELLOW='\[\e[33m\]'
|
||||
MAGENTA='\[\e[35m\]'
|
||||
RED='\[\e[31m\]'
|
||||
|
||||
|
||||
if [[ -n "$SSH_CONNECTION" ]]; then
|
||||
REMOTE_LABEL="\[''${YELLOW}\] (ssh)\[''${RESET}\]"
|
||||
else
|
||||
REMOTE_LABEL=""
|
||||
fi
|
||||
|
||||
|
||||
# Git branch function
|
||||
parse_git_branch() {
|
||||
git branch --show-current 2>/dev/null | awk '{print " (" $1 ")"}'
|
||||
}
|
||||
|
||||
|
||||
# Set prompt
|
||||
if [[ $EUID -eq 0 ]]; then
|
||||
PS1="''${BOLD}''${RED}\u''${RESET}:''${BOLD}''${RED}\h''${REMOTE_LABEL}''${RESET}:''${BOLD}''${GREEN}\w''${MAGENTA}\$(parse_git_branch) ''${BLUE}\A''${RESET}\$ "
|
||||
|
||||
273
home/colors.nix
273
home/colors.nix
@@ -6,150 +6,10 @@
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
nix-colors-lib = nix-colors.lib.contrib { inherit pkgs; };
|
||||
c = config.colorScheme.palette; # Access palette colors
|
||||
|
||||
# Generate comprehensive CSS overrides using your color palette
|
||||
gtkColorOverrides = ''
|
||||
/* UI Colors - Main variables */
|
||||
@define-color accent_bg_color #${c.base0D};
|
||||
@define-color accent_fg_color #${c.base07};
|
||||
@define-color accent_color #${c.base0D};
|
||||
@define-color destructive_bg_color #${c.base08};
|
||||
@define-color destructive_fg_color #${c.base07};
|
||||
@define-color destructive_color #${c.base08};
|
||||
@define-color success_bg_color #${c.base0B};
|
||||
@define-color success_fg_color #${c.base07};
|
||||
@define-color success_color #${c.base0B};
|
||||
@define-color warning_bg_color #${c.base0A};
|
||||
@define-color warning_fg_color #${c.base00};
|
||||
@define-color warning_color #${c.base0A};
|
||||
@define-color error_bg_color #${c.base08};
|
||||
@define-color error_fg_color #${c.base07};
|
||||
@define-color error_color #${c.base08};
|
||||
|
||||
/* Window Colors */
|
||||
@define-color window_bg_color #${c.base00};
|
||||
@define-color window_fg_color #${c.base05};
|
||||
|
||||
/* View Colors */
|
||||
@define-color view_bg_color #${c.base00};
|
||||
@define-color view_fg_color #${c.base05};
|
||||
|
||||
/* Header Bar Colors */
|
||||
@define-color headerbar_bg_color #${c.base01};
|
||||
@define-color headerbar_fg_color #${c.base05};
|
||||
@define-color headerbar_border_color #${c.base03};
|
||||
@define-color headerbar_backdrop_color #${c.base00};
|
||||
@define-color headerbar_shade_color rgba(0, 0, 0, 0.12);
|
||||
@define-color headerbar_darker_shade_color rgba(0, 0, 0, 0.12);
|
||||
|
||||
/* Sidebar Colors */
|
||||
@define-color sidebar_bg_color #${c.base01};
|
||||
@define-color sidebar_fg_color #${c.base05};
|
||||
@define-color sidebar_backdrop_color #${c.base00};
|
||||
@define-color sidebar_border_color rgba(0, 0, 0, 0.07);
|
||||
@define-color sidebar_shade_color rgba(0, 0, 0, 0.07);
|
||||
|
||||
/* Card Colors */
|
||||
@define-color card_bg_color #${c.base01};
|
||||
@define-color card_fg_color #${c.base05};
|
||||
@define-color card_shade_color rgba(0, 0, 0, 0.07);
|
||||
|
||||
/* Dialog Colors */
|
||||
@define-color dialog_bg_color #${c.base01};
|
||||
@define-color dialog_fg_color #${c.base05};
|
||||
|
||||
/* Popover Colors */
|
||||
@define-color popover_bg_color #${c.base01};
|
||||
@define-color popover_fg_color #${c.base05};
|
||||
@define-color popover_shade_color rgba(0, 0, 0, 0.07);
|
||||
|
||||
/* Miscellaneous Colors */
|
||||
@define-color shade_color rgba(0, 0, 0, 0.07);
|
||||
@define-color scrollbar_outline_color #${c.base07};
|
||||
|
||||
/* Palette Colors */
|
||||
@define-color blue_1 #99c1f1;
|
||||
@define-color blue_2 #62a0ea;
|
||||
@define-color blue_3 #3584e4;
|
||||
@define-color blue_4 #1c71d8;
|
||||
@define-color blue_5 #1a5fb4;
|
||||
@define-color green_1 #8ff0a4;
|
||||
@define-color green_2 #57e389;
|
||||
@define-color green_3 #33d17a;
|
||||
@define-color green_4 #2ec27e;
|
||||
@define-color green_5 #26a269;
|
||||
@define-color yellow_1 #f9f06b;
|
||||
@define-color yellow_2 #f8e45c;
|
||||
@define-color yellow_3 #f6d32d;
|
||||
@define-color yellow_4 #f5c211;
|
||||
@define-color yellow_5 #e5a50a;
|
||||
@define-color orange_1 #ffbe6f;
|
||||
@define-color orange_2 #ffa348;
|
||||
@define-color orange_3 #ff7800;
|
||||
@define-color orange_4 #e66100;
|
||||
@define-color orange_5 #c64600;
|
||||
@define-color red_1 #f66151;
|
||||
@define-color red_2 #ed333b;
|
||||
@define-color red_3 #e01b24;
|
||||
@define-color red_4 #c01c28;
|
||||
@define-color red_5 #a51d2d;
|
||||
@define-color purple_1 #dc8add;
|
||||
@define-color purple_2 #c061cb;
|
||||
@define-color purple_3 #9141ac;
|
||||
@define-color purple_4 #813d9c;
|
||||
@define-color purple_5 #613583;
|
||||
@define-color brown_1 #cdab8f;
|
||||
@define-color brown_2 #b5835a;
|
||||
@define-color brown_3 #986a44;
|
||||
@define-color brown_4 #865e3c;
|
||||
@define-color brown_5 #63452c;
|
||||
@define-color light_1 #ffffff;
|
||||
@define-color light_2 #f6f5f4;
|
||||
@define-color light_3 #deddda;
|
||||
@define-color light_4 #c0bfbc;
|
||||
@define-color light_5 #9a9996;
|
||||
@define-color dark_1 #77767b;
|
||||
@define-color dark_2 #5e5c64;
|
||||
@define-color dark_3 #3d3846;
|
||||
@define-color dark_4 #241f31;
|
||||
@define-color dark_5 #000000;
|
||||
|
||||
/* Compatibility Colors */
|
||||
@define-color theme_bg_color #${c.base00};
|
||||
@define-color theme_fg_color #${c.base05};
|
||||
@define-color theme_base_color #${c.base00};
|
||||
@define-color theme_text_color #${c.base05};
|
||||
@define-color theme_selected_bg_color #${c.base0D};
|
||||
@define-color theme_selected_fg_color #${c.base07};
|
||||
@define-color insensitive_bg_color #${c.base01};
|
||||
@define-color insensitive_fg_color #${c.base03};
|
||||
@define-color insensitive_base_color #${c.base00};
|
||||
@define-color borders rgba(0, 0, 0, 0.15);
|
||||
@define-color theme_unfocused_bg_color #${c.base00};
|
||||
@define-color theme_unfocused_fg_color #${c.base05};
|
||||
@define-color theme_unfocused_base_color #${c.base00};
|
||||
@define-color theme_unfocused_text_color #${c.base05};
|
||||
@define-color theme_unfocused_selected_bg_color #${c.base0D};
|
||||
@define-color theme_unfocused_selected_fg_color #${c.base07};
|
||||
@define-color unfocused_insensitive_color #${c.base01};
|
||||
@define-color unfocused_borders rgba(0, 0, 0, 0.15);
|
||||
|
||||
/* Standard GTK Colors */
|
||||
@define-color bg_color #${c.base00};
|
||||
@define-color fg_color #${c.base05};
|
||||
@define-color base_color #${c.base00};
|
||||
@define-color text_color #${c.base05};
|
||||
@define-color selected_bg_color #${c.base0D};
|
||||
@define-color selected_fg_color #${c.base07};
|
||||
@define-color tooltip_bg_color #${c.base01};
|
||||
@define-color tooltip_fg_color #${c.base05};
|
||||
'';
|
||||
in
|
||||
{
|
||||
imports = [ nix-colors.homeManagerModules.default ];
|
||||
imports = [
|
||||
nix-colors.homeManagerModules.default
|
||||
];
|
||||
|
||||
colorScheme = {
|
||||
slug = "teal-green-dark";
|
||||
@@ -157,101 +17,40 @@ in
|
||||
author = "Adrian";
|
||||
palette = {
|
||||
# Base16 Teal‐Green Dark Theme - Enhanced Teal Version
|
||||
base00 = "0c1f1d"; # Default background - deeper teal base
|
||||
base01 = "12302d"; # Lighter background (status bars)
|
||||
base02 = "1c3b38"; # Selection background
|
||||
base03 = "26514d"; # Comments, secondary content
|
||||
base04 = "447b76"; # Dark foreground (status bars)
|
||||
base05 = "c4e5e0"; # Default foreground
|
||||
base06 = "d4f0ed"; # Light foreground
|
||||
base07 = "f0fbfa"; # Lightest background
|
||||
base08 = "5fcac0"; # Variables, markup link text - teal accent
|
||||
base09 = "40bfa5"; # Integers, constants - teal-green
|
||||
base0A = "60d5b0"; # Classes, search highlight - bright teal
|
||||
base0B = "40c0a0"; # Strings, inserted - true teal (less green)
|
||||
base0C = "30d0c0"; # Support, escape characters - cyan-teal
|
||||
base0D = "2aa198"; # Functions, headings - classic teal
|
||||
base0E = "3cb4ac"; # Keywords, selectors - teal-blue
|
||||
base0F = "70d0c0"; # Deprecated tags - light teal
|
||||
# base00 = "0c1f1d"; # Default background - deeper teal base
|
||||
# base01 = "12302d"; # Lighter background (status bars)
|
||||
# base02 = "1c3b38"; # Selection background
|
||||
# base03 = "26514d"; # Comments, secondary content
|
||||
# base04 = "447b76"; # Dark foreground (status bars)
|
||||
# base05 = "c4e5e0"; # Default foreground
|
||||
# base06 = "d4f0ed"; # Light foreground
|
||||
# base07 = "f0fbfa"; # Lightest background
|
||||
# base08 = "5fcac0"; # Variables, markup link text - teal accent
|
||||
# base09 = "40bfa5"; # Integers, constants - teal-green
|
||||
# base0A = "60d5b0"; # Classes, search highlight - bright teal
|
||||
# base0B = "40c0a0"; # Strings, inserted - true teal (less green)
|
||||
# base0C = "30d0c0"; # Support, escape characters - cyan-teal
|
||||
# base0D = "2aa198"; # Functions, headings - classic teal
|
||||
# base0E = "3cb4ac"; # Keywords, selectors - teal-blue
|
||||
# base0F = "70d0c0"; # Deprecated tags - light teal
|
||||
|
||||
## catppuccin mocha based
|
||||
base00 = "0b1c1a"; # Default background — deeper teal-dark background
|
||||
base01 = "153532"; # Lighter background / status bars
|
||||
base02 = "1b3d39"; # Selection background / line highlight
|
||||
base03 = "275454"; # Comments, secondary UI elements
|
||||
base04 = "6f7389"; # Dark foreground / secondary text
|
||||
base05 = "95a0b8"; # Default foreground / main text
|
||||
base06 = "a8b2ce"; # Light foreground / lighter UI elements
|
||||
base07 = "ccdffa"; # Lightest background / highlight background
|
||||
base08 = "f38ba8"; # Errors, alerts — red-pink accent
|
||||
base09 = "e0a878"; # Numbers, constants — muted peach/orange
|
||||
base0A = "b8c071"; # Warnings, highlights — golden-yellow
|
||||
base0B = "4fbf93"; # Strings, inserts — teal-green
|
||||
base0C = "2ac5c2"; # Support, escape/sequences — cyan-teal
|
||||
base0D = "2fa6b0"; # Functions, types — classic teal-blue
|
||||
base0E = "c7a8f5"; # Keywords, special — soft magenta/purple
|
||||
base0F = "b2b4cf"; # Deprecated / special tags — light cool grey-lavender
|
||||
};
|
||||
};
|
||||
|
||||
# GTK configuration with custom theme
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
cursorTheme = {
|
||||
name = "Adwaita-Dark";
|
||||
package = pkgs.adwaita-icon-theme;
|
||||
size = 24;
|
||||
};
|
||||
gtk2.extraConfig = ''
|
||||
style "custom-dark" {
|
||||
bg[NORMAL] = "#${c.base00}"
|
||||
bg[PRELIGHT] = "#${c.base02}"
|
||||
bg[ACTIVE] = "#${c.base01}"
|
||||
bg[SELECTED] = "#${c.base0D}"
|
||||
bg[INSENSITIVE] = "#${c.base01}"
|
||||
fg[NORMAL] = "#${c.base05}"
|
||||
fg[PRELIGHT] = "#${c.base06}"
|
||||
fg[ACTIVE] = "#${c.base07}"
|
||||
fg[SELECTED] = "#${c.base07}"
|
||||
fg[INSENSITIVE] = "#${c.base03}"
|
||||
|
||||
base[NORMAL] = "#${c.base01}"
|
||||
base[PRELIGHT] = "#${c.base02}"
|
||||
base[ACTIVE] = "#${c.base0D}"
|
||||
base[SELECTED] = "#${c.base0D}"
|
||||
base[INSENSITIVE] = "#${c.base00}"
|
||||
|
||||
text[NORMAL] = "#${c.base05}"
|
||||
text[PRELIGHT] = "#${c.base06}"
|
||||
text[ACTIVE] = "#${c.base07}"
|
||||
text[SELECTED] = "#${c.base07}"
|
||||
text[INSENSITIVE] = "#${c.base03}"
|
||||
|
||||
}
|
||||
|
||||
widget_class "*" style "custom-dark"
|
||||
|
||||
gtk-application-prefer-dark-theme="true"
|
||||
'';
|
||||
|
||||
gtk3.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = true;
|
||||
};
|
||||
gtk4.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = true;
|
||||
};
|
||||
# Inject comprehensive color overrides for GTK 3
|
||||
gtk3.extraCss = gtkColorOverrides;
|
||||
# Inject comprehensive color overrides for GTK 4
|
||||
gtk4.extraCss = gtkColorOverrides;
|
||||
};
|
||||
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
icon-theme = "Papirus-Dark";
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
papirus-icon-theme
|
||||
gnome-themes-extra
|
||||
adwaita-icon-theme
|
||||
];
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
#platformTheme.name = "gtk";
|
||||
platformTheme.name = "gtk3";
|
||||
style.name = "gtk2";
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -9,8 +9,7 @@
|
||||
fcitx5-rime
|
||||
fcitx5-mozc
|
||||
fcitx5-gtk
|
||||
fcitx5-configtool
|
||||
fcitx5-material-color # Add the theme package
|
||||
qt6Packages.fcitx5-configtool
|
||||
];
|
||||
|
||||
settings = {
|
||||
@@ -18,16 +17,6 @@
|
||||
globalOptions.Hotkey = {
|
||||
TriggerKey = "Control+space";
|
||||
};
|
||||
|
||||
# Addon settings for the theme
|
||||
addons.classicui = {
|
||||
globalSection = {
|
||||
Theme = "Material-Color-Dark";
|
||||
DarkTheme = "Material-Color-Dark";
|
||||
UseDarkTheme = true;
|
||||
};
|
||||
};
|
||||
|
||||
inputMethod = {
|
||||
"Groups/0" = {
|
||||
Name = "Default";
|
||||
|
||||
@@ -12,38 +12,38 @@
|
||||
|
||||
main = {
|
||||
term = "xterm-256color";
|
||||
font = "0xproto:size=14";
|
||||
#font = "0xproto:size=14";
|
||||
#dpi-aware = "yes";
|
||||
};
|
||||
mouse = {
|
||||
hide-when-typing = "yes";
|
||||
};
|
||||
|
||||
colors = {
|
||||
alpha = "0.7";
|
||||
foreground = "${config.colorScheme.palette.base05}";
|
||||
background = "${config.colorScheme.palette.base00}";
|
||||
#colors = {
|
||||
#alpha = "0.7";
|
||||
#foreground = "${config.colorScheme.palette.base05}";
|
||||
#background = "${config.colorScheme.palette.base00}";
|
||||
|
||||
regular0 = "${config.colorScheme.palette.base00}";
|
||||
regular1 = "${config.colorScheme.palette.base08}";
|
||||
regular2 = "${config.colorScheme.palette.base0B}";
|
||||
regular3 = "${config.colorScheme.palette.base0A}";
|
||||
regular4 = "${config.colorScheme.palette.base0D}";
|
||||
regular5 = "${config.colorScheme.palette.base0E}";
|
||||
regular6 = "${config.colorScheme.palette.base0C}";
|
||||
regular7 = "${config.colorScheme.palette.base05}";
|
||||
#regular0 = "${config.colorScheme.palette.base00}";
|
||||
#regular1 = "${config.colorScheme.palette.base08}";
|
||||
#regular2 = "${config.colorScheme.palette.base0B}";
|
||||
#regular3 = "${config.colorScheme.palette.base0A}";
|
||||
#regular4 = "${config.colorScheme.palette.base0D}";
|
||||
#regular5 = "${config.colorScheme.palette.base0E}";
|
||||
#regular6 = "${config.colorScheme.palette.base0C}";
|
||||
#regular7 = "${config.colorScheme.palette.base05}";
|
||||
|
||||
bright0 = "${config.colorScheme.palette.base03}";
|
||||
bright1 = "${config.colorScheme.palette.base08}";
|
||||
bright2 = "${config.colorScheme.palette.base0B}";
|
||||
bright3 = "${config.colorScheme.palette.base0A}";
|
||||
bright4 = "${config.colorScheme.palette.base0D}";
|
||||
bright5 = "${config.colorScheme.palette.base0E}";
|
||||
bright6 = "${config.colorScheme.palette.base0C}";
|
||||
bright7 = "${config.colorScheme.palette.base07}";
|
||||
selection-foreground = "${config.colorScheme.palette.base00}";
|
||||
selection-background = "${config.colorScheme.palette.base0A}";
|
||||
};
|
||||
#bright0 = "${config.colorScheme.palette.base03}";
|
||||
#bright1 = "${config.colorScheme.palette.base08}";
|
||||
#bright2 = "${config.colorScheme.palette.base0B}";
|
||||
#bright3 = "${config.colorScheme.palette.base0A}";
|
||||
#bright4 = "${config.colorScheme.palette.base0D}";
|
||||
#bright5 = "${config.colorScheme.palette.base0E}";
|
||||
#bright6 = "${config.colorScheme.palette.base0C}";
|
||||
#bright7 = "${config.colorScheme.palette.base07}";
|
||||
#selection-foreground = "${config.colorScheme.palette.base00}";
|
||||
#selection-background = "${config.colorScheme.palette.base0A}";
|
||||
#};
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
settings = {
|
||||
pull.rebase = true;
|
||||
push.autoSetupRemote = true;
|
||||
color.ui = "auto";
|
||||
|
||||
@@ -12,8 +12,11 @@
|
||||
./bash.nix
|
||||
./xdg.nix
|
||||
|
||||
#graphical
|
||||
# theming
|
||||
./colors.nix
|
||||
./stylix.nix
|
||||
|
||||
#graphical
|
||||
./fuzzel.nix
|
||||
./swaylock.nix
|
||||
./gtklock.nix
|
||||
@@ -29,6 +32,8 @@
|
||||
./mako.nix
|
||||
./foot.nix
|
||||
./zed.nix
|
||||
./aider.nix
|
||||
./opencode.nix
|
||||
./neovim.nix
|
||||
./fcitx5.nix
|
||||
|
||||
|
||||
18
home/kdeconnect.nix
Normal file
18
home/kdeconnect.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
kdePackages.xdg-desktop-portal-kde
|
||||
kdePackages.kdeconnect-kde
|
||||
];
|
||||
services.kdeconnect = {
|
||||
enable = true;
|
||||
#package = pkgs.kdePackages.kdeconnect-kde;
|
||||
package = pkgs.gnomeExtensions.gsconnect;
|
||||
indicator = true;
|
||||
};
|
||||
}
|
||||
158
home/neovim.nix
158
home/neovim.nix
@@ -5,47 +5,133 @@
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
defaultEditor = true;
|
||||
|
||||
# Required for render-markdown and coc
|
||||
withPython3 = true;
|
||||
withNodeJs = true;
|
||||
|
||||
extraConfig = ''
|
||||
set backspace=indent,eol,start
|
||||
syntax on
|
||||
set tabstop=2 softtabstop=0 autoindent expandtab shiftwidth=2 smarttab
|
||||
# Keep your python deps for latex rendering
|
||||
extraPython3Packages = ps: [ ps.pylatexenc ];
|
||||
|
||||
|
||||
" Use <Tab> completion instead of ctrl n and ctrl p
|
||||
inoremap <expr> <Tab> pumvisible() ? "\<C-y>" : "\<Tab>"
|
||||
inoremap <expr> <S-Tab> "\<Tab>"
|
||||
'';
|
||||
|
||||
extraLuaConfig = ''
|
||||
vim.wo.number = true
|
||||
-- vim.wo.relativenumber = true
|
||||
vim.api.nvim_set_option("clipboard", "unnamedplus")
|
||||
'';
|
||||
|
||||
extraPackages = [ pkgs.fzf ]; # For fzf-vim functionality
|
||||
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
vim-nix
|
||||
vim-lastplace
|
||||
vim-yaml
|
||||
fzf-vim
|
||||
chadtree
|
||||
typst-vim
|
||||
typst-preview-nvim
|
||||
aider-nvim
|
||||
#magma-nvim #jupyter
|
||||
#molten-nvim #jupyter
|
||||
extraPackages = with pkgs; [
|
||||
fzf
|
||||
wl-clipboard
|
||||
xclip
|
||||
ripgrep # Nvim-tree (and fzf) work better with ripgrep installed
|
||||
];
|
||||
|
||||
# CoC configuration (replacing coc-rust-analyzer plugin)
|
||||
coc.enable = true;
|
||||
coc.settings = {
|
||||
"coc.globalExtensions" = [
|
||||
"coc-rust-analyzer"
|
||||
];
|
||||
};
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
# --- UI / File Explorer (Replaces Chadtree) ---
|
||||
nvim-tree-lua
|
||||
nvim-web-devicons
|
||||
|
||||
# --- Fuzzy Finder ---
|
||||
fzf-vim
|
||||
|
||||
# --- Editor Utilities ---
|
||||
vim-lastplace
|
||||
vim-nix
|
||||
vim-yaml
|
||||
|
||||
# --- Coding / LSP (CoC) ---
|
||||
# Keeping CoC as requested (switching to Native LSP is a bigger task)
|
||||
coc-nvim
|
||||
coc-vimtex
|
||||
coc-rust-analyzer
|
||||
|
||||
# --- Markdown / LaTeX / Typst ---
|
||||
vimtex
|
||||
typst-vim
|
||||
typst-preview-nvim
|
||||
render-markdown-nvim
|
||||
markdown-preview-nvim
|
||||
|
||||
# --- AI ---
|
||||
aider-nvim
|
||||
|
||||
# --- Treesitter ---
|
||||
(nvim-treesitter.withPlugins (p: [
|
||||
p.markdown
|
||||
p.markdown_inline
|
||||
p.latex
|
||||
p.yaml
|
||||
p.bash
|
||||
p.rust
|
||||
p.nix
|
||||
p.lua
|
||||
]))
|
||||
];
|
||||
|
||||
# We can consolidate most settings into Lua for simplicity
|
||||
extraLuaConfig = ''
|
||||
-- ============================
|
||||
-- 1. General Settings
|
||||
-- ============================
|
||||
vim.opt.number = true
|
||||
vim.opt.backspace = { "indent", "eol", "start" }
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.softtabstop = 0
|
||||
vim.opt.shiftwidth = 2
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.smarttab = true
|
||||
vim.opt.autoindent = true
|
||||
|
||||
-- Clipboard setup
|
||||
vim.opt.clipboard = "unnamedplus"
|
||||
|
||||
-- ============================
|
||||
-- 2. File Explorer (Nvim-tree)
|
||||
-- ============================
|
||||
-- This replaces Chadtree. It is much more stable.
|
||||
require("nvim-tree").setup({
|
||||
sort = { sorter = "case_sensitive" },
|
||||
view = { width = 30 },
|
||||
renderer = { group_empty = true },
|
||||
filters = { dotfiles = false },
|
||||
})
|
||||
|
||||
-- Toggle file explorer with <Leader>e
|
||||
vim.keymap.set('n', '<leader>e', ':NvimTreeToggle<CR>', { silent = true })
|
||||
|
||||
-- ============================
|
||||
-- 3. Render Markdown Setup
|
||||
-- ============================
|
||||
require('render-markdown').setup({
|
||||
latex = {
|
||||
enabled = true,
|
||||
converter = 'latex2text',
|
||||
highlight = 'RenderMarkdownMath',
|
||||
top_pad = 0,
|
||||
bottom_pad = 0,
|
||||
},
|
||||
})
|
||||
'';
|
||||
|
||||
# Vimscript is still best for specific CoC and FZF tweaks
|
||||
extraConfig = ''
|
||||
syntax on
|
||||
set mouse=a
|
||||
|
||||
" --- CoC Configuration ---
|
||||
" Use Tab to trigger completion and navigate
|
||||
inoremap <silent><expr> <TAB>
|
||||
\ coc#pum#visible() ? coc#pum#next(1) :
|
||||
\ CheckBackspace() ? "\<Tab>" :
|
||||
\ coc#refresh()
|
||||
inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
|
||||
|
||||
" Make <CR> (Enter) accept the selected item
|
||||
inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm()
|
||||
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
|
||||
|
||||
function! CheckBackspace() abort
|
||||
let col = col('.') - 1
|
||||
return !col || getline('.')[col - 1] =~# '\s'
|
||||
endfunction
|
||||
|
||||
" --- Keymaps ---
|
||||
" Browser Preview Hotkey
|
||||
nmap <leader>m <Plug>MarkdownPreviewToggle
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
1100
home/niri.nix
1100
home/niri.nix
File diff suppressed because it is too large
Load Diff
141
home/opencode.nix
Normal file
141
home/opencode.nix
Normal file
@@ -0,0 +1,141 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
unstable,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
opencode
|
||||
];
|
||||
|
||||
programs.opencode = {
|
||||
enable = true;
|
||||
enableMcpIntegration = true;
|
||||
|
||||
|
||||
settings = {
|
||||
model = "anthropic/claude-sonnet-4-20250514";
|
||||
small_model = "anthropic/claude-haiku-4-5";
|
||||
autoshare = false;
|
||||
autoupdate = false;
|
||||
};
|
||||
|
||||
agents = {
|
||||
code-reviewer = ''
|
||||
# Code Reviewer Agent
|
||||
|
||||
You are a senior software engineer specializing in code reviews.
|
||||
Focus on code quality, security, and maintainability.
|
||||
|
||||
## Guidelines
|
||||
- Review for potential bugs and edge cases
|
||||
- Check for security vulnerabilities
|
||||
- Ensure code follows best practices
|
||||
- Suggest improvements for readability and performance
|
||||
'';
|
||||
|
||||
debugger = ''
|
||||
# Debugger Agent
|
||||
|
||||
You are a software engineer specializing in debugging and troubleshooting.
|
||||
Focus on identifying issues, providing insights into existing bugs, and suggesting improvements to the debugging process.
|
||||
|
||||
## Guidelines
|
||||
- Look for unhandled exceptions, crashes, or error states.
|
||||
- Identify and remove redundant or unnecessary debug/print statements.
|
||||
- Check for proper logging practices: ensure log levels (info, debug, error) are used correctly.
|
||||
- Examine error messages for clarity and context—ensure they aid in troubleshooting.
|
||||
- Look for missing or incorrect error handling and suggest improvements.
|
||||
- Trace the flow of execution to catch logical or state-related bugs.
|
||||
- Ensure relevant variable states are being monitored during runtime to spot anomalies.
|
||||
- Suggest improvements to breakpoints, watchpoints, or other debugging tools for better visibility.
|
||||
- Look for performance bottlenecks that could be causing issues and suggest optimizations.
|
||||
- Check for edge cases and race conditions that might not be covered by current debugging.
|
||||
- Ensure debugging steps or tools don’t affect production environments (i.e., avoid verbose logging in production).
|
||||
- Document findings and proposed fixes clearly for future reference.
|
||||
'';
|
||||
|
||||
simplifier = ''
|
||||
# Simplifier Agent
|
||||
|
||||
You are a software engineer specializing in simplifying and refactoring complex code.
|
||||
Focus on making the code more readable, maintainable, and easier to understand without altering its functionality.
|
||||
|
||||
## Guidelines
|
||||
- Break down long or complex functions into smaller, well-named helper functions or methods.
|
||||
- Identify and remove any redundant or duplicate logic, consolidating wherever possible.
|
||||
- Use more descriptive variable and function names to improve clarity.
|
||||
- Simplify nested loops or conditionals (e.g., consider early returns to reduce indentation).
|
||||
- Replace complex data structures or algorithms with simpler, more efficient alternatives if appropriate.
|
||||
- Refactor complex conditional logic (e.g., using polymorphism, strategy pattern, or lookup tables where applicable).
|
||||
- Replace hardcoded values with constants or configuration variables to improve flexibility.
|
||||
- Group related logic together to improve cohesion within classes or functions.
|
||||
- Ensure the code follows the DRY (Don't Repeat Yourself) principle and refactor to remove duplication.
|
||||
- Simplify error handling by centralizing common error paths or using more consistent exception handling.
|
||||
- Remove unnecessary comments or redundant code that doesn’t add value to readability.
|
||||
- Check for opportunities to use built-in language features or libraries to reduce custom code (e.g., use `map()` instead of for-loops in Python).
|
||||
- Ensure code is modular and maintainable, facilitating easier testing and future updates.
|
||||
- Use early exits or guard clauses to minimize nested logic and make the code more straightforward.
|
||||
|
||||
'';
|
||||
|
||||
};
|
||||
commands = {
|
||||
commit = ''
|
||||
# Commit Command
|
||||
|
||||
Create a git commit with proper message formatting following conventional commits.
|
||||
Usage: /commit [message]
|
||||
'';
|
||||
};
|
||||
|
||||
rules = ''
|
||||
### **General Project Guidelines**
|
||||
#### **Separation of Concerns**
|
||||
|
||||
* Keep your code **loosely coupled** components/modules should only know about what they need.
|
||||
* Maintain clear **separation between domain logic and business logic** ensure your domain layer is independent of infrastructure or framework specific details.
|
||||
* Ensure **separation of data concerns** never mix UI data, business data, and domain entities in a single layer.
|
||||
|
||||
#### **Typing and Type Safety**
|
||||
|
||||
* **Always define types** explicitly for variables, parameters, and return values.
|
||||
* Avoid using `any` if you're unsure about a type, lean on **unknown** or **generics** until you can define it properly.
|
||||
* **Interfaces and Types** should be descriptive and reusable prefer interfaces for object shapes, and types for unions/intersections or specific business rules.
|
||||
* Avoid overcomplicating types focus on clarity and consistency.
|
||||
|
||||
#### **Code Simplicity**
|
||||
|
||||
* Write **simple, understandable code** don't over engineer solutions unless absolutely necessary.
|
||||
* Keep methods and functions **small and focused** follow the Single Responsibility Principle.
|
||||
* **Comment only when necessary** to explain complex or non obvious patterns **no comments for simple or self explanatory code**.
|
||||
|
||||
#### **Production-Ready Code**
|
||||
|
||||
* Always write **production-grade code** optimize for maintainability, readability, and scalability.
|
||||
* Ensure **robust error handling** catch edge cases, validate inputs, and handle exceptions gracefully.
|
||||
|
||||
#### **Framework and Library Usage**
|
||||
|
||||
* Use frameworks and libraries **where they make sense**, but avoid unnecessary dependencies, we usually want to keep dependencies down.
|
||||
* Follow **framework best practices** for structure, state management, and lifecycle methods
|
||||
* Keep **UI and business logic separate** don't directly tie your UI components to business logic; use hooks or services to handle interactions.
|
||||
|
||||
#### **Documentation**
|
||||
|
||||
* **Document key architecture decisions** especially if they are complex or non intuitive.
|
||||
* Only document the **why** and **how** when it's not obvious avoid redundant or trivial comments.
|
||||
* Keep your documentation to the developmentlog.md Make a new section, dont write to long, just briefely what needs to be documented.
|
||||
|
||||
#### **Performance Considerations**
|
||||
|
||||
* Optimize for **readability first**, then **performance** measure performance bottlenecks before optimizing.
|
||||
* When optimizing, our first priority is finding arcitectural problems, then finding out ways to parralelize.
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
@@ -17,10 +17,13 @@
|
||||
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
compression = true;
|
||||
# compression moved to matchBlocks."*"
|
||||
# Default config is deprecated, disabling it and managing defaults manually if needed
|
||||
enableDefaultConfig = false;
|
||||
|
||||
matchBlocks = {
|
||||
"*" = {
|
||||
compression = true;
|
||||
identityFile = [
|
||||
"~/.ssh/nixos"
|
||||
"~/.ssh/id_ed25519"
|
||||
@@ -82,7 +85,7 @@
|
||||
|
||||
"galadriel" = {
|
||||
port = 6969;
|
||||
hostname = "100.84.215.84";
|
||||
hostname = "100.110.96.125";
|
||||
};
|
||||
|
||||
"gandalf" = {
|
||||
|
||||
68
home/stylix.nix
Normal file
68
home/stylix.nix
Normal file
@@ -0,0 +1,68 @@
|
||||
{ pkgs, config, ... }:
|
||||
|
||||
{
|
||||
stylix = {
|
||||
enable = true;
|
||||
|
||||
#autoEnable = false;
|
||||
#targets.gtk.enable = true;
|
||||
#targets.qt.enable = true;
|
||||
|
||||
#manually disable stuff i have done manually
|
||||
targets.mako.enable = false;
|
||||
#targets.foot.enable = false;
|
||||
targets.swaylock.enable = false;
|
||||
targets.fuzzel.enable = false;
|
||||
targets.zed.enable = false;
|
||||
|
||||
base16Scheme = {
|
||||
scheme = config.colorScheme.name;
|
||||
author = config.colorScheme.author;
|
||||
base00 = config.colorScheme.palette.base00;
|
||||
base01 = config.colorScheme.palette.base01;
|
||||
base02 = config.colorScheme.palette.base02;
|
||||
base03 = config.colorScheme.palette.base03;
|
||||
base04 = config.colorScheme.palette.base04;
|
||||
base05 = config.colorScheme.palette.base05;
|
||||
base06 = config.colorScheme.palette.base06;
|
||||
base07 = config.colorScheme.palette.base07;
|
||||
base08 = config.colorScheme.palette.base08;
|
||||
base09 = config.colorScheme.palette.base09;
|
||||
base0A = config.colorScheme.palette.base0A;
|
||||
base0B = config.colorScheme.palette.base0B;
|
||||
base0C = config.colorScheme.palette.base0C;
|
||||
base0D = config.colorScheme.palette.base0D;
|
||||
base0E = config.colorScheme.palette.base0E;
|
||||
base0F = config.colorScheme.palette.base0F;
|
||||
};
|
||||
opacity = {
|
||||
desktop = 0.5;
|
||||
terminal = 0.7;
|
||||
};
|
||||
|
||||
fonts = {
|
||||
sizes = {
|
||||
applications = 14;
|
||||
terminal = 24;
|
||||
desktop = 12;
|
||||
};
|
||||
serif = {
|
||||
package = pkgs.dejavu_fonts;
|
||||
name = "DejaVu Serif";
|
||||
};
|
||||
sansSerif = {
|
||||
package = pkgs.dejavu_fonts;
|
||||
name = "DejaVu Sans";
|
||||
};
|
||||
monospace = {
|
||||
package = pkgs.notonoto-35;
|
||||
#name = "NOTONOTO-35-Bold";
|
||||
name = "NOTONOTO-35";
|
||||
};
|
||||
emoji = {
|
||||
package = pkgs.noto-fonts-monochrome-emoji;
|
||||
name = "Noto Emoji";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -11,15 +11,16 @@
|
||||
|
||||
timeouts = [
|
||||
{
|
||||
timeout = 180;
|
||||
timeout = 210;
|
||||
#command = "swaylock";
|
||||
command = "gtklock";
|
||||
resumeCommand = null;
|
||||
}
|
||||
{
|
||||
timeout = 210;
|
||||
timeout = 180;
|
||||
command = "niri msg action power-off-monitors";
|
||||
resumeCommand = null;
|
||||
resumeCommand = "niri msg action power-on-monitors";
|
||||
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ in
|
||||
layout = [
|
||||
{
|
||||
label = "lock";
|
||||
action = "swaylock";
|
||||
action = "gtklock";
|
||||
text = "Lock";
|
||||
keybind = "l";
|
||||
}
|
||||
|
||||
@@ -8,9 +8,10 @@
|
||||
home.packages = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal
|
||||
xdg-desktop-portal-wlr
|
||||
#xdg-desktop-portal-wlr
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-gnome
|
||||
kdePackages.xdg-desktop-portal-kde
|
||||
xdg-launch
|
||||
xdg-ninja
|
||||
xdg-utils
|
||||
|
||||
63
home/zed.nix
63
home/zed.nix
@@ -1,12 +1,73 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
unstable,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
home.packages = with pkgs; [
|
||||
copilot-language-server
|
||||
github-copilot-cli
|
||||
nixd
|
||||
vscode-extensions.github.copilot
|
||||
];
|
||||
|
||||
programs.zed-editor = {
|
||||
enable = true;
|
||||
package = pkgs.zed-editor-fhs;
|
||||
package = pkgs.unstable.zed-editor-fhs;
|
||||
extraPackages = with pkgs; [
|
||||
nodejs
|
||||
copilot-language-server
|
||||
github-copilot-cli
|
||||
nixd
|
||||
vscode-extensions.github.copilot
|
||||
];
|
||||
extensions = [
|
||||
"nix"
|
||||
"toml"
|
||||
"rust"
|
||||
"html"
|
||||
"yaml"
|
||||
"python"
|
||||
"make"
|
||||
"xml"
|
||||
"dockerfile"
|
||||
"vue"
|
||||
"latex"
|
||||
"csv"
|
||||
"rainbow csv"
|
||||
"snippets"
|
||||
"typst"
|
||||
"mermaid"
|
||||
"markdownlint"
|
||||
"markdown oxide"
|
||||
"java"
|
||||
"dart"
|
||||
"go"
|
||||
"c#"
|
||||
"json"
|
||||
"flask snippets"
|
||||
"python snippets"
|
||||
"flutter snippets"
|
||||
"tokyo night themes"
|
||||
"opencode"
|
||||
];
|
||||
userSettings = {
|
||||
theme = {
|
||||
mode = "system";
|
||||
dark = "Tokyo Night";
|
||||
light = "Tokyo Night Storm";
|
||||
};
|
||||
hour_format = "hour24";
|
||||
node = {
|
||||
path = lib.getExe pkgs.nodejs;
|
||||
npm_path = lib.getExe' pkgs.nodejs "npm";
|
||||
};
|
||||
load_direnv = "shell_hook";
|
||||
base_keymap = "VSCode";
|
||||
show_whitespaces = "boundary";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,50 +2,75 @@
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
|
||||
# Core system modules
|
||||
../../modules/boot.nix
|
||||
../../modules/zram.nix
|
||||
../../modules/displaymanager.nix
|
||||
../../modules/polkit.nix
|
||||
../../modules/nix.nix
|
||||
../../modules/openssh.nix
|
||||
../../secrets/sops.nix
|
||||
../../secrets/sopsconf.nix
|
||||
../../modules/sound.nix
|
||||
../../modules/gunalx.nix
|
||||
../../modules/pam.nix
|
||||
../../modules/polkit.nix
|
||||
../../modules/zram.nix
|
||||
|
||||
# Networking and remote access
|
||||
../../modules/openssh.nix
|
||||
../../modules/tailscale.nix
|
||||
../../modules/podman.nix
|
||||
../../modules/steam.nix
|
||||
|
||||
# User interface and desktop
|
||||
../../modules/displaymanager.nix
|
||||
../../modules/xdg.nix
|
||||
../../modules/sound.nix
|
||||
../../modules/bluetooth.nix
|
||||
../../modules/desktopApplications.nix
|
||||
|
||||
# Development tools and user configuration
|
||||
../../modules/basePackages.nix
|
||||
../../modules/develPackages.nix
|
||||
../../modules/desktopApplications.nix
|
||||
../../modules/comfyui.nix
|
||||
../../modules/gunalx.nix
|
||||
|
||||
# Containerization and cloud
|
||||
../../modules/podman.nix
|
||||
|
||||
# Scientific and data tools
|
||||
../../modules/jupyterhub.nix
|
||||
|
||||
# Software and gaming
|
||||
../../modules/steam.nix
|
||||
|
||||
# SDR (Software Defined Radio)
|
||||
../../modules/rtlsdr.nix
|
||||
../../modules/websdr.nix
|
||||
|
||||
# Secrets management
|
||||
../../secrets/sops.nix
|
||||
../../secrets/sopsconf.nix
|
||||
|
||||
];
|
||||
|
||||
|
||||
|
||||
services.desktopManager.gnome.enable = true;
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
|
||||
# Setup keyfile
|
||||
boot.initrd.secrets = {
|
||||
"/crypto_keyfile.bin" = null;
|
||||
};
|
||||
|
||||
# Enable swap on luks
|
||||
boot.initrd.luks.devices."luks-08650b6b-6143-4503-8bf5-a3d32ef62d73".device = "/dev/disk/by-uuid/08650b6b-6143-4503-8bf5-a3d32ef62d73";
|
||||
boot.initrd.luks.devices."luks-08650b6b-6143-4503-8bf5-a3d32ef62d73".keyFile = "/crypto_keyfile.bin";
|
||||
boot.initrd.luks.devices."luks-08650b6b-6143-4503-8bf5-a3d32ef62d73".device =
|
||||
"/dev/disk/by-uuid/08650b6b-6143-4503-8bf5-a3d32ef62d73";
|
||||
boot.initrd.luks.devices."luks-08650b6b-6143-4503-8bf5-a3d32ef62d73".keyFile =
|
||||
"/crypto_keyfile.bin";
|
||||
|
||||
networking.hostName = "aragon"; # Define your hostname.
|
||||
time.timeZone = "Europe/Amsterdam";
|
||||
@@ -59,15 +84,14 @@
|
||||
|
||||
# sleep wakeup rules
|
||||
services.udev.extraRules = ''
|
||||
ACTION=="add", SUBSYSTEM=="pci", DRIVER=="pcieport", ATTR{power/wakeup}="disabled"
|
||||
'';
|
||||
|
||||
ACTION=="add", SUBSYSTEM=="pci", DRIVER=="pcieport", ATTR{power/wakeup}="disabled"
|
||||
'';
|
||||
|
||||
#comment out to enable sleep. Uncommented over vacations
|
||||
# systemd.targets.sleep.enable = false;
|
||||
# systemd.targets.suspend.enable = false;
|
||||
# systemd.targets.hibernate.enable = false;
|
||||
# systemd.targets.hybrid-sleep.enable = false;
|
||||
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
|
||||
@@ -1,26 +1,35 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ];
|
||||
boot.initrd.kernelModules = ["amdgpu" ];
|
||||
boot.initrd.availableKernelModules = [
|
||||
"nvme"
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"usb_storage"
|
||||
"usbhid"
|
||||
"sd_mod"
|
||||
"sr_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
hardware.amdgpu.opencl.enable = true;
|
||||
hardware.amdgpu.amdvlk.enable = true;
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||
systemd.tmpfiles.rules = [
|
||||
@@ -28,62 +37,84 @@
|
||||
];
|
||||
|
||||
nixpkgs.config.rocmSupport = true;
|
||||
|
||||
environment.variables = {
|
||||
HSA_OVERRIDE_GFX_VERSION="10.3.0";
|
||||
nixpkgs.config.rocmTargets = [ "gfx1030" ];
|
||||
|
||||
environment.variables = {
|
||||
HSA_OVERRIDE_GFX_VERSION = "10.3.0";
|
||||
};
|
||||
# Environment variables for ROCm
|
||||
environment.sessionVariables = {
|
||||
HSA_OVERRIDE_GFX_VERSION = "10.3.0";
|
||||
ROCM_PATH = "${pkgs.rocmPackages.rocm-core}/opt/rocm";
|
||||
HIP_PATH = "${pkgs.rocmPackages.rocm-core}/opt/rocm/hip";
|
||||
};
|
||||
|
||||
|
||||
#hardware.opengl.extraPackages32 = with pkgs; [
|
||||
# driversi686Linux.amdvlk
|
||||
#];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
lact
|
||||
rocmPackages.rocminfo
|
||||
rocmPackages.rocm-smi
|
||||
rocmPackages.rocm-runtime
|
||||
rocmPackages.rocm-device-libs
|
||||
rocmPackages.rocm-core
|
||||
rocmPackages.rocm-cmake
|
||||
rocmPackages.rocgdb
|
||||
rocmPackages.rocblas
|
||||
rocmPackages.rccl
|
||||
];
|
||||
systemd.packages = with pkgs; [ lact ];
|
||||
systemd.services.lactd.wantedBy = ["multi-user.target"];
|
||||
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/8ab16ad5-08d2-44f9-a9e4-2e6240bfd8f8";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/mnt/steam" =
|
||||
{ device = "/dev/disk/by-id/nvme-Samsung_SSD_990_PRO_with_Heatsink_2TB_S7HPNJ0X304250L-part1";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-31bf11fb-518a-408a-af06-93af528a5985".device = "/dev/disk/by-uuid/31bf11fb-518a-408a-af06-93af528a5985";
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/9A50-906F";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/c7cdfab4-2c92-42de-b951-ccc6fcd7b7d7"; }
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
rocmPackages.clr.icd
|
||||
];
|
||||
};
|
||||
|
||||
# Enable Vulkan support
|
||||
hardware.opengl.enable = true;
|
||||
hardware.opengl.extraPackages = with pkgs; [
|
||||
vulkan-loader
|
||||
vulkan-tools
|
||||
vulkan-headers
|
||||
];
|
||||
|
||||
# You *can* still put utilities here
|
||||
environment.systemPackages = with pkgs; [
|
||||
vulkan-tools
|
||||
clinfo
|
||||
rocmPackages.clr
|
||||
rocmPackages.rocminfo
|
||||
rocmPackages.rocm-runtime
|
||||
rocmPackages.rocm-core
|
||||
rocmPackages.rocm-smi
|
||||
rocmPackages.rocblas
|
||||
rocmPackages.rccl
|
||||
rocmPackages.hipcc
|
||||
lact
|
||||
rocmPackages.rocminfo
|
||||
rocmPackages.rocm-smi
|
||||
rocmPackages.rocm-runtime
|
||||
rocmPackages.rocm-device-libs
|
||||
rocmPackages.rocm-core
|
||||
rocmPackages.rocm-cmake
|
||||
rocmPackages.rocgdb
|
||||
rocmPackages.rocblas
|
||||
rocmPackages.rccl
|
||||
rocmPackages.hipcc
|
||||
];
|
||||
|
||||
systemd.packages = with pkgs; [ lact ];
|
||||
systemd.services.lactd.wantedBy = [ "multi-user.target" ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/8ab16ad5-08d2-44f9-a9e4-2e6240bfd8f8";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/mnt/steam" = {
|
||||
device = "/dev/disk/by-id/nvme-Samsung_SSD_990_PRO_with_Heatsink_2TB_S7HPNJ0X304250L-part1";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-31bf11fb-518a-408a-af06-93af528a5985".device =
|
||||
"/dev/disk/by-uuid/31bf11fb-518a-408a-af06-93af528a5985";
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/9A50-906F";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/c7cdfab4-2c92-42de-b951-ccc6fcd7b7d7"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp10s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp7s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
||||
57
hosts/elros/configuration.nix
Normal file
57
hosts/elros/configuration.nix
Normal file
@@ -0,0 +1,57 @@
|
||||
# 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,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
../../modules/boot.nix
|
||||
../../modules/zram.nix
|
||||
../../modules/nix.nix
|
||||
../../modules/openssh.nix
|
||||
../../modules/gunalx.nix
|
||||
../../secrets/sops.nix
|
||||
../../secrets/sopsconf.nix
|
||||
../../modules/pam.nix
|
||||
../../modules/tailscale.nix
|
||||
../../modules/basePackages.nix
|
||||
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
networking.hostName = "elros";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
time.timeZone = "Europe/Amsterdam";
|
||||
|
||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||
#
|
||||
# Most users should NEVER change this value after the initial install, for any reason,
|
||||
# even if you've upgraded your system to a new NixOS release.
|
||||
#
|
||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||
# to actually do that.
|
||||
#
|
||||
# This value being lower than the current NixOS release does NOT mean your system is
|
||||
# out of date, out of support, or vulnerable.
|
||||
#
|
||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||
# and migrated your data accordingly.
|
||||
#
|
||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
55
hosts/elros/hardware-configuration.nix
Normal file
55
hosts/elros/hardware-configuration.nix
Normal file
@@ -0,0 +1,55 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"ata_piix"
|
||||
"uhci_hcd"
|
||||
"virtio_pci"
|
||||
"virtio_scsi"
|
||||
"sd_mod"
|
||||
"sr_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/7fa4de3a-20bb-4d0f-b049-dd6a0a0aee6e";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/E04D-431D";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
services.qemuGuest.enable = true;
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.ens18.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
}
|
||||
@@ -1,108 +1,75 @@
|
||||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
# 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`).
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
../../modules/boot.nix
|
||||
../../modules/zram.nix
|
||||
../../modules/nix.nix
|
||||
../../modules/openssh.nix
|
||||
../../secrets/sops.nix
|
||||
../../secrets/sopsconf.nix
|
||||
../../modules/pam.nix
|
||||
../../modules/tailscale.nix
|
||||
../../modules/podman.nix
|
||||
../../modules/basePackages.nix
|
||||
../../modules/develPackages.nix
|
||||
];
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
# Bootloader.
|
||||
#boot.loader.grub.enable = true;
|
||||
#boot.loader.grub.device = "/dev/nvme0n1";
|
||||
#boot.loader.grub.useOSProber = true;
|
||||
{
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
./nvidia.nix
|
||||
../../modules/boot.nix
|
||||
../../modules/zram.nix
|
||||
../../modules/zfs.nix
|
||||
../../modules/polkit.nix
|
||||
../../modules/nix.nix
|
||||
../../modules/openssh.nix
|
||||
../../modules/gunalx.nix
|
||||
../../secrets/sops.nix
|
||||
../../secrets/sopsconf.nix
|
||||
../../modules/pam.nix
|
||||
../../modules/tailscale.nix
|
||||
../../modules/podman.nix
|
||||
../../modules/basePackages.nix
|
||||
../../modules/develPackages.nix
|
||||
|
||||
# Setup keyfile
|
||||
boot.initrd.secrets = {
|
||||
"/boot/crypto_keyfile.bin" = null;
|
||||
};
|
||||
../../modules/vaultvarden.nix
|
||||
../../modules/jellyfin.nix
|
||||
../../modules/jupyterhub.nix
|
||||
../../modules/qbittorrent.nix
|
||||
../../modules/mealie.nix
|
||||
../../modules/miniflux.nix
|
||||
../../modules/ollama.nix
|
||||
../../modules/openwebui.nix
|
||||
../../modules/immich.nix
|
||||
|
||||
#boot.loader.grub.enableCryptodisk = true;
|
||||
];
|
||||
|
||||
boot.initrd.luks.devices."luks-c88c45f4-58e0-424c-98e0-6e4a73655349".keyFile = "/boot/crypto_keyfile.bin";
|
||||
networking.hostName = "galadriel"; # Define your hostname.
|
||||
#Load zfs pool
|
||||
boot.zfs.extraPools = [ "Main" ];
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# Enable networking
|
||||
networking.hostName = "galadriel";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Oslo";
|
||||
time.timeZone = "Europe/Amsterdam";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "nb_NO.UTF-8";
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "no";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
# Configure console keymap
|
||||
console.keyMap = "no";
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.gunalx = {
|
||||
isNormalUser = true;
|
||||
description = "Adrian Gunnar Lauterer";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
packages = with pkgs; [];
|
||||
};
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
wget
|
||||
git
|
||||
|
||||
];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||
#
|
||||
# Most users should NEVER change this value after the initial install, for any reason,
|
||||
# even if you've upgraded your system to a new NixOS release.
|
||||
#
|
||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||
# to actually do that.
|
||||
#
|
||||
# This value being lower than the current NixOS release does NOT mean your system is
|
||||
# out of date, out of support, or vulnerable.
|
||||
#
|
||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||
# and migrated your data accordingly.
|
||||
#
|
||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
|
||||
@@ -1,24 +1,47 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"nvme"
|
||||
"usb_storage"
|
||||
"usbhid"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/edc50395-0b8d-4945-8d9e-69fd3dbb6e7e";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/7789ad41-d578-40bc-bf86-b761e0a4921e";
|
||||
fsType = "btrfs";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-c88c45f4-58e0-424c-98e0-6e4a73655349".device = "/dev/disk/by-uuid/c88c45f4-58e0-424c-98e0-6e4a73655349";
|
||||
boot.initrd.luks.devices."NIXROOT".device =
|
||||
"/dev/disk/by-uuid/082790fd-3d4b-4307-8a43-b9c56bd86e03";
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/3DE0-D86E";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
@@ -28,7 +51,7 @@
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp7s0f3u3.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp7s0f3u2.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
|
||||
49
hosts/galadriel/nvidia.nix
Normal file
49
hosts/galadriel/nvidia.nix
Normal file
@@ -0,0 +1,49 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
# Enable OpenGL
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
|
||||
# Load nvidia driver for Xorg and Wayland
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
|
||||
boot = {
|
||||
blacklistedKernelModules = [ "nouveau" ];
|
||||
extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
|
||||
initrd.kernelModules = [ "nvidia" ];
|
||||
};
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
#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 = false;
|
||||
|
||||
# Use the NVidia open source kernel module (not to be confused with the independent third-party "nouveau" open source driver).
|
||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||
open = false; #need proprietary for cuda.
|
||||
|
||||
# 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;
|
||||
};
|
||||
|
||||
# Enable the CUDA toolkit
|
||||
#install packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
cudaPackages.cudatoolkit
|
||||
cudaPackages.cudnn
|
||||
nvtopPackages.nvidia
|
||||
cudaPackages.nccl
|
||||
pkgs.cudaPackages.libcublas
|
||||
];
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -33,6 +33,9 @@
|
||||
../../modules/develPackages.nix
|
||||
../../modules/jupyterhub.nix
|
||||
../../modules/blog.nix
|
||||
../../modules/ollama.nix
|
||||
../../modules/docling.nix # temp for dev
|
||||
../../modules/kdeconnect.nix
|
||||
../../modules/desktopApplications.nix
|
||||
|
||||
];
|
||||
@@ -43,6 +46,10 @@
|
||||
# Select internationalisation properties.
|
||||
# i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
#testing terminal from printer cable.
|
||||
services.printing.enable = true;
|
||||
boot.kernelModules = [ "usblp" ];
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
services.xserver.videoDrivers = [
|
||||
@@ -59,6 +66,7 @@
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
services.desktopManager.gnome.enable = true;
|
||||
|
||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||
|
||||
@@ -1,20 +1,31 @@
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages_zen;
|
||||
#boot.kernelPackages = pkgs.linuxPackages_zen;
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
boot.kernelParams = [
|
||||
"nvme_core.default_ps_max_latency_us=0"
|
||||
"pcie_aspm=off"
|
||||
"pcie_port_pm=off"
|
||||
"mem_sleep_default=deep"
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "uas" "rtsx_pci_sdmmc" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"nvme"
|
||||
"uas"
|
||||
"rtsx_pci_sdmmc"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-label/NIXROOT";
|
||||
@@ -24,46 +35,48 @@
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-label/NIXBOOT";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices.luks_secure = {
|
||||
device = "/dev/disk/by-uuid/c21c8089-29a7-4266-a8a6-6e80ccca167c";
|
||||
crypttabExtraOpts = [
|
||||
"tpm2-device=auto"
|
||||
"tpm2-measure-pcr=yes"
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/swapfile";
|
||||
size = 98 * 1024; # 32GB in MB
|
||||
}
|
||||
|
||||
];
|
||||
|
||||
boot.kernel.sysctl = {
|
||||
"vm.swappiness" = 10;
|
||||
boot.initrd.luks.devices.luks_secure = {
|
||||
device = "/dev/disk/by-uuid/c21c8089-29a7-4266-a8a6-6e80ccca167c";
|
||||
crypttabExtraOpts = [
|
||||
#"tpm2-device=auto"
|
||||
#"tpm2-measure-pcr=yes"
|
||||
];
|
||||
};
|
||||
|
||||
services.logind.lidSwitch = "suspend-then-hibernate";
|
||||
powerManagement.enable = true;
|
||||
boot.kernel.sysctl = {
|
||||
# "vm.swappiness" = 10;
|
||||
};
|
||||
|
||||
systemd.targets.hibernate.enable = false;
|
||||
|
||||
#services.logind.lidSwitch = "suspend";
|
||||
powerManagement.enable = true;
|
||||
|
||||
# Disable hibernation
|
||||
systemd.sleep = {
|
||||
extraConfig = ''
|
||||
AllowHibernation=no
|
||||
AllowHybridSleep=no
|
||||
AllowSuspendThenHibernate=no
|
||||
'';
|
||||
};
|
||||
|
||||
# Disable PCIe wakeups
|
||||
services.udev.extraRules = ''
|
||||
ACTION=="add", SUBSYSTEM=="pci", DRIVER=="pcieport", ATTR{power/wakeup}="disabled"
|
||||
'';
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [ vpl-gpu-rt intel-media-sdk ];
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [ vpl-gpu-rt ];
|
||||
};
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -8,11 +8,19 @@
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
git
|
||||
wget
|
||||
htop
|
||||
busybox
|
||||
nixfmt-rfc-style
|
||||
nixfmt-tree
|
||||
|
||||
zip
|
||||
unzip
|
||||
|
||||
ripgrep
|
||||
eza
|
||||
fastfetch
|
||||
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.blog-generator = {
|
||||
enable = true;
|
||||
contentDir = "/var/lib/www/blog/content";
|
||||
port = 8080;
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -13,13 +13,6 @@
|
||||
kernelParams = [
|
||||
"quiet"
|
||||
"splash"
|
||||
"loglevel=0"
|
||||
"udev.log_priority=3"
|
||||
"vt.global_cursor_default=0"
|
||||
"rd.systemd.show_status=auto"
|
||||
"rd.udev.log_level=3"
|
||||
"boot.shell_on_fail"
|
||||
"console=tty1"
|
||||
];
|
||||
|
||||
initrd = {
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
gparted
|
||||
libreoffice-fresh
|
||||
kdePackages.okular
|
||||
zed-editor-fhs
|
||||
#zed-editor-fhs
|
||||
inkscape
|
||||
krita
|
||||
sweethome3d.application
|
||||
audacity
|
||||
bitwarden
|
||||
bitwarden-desktop
|
||||
openvpn
|
||||
zettlr # notes
|
||||
logseq
|
||||
@@ -33,9 +33,7 @@
|
||||
prusa-slicer
|
||||
freecad-wayland
|
||||
openscad-unstable
|
||||
kicad-unstable
|
||||
kicadAddons.kikit
|
||||
kicadAddons.kikit-library
|
||||
#kicad-unstable
|
||||
easyeffects
|
||||
musescore
|
||||
mpv
|
||||
|
||||
@@ -6,10 +6,13 @@
|
||||
}:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
aider-chat-full
|
||||
|
||||
zip
|
||||
unzip
|
||||
jq
|
||||
curl
|
||||
wget
|
||||
|
||||
|
||||
openssl
|
||||
gdb
|
||||
@@ -46,7 +49,7 @@
|
||||
python3
|
||||
python3Packages.uv
|
||||
python3Packages.ipykernel
|
||||
|
||||
|
||||
python3Packages.flask
|
||||
python3Packages.flask-sqlalchemy
|
||||
python3Packages.flask-socketio
|
||||
@@ -57,8 +60,11 @@
|
||||
python3Packages.requests
|
||||
python3Packages.flake8
|
||||
python3Packages.torch
|
||||
python3Packages.litellm
|
||||
python3Packages.pycryptodome
|
||||
|
||||
github-copilot-cli
|
||||
|
||||
#dotnet-sdk_8
|
||||
#dotnet-sdk_9
|
||||
#dotnet-sdk_10
|
||||
|
||||
@@ -6,18 +6,40 @@
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ ];
|
||||
|
||||
|
||||
services.displayManager = {
|
||||
enable = true;
|
||||
sessionPackages = with pkgs; [ niri ];
|
||||
defaultSession = "niri";
|
||||
sddm = {
|
||||
enable = true;
|
||||
autoNumlock = true;
|
||||
enableHidpi = true;
|
||||
};
|
||||
|
||||
lemurs.enable = true;
|
||||
};
|
||||
|
||||
|
||||
#environment.systemPackages = [
|
||||
# (pkgs.catppuccin-sddm.override {
|
||||
# flavor = "mocha";
|
||||
# accent = "teal";
|
||||
# fontSize = "24";
|
||||
# background = ../home/Wallpapers/1346679.jpg;
|
||||
# loginBackground = true;
|
||||
# })
|
||||
#];
|
||||
|
||||
#services.displayManager = {
|
||||
# enable = true;
|
||||
# sessionPackages = with pkgs; [ niri ];
|
||||
# defaultSession = "niri";
|
||||
|
||||
# sddm = {
|
||||
# enable = true;
|
||||
# autoNumlock = true;
|
||||
# enableHidpi = true;
|
||||
# wayland.enable = true;
|
||||
# theme = "catppuccin-mocha-teal";
|
||||
# package = pkgs.kdePackages.sddm;
|
||||
# };
|
||||
|
||||
#};
|
||||
|
||||
}
|
||||
|
||||
16
modules/docling.nix
Normal file
16
modules/docling.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.docling-serve = {
|
||||
enable = false; #this is broken for now.
|
||||
package = pkgs.python312Packages.docling-serve;
|
||||
port = 5001;
|
||||
host = "127.0.0.1";
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
}
|
||||
@@ -15,6 +15,8 @@
|
||||
"networking"
|
||||
"podman"
|
||||
"pipewire"
|
||||
"plugdev"
|
||||
"dialout"
|
||||
];
|
||||
packages = with pkgs; [ ];
|
||||
};
|
||||
|
||||
23
modules/immich.nix
Normal file
23
modules/immich.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.immich = {
|
||||
enable = true;
|
||||
port = 2283;
|
||||
host = "0.0.0.0";
|
||||
|
||||
openFirewall = true;
|
||||
|
||||
mediaLocation = "/Main/Data/media/pictures";
|
||||
accelerationDevices = null;
|
||||
|
||||
settings = {
|
||||
newVersionCheck.enabled = false;
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,9 +1,14 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
users.groups.media.members = ["jellyfin"]; #have media directory owned by media group
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
users.groups.media.members = [ "jellyfin" ]; # have media directory owned by media group
|
||||
services.jellyfin = {
|
||||
enable = true;
|
||||
group = "media";
|
||||
group = "media";
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,33 +1,42 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
myPython = pkgs.python3;
|
||||
myPython = pkgs.python3;
|
||||
|
||||
myJupyterHubEnv = myPython.withPackages (ps: with ps; [
|
||||
jupyterhub
|
||||
jupyterhub-systemdspawner
|
||||
ipython
|
||||
jupyterlab
|
||||
notebook
|
||||
ipykernel
|
||||
numpy
|
||||
scipy
|
||||
pandas
|
||||
matplotlib
|
||||
seaborn
|
||||
scikit-learn
|
||||
]);
|
||||
myJupyterHubEnv = myPython.withPackages (
|
||||
ps: with ps; [
|
||||
jupyterhub
|
||||
jupyterhub-systemdspawner
|
||||
ipython
|
||||
jupyterlab
|
||||
notebook
|
||||
ipykernel
|
||||
numpy
|
||||
scipy
|
||||
pandas
|
||||
matplotlib
|
||||
seaborn
|
||||
scikit-learn
|
||||
]
|
||||
);
|
||||
|
||||
myJupyterLabEnv = myPython.withPackages (ps: with ps; [
|
||||
jupyterhub
|
||||
jupyterlab
|
||||
ipykernel
|
||||
numpy
|
||||
scipy
|
||||
pandas
|
||||
matplotlib
|
||||
seaborn
|
||||
scikit-learn
|
||||
]);
|
||||
myJupyterLabEnv = myPython.withPackages (
|
||||
ps: with ps; [
|
||||
jupyterhub
|
||||
jupyterlab
|
||||
ipykernel
|
||||
numpy
|
||||
scipy
|
||||
pandas
|
||||
matplotlib
|
||||
seaborn
|
||||
scikit-learn
|
||||
]
|
||||
);
|
||||
|
||||
in
|
||||
{
|
||||
@@ -39,13 +48,14 @@ in
|
||||
python3Packages.seaborn
|
||||
python3Packages.scikit-learn
|
||||
];
|
||||
|
||||
|
||||
users.users.tdt4117 = {
|
||||
isNormalUser = true;
|
||||
home = "/home/tdt4117";
|
||||
description = "tdt4117 - delete after h25";
|
||||
extraGroups = [ ];
|
||||
extraGroups = [ ];
|
||||
# openssh.authorizedKeys.keys = [ "ssh-dss AAAAB3Nza... " ];
|
||||
extraGroups = [ ];
|
||||
};
|
||||
|
||||
services.jupyterhub = {
|
||||
@@ -58,11 +68,14 @@ in
|
||||
c.Authenticator.allow_all = True
|
||||
c.ConfigurableHTTPProxy.api_url = 'http://0.0.0.0:8770'
|
||||
c.JupyterHub.bind_url = 'http://0.0.0.0:8771'
|
||||
'';
|
||||
'';
|
||||
|
||||
kernels = {
|
||||
python3 = let
|
||||
env = (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
|
||||
python3 =
|
||||
let
|
||||
env = (
|
||||
pkgs.python3.withPackages (
|
||||
pythonPackages: with pythonPackages; [
|
||||
ipykernel
|
||||
pandas
|
||||
scikit-learn
|
||||
@@ -73,21 +86,36 @@ in
|
||||
tqdm
|
||||
numpy
|
||||
scipy
|
||||
]));
|
||||
in {
|
||||
displayName = "Python 3 for machine learning";
|
||||
argv = [
|
||||
"${env.interpreter}"
|
||||
"-m"
|
||||
"ipykernel_launcher"
|
||||
"-f"
|
||||
"{connection_file}"
|
||||
];
|
||||
language = "python";
|
||||
logo32 = "${env}/${env.sitePackages}/ipykernel/resources/logo-32x32.png";
|
||||
logo64 = "${env}/${env.sitePackages}/ipykernel/resources/logo-64x64.png";
|
||||
};
|
||||
pip
|
||||
torch
|
||||
torchvision
|
||||
lightning
|
||||
numpy
|
||||
scipy
|
||||
matplotlib
|
||||
scikit-image
|
||||
jupyterlab
|
||||
ipykernel
|
||||
pillow
|
||||
tqdm
|
||||
pandas
|
||||
]
|
||||
)
|
||||
);
|
||||
in
|
||||
{
|
||||
displayName = "Python 3 for machine learning";
|
||||
argv = [
|
||||
"${env.interpreter}"
|
||||
"-m"
|
||||
"ipykernel_launcher"
|
||||
"-f"
|
||||
"{connection_file}"
|
||||
];
|
||||
language = "python";
|
||||
logo32 = "${env}/${env.sitePackages}/ipykernel/resources/logo-32x32.png";
|
||||
logo64 = "${env}/${env.sitePackages}/ipykernel/resources/logo-64x64.png";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
27
modules/kdeconnect.nix
Normal file
27
modules/kdeconnect.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
kdePackages.xdg-desktop-portal-kde
|
||||
kdePackages.kdeconnect-kde
|
||||
gnomeExtensions.gsconnect
|
||||
];
|
||||
programs.kdeconnect = {
|
||||
#package = pkgs.kdePackages.kdeconnect-kde;
|
||||
package = pkgs.gnomeExtensions.gsconnect;
|
||||
enable = true;
|
||||
};
|
||||
networking.firewall = rec {
|
||||
allowedTCPPortRanges = [
|
||||
{
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
allowedUDPPortRanges = allowedTCPPortRanges;
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,9 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.mealie = {
|
||||
enable = true;
|
||||
|
||||
17
modules/miniflux.nix
Normal file
17
modules/miniflux.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
sops.secrets."miniflux/adminCredentialsFile" = {
|
||||
restartUnits = [ "miniflux.service" ];
|
||||
mode = "0755";
|
||||
};
|
||||
|
||||
services.miniflux.enable = true;
|
||||
services.miniflux.config.LISTEN_ADDR = "0.0.0.0:8089";
|
||||
services.miniflux.adminCredentialsFile = config.sops.secrets."miniflux/adminCredentialsFile".path;
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
|
||||
sops.secrets."miniflux/adminCredentialsFile" = {
|
||||
restartUnits = [ "miniflux.service" ];
|
||||
owner = "miniflux";
|
||||
mode = "0755";
|
||||
};
|
||||
|
||||
services.miniflux.enable = true;
|
||||
services.miniflux.config.LISTEN_ADDR = "0.0.0.0:8089";
|
||||
services.miniflux.adminCredentialsFile = config.sops.secrets."miniflux/adminCredentialsFile".path;
|
||||
|
||||
}
|
||||
@@ -1,4 +1,10 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
unstable,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
hostname = config.networking.hostName;
|
||||
@@ -24,6 +30,7 @@ in
|
||||
"gemma3:4b"
|
||||
"qwen2.5vl:3b"
|
||||
"granite3.2-vision"
|
||||
"granite4:tiny-h"
|
||||
"gpt-oss:20b"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -1,4 +1,15 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
sshLookup = pkgs.writeShellScriptBin "ssh-lookup-root-pubs" ''
|
||||
#!/bin/sh
|
||||
cat /root/.ssh/*.pub 2>/dev/null
|
||||
'';
|
||||
in
|
||||
{
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
@@ -14,12 +25,12 @@
|
||||
# "aes256-ctr"
|
||||
# # remove some weaker ciphers
|
||||
#];
|
||||
authorizedKeysCommand = "${sshLookup}";
|
||||
};
|
||||
services.endlessh-go = {
|
||||
enable = true;
|
||||
port = 22;
|
||||
openFirewall = true;
|
||||
};
|
||||
services.sshguard.enable = true; #protection against brute force attacks
|
||||
services.sshguard.enable = true; # protection against brute force attacks
|
||||
}
|
||||
|
||||
|
||||
59
modules/openwebui.nix
Normal file
59
modules/openwebui.nix
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
stateDir = "/var/lib/open-webui";
|
||||
port = 11111;
|
||||
in
|
||||
{
|
||||
virtualisation.podman.enable = true;
|
||||
|
||||
virtualisation.oci-containers.backend = "podman";
|
||||
|
||||
virtualisation.oci-containers.containers.openwebui = {
|
||||
image = "ghcr.io/open-webui/open-webui:latest";
|
||||
autoStart = true;
|
||||
|
||||
ports = [
|
||||
"0.0.0.0:${toString port}:8080"
|
||||
];
|
||||
|
||||
volumes = [
|
||||
"${stateDir}/data:/app/backend/data"
|
||||
"${stateDir}/static:/app/backend/static"
|
||||
"${stateDir}/build:/app/frontend/build"
|
||||
];
|
||||
|
||||
extraOptions = [ "--pull=newer" ];
|
||||
|
||||
environment = {
|
||||
ANONYMIZED_TELEMETRY = "False";
|
||||
DO_NOT_TRACK = "True";
|
||||
SCARF_NO_ANALYTICS = "True";
|
||||
|
||||
WEBUI_AUTH = "True";
|
||||
ENABLE_SIGNUP = "True";
|
||||
DEFAULT_USER_ROLE = "pending";
|
||||
ENV = "prod";
|
||||
|
||||
# Optional — helps internal routing
|
||||
WEBUI_PORT = toString port;
|
||||
WEBUI_HOST = "0.0.0.0";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
# Create persistent state directories (like StateDirectory in systemd)
|
||||
systemd.tmpfiles.rules = [
|
||||
"d ${stateDir}/data 0755 root root - -"
|
||||
"d ${stateDir}/static 0755 root root - -"
|
||||
"d ${stateDir}/build 0755 root root - -"
|
||||
];
|
||||
|
||||
# Optional — open firewall for access
|
||||
networking.firewall.allowedTCPPorts = [ port ];
|
||||
}
|
||||
@@ -1,18 +1,25 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
interfaceaddress = builtins.readFile config.sops.secrets."qbittorrent/interfaceAddress".path;
|
||||
in
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
sops.secrets."qbittorrent/interfaceAddress" = {
|
||||
restartUnits = [ "qbittorrent-nox.service" ];
|
||||
owner = "qbittorrent";
|
||||
mode = "0755";
|
||||
};
|
||||
sops.templates."qbittorrent-interface-addr.conf".content = ''
|
||||
# This is injected via sops template
|
||||
interfaceAddress = "${config.sops.placeholder."qbittorrent/interfaceAddress"}";
|
||||
'';
|
||||
sops.templates."qbittorrent-interface-addr.conf".owner = "qbittorrent";
|
||||
|
||||
users.users.qbittorrent = {
|
||||
group = lib.mkForce "media";
|
||||
};
|
||||
users.groups.qbittorrent = {};
|
||||
users.groups.qbittorrent = { };
|
||||
|
||||
services.qbittorrent = {
|
||||
enable = true;
|
||||
@@ -22,58 +29,58 @@ in
|
||||
|
||||
serverConfig = {
|
||||
LegalNotice.Accepted = true;
|
||||
Meta.MigrationVersion=6;
|
||||
Network.PortForwardingEnabled=true;
|
||||
Meta.MigrationVersion = 6;
|
||||
Network.PortForwardingEnabled = true;
|
||||
Preferences = {
|
||||
WebUI = {
|
||||
AuthSubnetWhitelist="192.168.1.0/24, 100.0.0.0/8";
|
||||
AuthSubnetWhitelistEnabled=true;
|
||||
UseUPnP=false;
|
||||
AuthSubnetWhitelist = "192.168.1.0/24, 100.0.0.0/8";
|
||||
AuthSubnetWhitelistEnabled = true;
|
||||
UseUPnP = false;
|
||||
};
|
||||
BitTorrent = {
|
||||
Session = {
|
||||
AddExtensionToIncompleteFiles=true;
|
||||
AlternativeGlobalDLSpeedLimit=1000;
|
||||
AlternativeGlobalUPSpeedLimit=1000;
|
||||
AnonymousModeEnabled=false;
|
||||
BTProtocol="Both";
|
||||
BandwidthSchedulerEnabled=false;
|
||||
DefaultSavePath="/Main/Data/media/Downloads";
|
||||
Encryption=1;
|
||||
FinishedTorrentExportDirectory="/Main/Data/media/Downloads/torrents-complete";
|
||||
GlobalDLSpeedLimit=0;
|
||||
GlobalMaxRatio=1.5;
|
||||
GlobalUPSpeedLimit=0;
|
||||
I2P.Enabled=true;
|
||||
IgnoreLimitsOnLAN=true;
|
||||
IncludeOverheadInLimits=true;
|
||||
Interface="tun0";
|
||||
#InterfaceAddress="${config.sops.placeholder."qbittorrent/interfaceAddress"}";
|
||||
InterfaceAddress="${interfaceaddress}";
|
||||
InterfaceName="tun0";
|
||||
LSDEnabled="true";
|
||||
MaxActiveCheckingTorrents=15;
|
||||
MaxRatioAction=1;
|
||||
Port=44183;
|
||||
Preallocation=true;
|
||||
QueueingSystemEnabled=false;
|
||||
SubcategoriesEnabled=true;
|
||||
Tags="movie, anime";
|
||||
TempPath="/Main/Data/media/Downloads/temp";
|
||||
TempPathEnabled=true;
|
||||
TorrentContentLayout="Subfolder";
|
||||
TorrentExportDirectory="/Main/Data/media/Downloads/torrents";
|
||||
UseAlternativeGlobalSpeedLimit=false;
|
||||
BitTorrent = {
|
||||
Session = {
|
||||
AddExtensionToIncompleteFiles = true;
|
||||
AlternativeGlobalDLSpeedLimit = 1000;
|
||||
AlternativeGlobalUPSpeedLimit = 1000;
|
||||
AnonymousModeEnabled = false;
|
||||
BTProtocol = "Both";
|
||||
BandwidthSchedulerEnabled = false;
|
||||
DefaultSavePath = "/Main/Data/media/Downloads";
|
||||
Encryption = 1;
|
||||
FinishedTorrentExportDirectory = "/Main/Data/media/Downloads/torrents-complete";
|
||||
GlobalDLSpeedLimit = 0;
|
||||
GlobalMaxRatio = 1.5;
|
||||
GlobalUPSpeedLimit = 0;
|
||||
I2P.Enabled = true;
|
||||
IgnoreLimitsOnLAN = true;
|
||||
IncludeOverheadInLimits = true;
|
||||
Interface = "tun0";
|
||||
InterfaceAddress = "${config.sops.placeholder."qbittorrent/interfaceAddress"}";
|
||||
#InterfaceAddress="${interfaceaddress}";
|
||||
InterfaceName = "tun0";
|
||||
LSDEnabled = "true";
|
||||
MaxActiveCheckingTorrents = 15;
|
||||
MaxRatioAction = 1;
|
||||
Port = 44183;
|
||||
Preallocation = true;
|
||||
QueueingSystemEnabled = false;
|
||||
SubcategoriesEnabled = true;
|
||||
Tags = "movie, anime";
|
||||
TempPath = "/Main/Data/media/Downloads/temp";
|
||||
TempPathEnabled = true;
|
||||
TorrentContentLayout = "Subfolder";
|
||||
TorrentExportDirectory = "/Main/Data/media/Downloads/torrents";
|
||||
UseAlternativeGlobalSpeedLimit = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
RSS = {
|
||||
AutoDownloader = {
|
||||
DownloadRepacks=true;
|
||||
EnableProcessing=true;
|
||||
SmartEpisodeFilter="s(\\d+)e(\\d+), (\\d+)x(\\d+), \"(\\d{4}[.\\-]\\d{1,2}[.\\-]\\d{1,2})\", \"(\\d{1,2}[.\\-]\\d{1,2}[.\\-]\\d{4})\"";
|
||||
RSS = {
|
||||
AutoDownloader = {
|
||||
DownloadRepacks = true;
|
||||
EnableProcessing = true;
|
||||
SmartEpisodeFilter = "s(\\d+)e(\\d+), (\\d+)x(\\d+), \"(\\d{4}[.\\-]\\d{1,2}[.\\-]\\d{1,2})\", \"(\\d{1,2}[.\\-]\\d{1,2}[.\\-]\\d{4})\"";
|
||||
};
|
||||
Session.EnableProcessing = true;
|
||||
};
|
||||
Session.EnableProcessing=true;
|
||||
};
|
||||
General.Locale = "en";
|
||||
};
|
||||
};
|
||||
|
||||
21
modules/rtlsdr.nix
Normal file
21
modules/rtlsdr.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
hardware.rtl-sdr.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
libusb1
|
||||
pkgs.rtl-sdr
|
||||
gqrx
|
||||
cubicsdr
|
||||
openwebrx
|
||||
|
||||
];
|
||||
|
||||
}
|
||||
19
modules/unstable.nix
Normal file
19
modules/unstable.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
unstableOverlay = final: prev: {
|
||||
unstable = import inputs.unstable {
|
||||
inherit system;
|
||||
config = prev.config;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
nixpkgs.overlays = [ unstableOverlay ];
|
||||
}
|
||||
@@ -1,21 +1,26 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
# environment.systemPackages = [
|
||||
# pkgs.sendmail
|
||||
# ];
|
||||
environment.systemPackages = [
|
||||
pkgs.system-sendmail
|
||||
];
|
||||
|
||||
sops.secrets."vaultwarden/environmentFile" = {
|
||||
restartUnits = [ "vaultwarden.service" ];
|
||||
owner = "vaultwarden";
|
||||
mode = "0755";
|
||||
};
|
||||
sops.secrets."vaultwarden/environmentFile" = {
|
||||
restartUnits = [ "vaultwarden.service" ];
|
||||
owner = "vaultwarden";
|
||||
mode = "0755";
|
||||
};
|
||||
|
||||
services.vaultwarden = {
|
||||
enable = true;
|
||||
environmentFile = config.sops.secrets."vaultwarden/environmentFile".path;
|
||||
dbBackend = "sqlite";
|
||||
backupDir = "/var/backup/vaultwarden";
|
||||
};
|
||||
services.vaultwarden = {
|
||||
enable = true;
|
||||
environmentFile = config.sops.secrets."vaultwarden/environmentFile".path;
|
||||
dbBackend = "sqlite";
|
||||
backupDir = "/var/backup/vaultwarden";
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
13
modules/websdr.nix
Normal file
13
modules/websdr.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
hardware.rtl-sdr.enable = true;
|
||||
services.openwebrx.enable = true;
|
||||
|
||||
}
|
||||
@@ -14,18 +14,19 @@
|
||||
|
||||
xdg = {
|
||||
autostart.enable = true;
|
||||
menus.enable= true;
|
||||
icons.enable= true;
|
||||
sounds.enable= true;
|
||||
menus.enable = true;
|
||||
icons.enable = true;
|
||||
sounds.enable = true;
|
||||
portal = {
|
||||
enable = true;
|
||||
xdgOpenUsePortal = true;
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal
|
||||
xdg-desktop-portal-wlr
|
||||
#xdg-desktop-portal-wlr
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-gnome
|
||||
kdePackages.xdg-desktop-portal-kde
|
||||
xdg-launch
|
||||
xdg-ninja
|
||||
xdg-utils
|
||||
|
||||
24
modules/zfs.nix
Normal file
24
modules/zfs.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
boot.supportedFilesystems = [ "zfs" ];
|
||||
boot.zfs.forceImportRoot = false;
|
||||
networking.hostId = "1ccccd3a";
|
||||
services.zfs.trim.enable = true;
|
||||
services.zfs.autoScrub.enable = true;
|
||||
services.zfs.autoSnapshot.enable = true;
|
||||
services.zfs.autoSnapshot.flags = "-k -p --utc";
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
zfs
|
||||
zfsnap
|
||||
zfstools
|
||||
zfsbackup
|
||||
lz4
|
||||
];
|
||||
|
||||
}
|
||||
@@ -1,41 +1,52 @@
|
||||
#ENC[AES256_GCM,data:dz8znC0Os5eA4nUkoqaMVw==,iv:cx8HN12ClwwUZxn2/6mc1Q5Eh2XBIRsrhG/ETRf0cnw=,tag:AuGmWa+LM9dcfVlAs1CuOw==,type:comment]
|
||||
#ENC[AES256_GCM,data:7kh9f2LAKp46UTh8LmDqvK8xOhHO9mVUD2yzLg4LRR2WU98EpztHmDcHKOF0AG60NsndYaw1en5efU0x/NVAzfdTVPJA2apDs3vtAlzGjvv593Snwb2wa4iK0tM0beMyGvzkSEPs8HOuSLvNpLHWaB1xlC0=,iv:eBoUwZfMPhBnT2+jWqT/EGh/CVNK5qiYeaspFf1VJxY=,tag:nEcuwi2nnACadGR8zw63HA==,type:comment]
|
||||
#ENC[AES256_GCM,data:iFOJJlRLRz2m7NyHzPhgUg==,iv:cx8HN12ClwwUZxn2/6mc1Q5Eh2XBIRsrhG/ETRf0cnw=,tag:ITcKcojB8Cpk5cICcxV/Hw==,type:comment]
|
||||
#ENC[AES256_GCM,data:kvu25CX2iZURTBGQXYZTkwT00EqhPNF/ORglzJCsDRthR9hwLomlCzsdDCCwBmbEYbUSnyup0/yt6kj5gUA1iTpoGLVJK1EMoAUm7H7Vl4V0XheizUyTUJdfQUzQQXONzB2kTlE2DHuIWKN5Bz8+LKqoDrI=,iv:eBoUwZfMPhBnT2+jWqT/EGh/CVNK5qiYeaspFf1VJxY=,tag:yY+w4rJvDHLo93HgkcKahw==,type:comment]
|
||||
acme:
|
||||
certs: ENC[AES256_GCM,data:L9v0y/T4Vq+fZt5U8YAcyxtvMzv8w+gCwk2z5N027cYiuauuNFYDQ4WV5bTfDL1cSjp30oYvGTlgn3+8s9MA8xqaPJytCNNClRK4isvZKP1YdiVwKdxTg814LDzgPoZsyErSHb+MvgMEUpONifRxFJ7n1HHqcyfeXpV1Bx0=,iv:dnct9KU24ZVaQThA6rTTClRjT+vTi4aD+7UV+oiqoVU=,tag:vTMcHHexHVST3r4wiiTuXA==,type:str]
|
||||
certs: ENC[AES256_GCM,data:v3eIoxXPCGU3nnj9LbpC6q9TIbmw0pwlBCjyfsmMxAMgp5oZttHUimXU3jmrFSDNLMXKyKp5ibBpL+pJDl+HGXbZ2ERWUfV0xqI+vUWetnO8tN4VrW0NZNs/TxdwdTVEA/st8zYON+Qnxrd0xUYAz2TzM9T4cEaRCpTKdIg=,iv:dnct9KU24ZVaQThA6rTTClRjT+vTi4aD+7UV+oiqoVU=,tag:eFmep+I41nVf51/i3v/53Q==,type:str]
|
||||
github:
|
||||
api: ENC[AES256_GCM,data:QYXx+9QxXJ4WwDp6FsaSmrngs/+hBugGD8L6ZdiAgu/1/RW/ip1IEC52g49N70PGh545fAone3IiZJKGxqHeitSxTFv111cmTL4dq5s1yXEwUrsrll8n6rEVMJeHnPeAhz8MNYNxJuIfwugp7XlT61v2f/ylNVa77ZubSdNa5w==,iv:Cdnlb8LFQgsWnjEl+eQUHYIiVpXFabb70FFtnWDfIl8=,tag:vzzfJlQFQBncjLJvmFxuzw==,type:str]
|
||||
api: ENC[AES256_GCM,data:PcalL0rNd0nfNPMlWP05FWh3ff6rp5eQUmu3NzKmuSPcS5w6zSKCLsoCegltENjTWomGAJDoJF8rYfE3tTo4xQBAzFsK7v3GFXfefB+Ec7/FrUT6jjcHK4+c0e1u3cAgUkFpKq+IzS0yDBgMtXuC5oRzw0u0cEjXT4akiyO9Hg==,iv:GVPXrS9gwpw5JgsO6+YAMT96CsX7dz0NAcaq/IxXzec=,tag:Vxb4LOf0mm52W7Ege7mi6A==,type:str]
|
||||
nginx:
|
||||
defaultpass: ENC[AES256_GCM,data:kbWRuL4GiHjOoy4bvDZN9etrnP9mm3Sc5+ltxXzFzU5G1cbHAa6Si9zzhoA67/MXXvOQ1mp31rQpV1K/WsrxGaajFdHgVYGUJB/RaZfZfg1THF5qvqR7vdOiVRWSIalzGMOSUyJTNg2dgQMbymVbmc/k/vZjkjjsI3oze7oN/NZnQ7nolGybQ6W8DCTRzHi5x20/zTJdXNmJf450az9sWOw7i1A6Avg2pPZ9t2N0WyuIcy1MsQICs7PE4ztrxIF82IsFLQNj6LmXXRQaZ9dCF/3h3yyNShfjgI2owYMmrRJssZCdF5dOPq+HVCEfE3jYBFcAWrvCCnYBczCx+WGl+5sQbfJtZdcDGw1bRw41I71h/W4micjo6W5XbeHVx+Rd,iv:h6gn2VKancyy6dZlON99zjRj4smArwt6I4a3PRjGfZ8=,tag:F++P/Qhh+uUUhBJYp3rGvA==,type:str]
|
||||
defaultpass: ENC[AES256_GCM,data:dJn/Q0jV83PgfFH2ODJO/nXGqew2TZG3ItudJZQ/eCo7Ek2IPlHHQq52bzaVYPqhxUsvXpLV9FgR3FQVOHyiUK3MBsLDNvCTzpnALSflnpj0nKqrXWg3YgEKfi+FdHQ1s0SFQqBOsEw+Xt6eWkNykrl9Jgq5UF7Bp4iC4jmDwQeAFIWaIsWK0117X4seBRQc5rxz1XYNsTaVTzp102I1QmrWLRHGjuvpT5jLVvNEoaU/imT+beAmQAnq5pFOMiEwd4q5FFUdy8XHi7CcT4fql92m2I61pgQbjnHwGklLZvRYO5gIKLwj7u19x8lnFBefDoAshuZOch8397T+vjTxVe0fsuZeLAtLXdPKwoF3L0jp4ffNmPq8H3BTnFwJ2NZo,iv:h6gn2VKancyy6dZlON99zjRj4smArwt6I4a3PRjGfZ8=,tag:Gt4yl0zK7vF3Is/g8cow0g==,type:str]
|
||||
qbittorrent:
|
||||
interfaceAddress: ENC[AES256_GCM,data:GsDv+UB07bQGh/DISw==,iv:Hn1zGJweLj5jy8sk4aN9rob/6kfzo7iLXPgaLBIMSVs=,tag:fbKSrAIOqTsnCCI1DBUZkA==,type:str]
|
||||
interfaceAddress: ENC[AES256_GCM,data:mj1YDgdKrXNuHVNJqQ==,iv:FNfwK9VdNswm19fZ7Nu1IpNO0/ZehSOiGIIrKVUkBrk=,tag:9FZx1qGJd1g/ySyNQ02YYw==,type:str]
|
||||
miniflux:
|
||||
adminCredentialsFile: ENC[AES256_GCM,data:FPcdTiJqbI6MloU9JqAYPABoD/odegXks+JyEeCri8hOV0dPMd0TNDV8fN1bbIiJ4llzaclZbjl0HKM=,iv:5fd3O008aP34+7lGlG8vBPAIdmEjFPoneH+rJ6d9TI0=,tag:HKOHjGLiAIDBR54HJv9teA==,type:str]
|
||||
adminCredentialsFile: ENC[AES256_GCM,data:aBOsgGUMAFmU6LfCL0RGv/gNnnwHdJEXDmw2UrR/OaU0jXW0PLvRYx+9tvJFEotmXzEFoOdx0IeBplc=,iv:5fd3O008aP34+7lGlG8vBPAIdmEjFPoneH+rJ6d9TI0=,tag:eBaZx9uyMe/HKfSWi9QW4w==,type:str]
|
||||
ai:
|
||||
openai: ENC[AES256_GCM,data:aFNl4S66JSpP94Lky0x10F5mAJMQ7XWIOTmFjq0IdZYoxqjHZW8nnwbUcsU4zHjBNrFwEyZJNw8QWWoA0LHYRIJzdiCOFk/xWTgAssaDSbXnozIYsa14RkHUma4fho1s/g6QgwFLtgtv1Qr/nlunwjp+m1d34w4MHjSNQnwcGl14ib3suvzorTkCZKI3tg1JGi3cCva0vYzpAACIT54dfaqM0tsoq3w=,iv:rFad2sTdvNHZ5n/DgTLUfHe1qjR8O9nTagsWO5qvbJs=,tag:HFEtMDWis+7N/+ULl7Fu5A==,type:str]
|
||||
openrouter: ENC[AES256_GCM,data:KCxE/tf/5wXmCuEIN4dXExUki18hcbTOYWFuNIT3T4+HsZ0/Y/FkTmlivjYsYmgdZlA+o/Pb2i1nnkAVruIZJkl3xOK+10LeVQ==,iv:pvVc8JThQL+adYo3lyM2N+RrM1rVL8IqN25R6DTplsQ=,tag:6DuvUBY9PgFXL40Tv4SPlA==,type:str]
|
||||
fireworks: ENC[AES256_GCM,data:NRMhwIzashk1oKPB4A8ExFa3K8bE7kWqLSzL,iv:awolsk2O0nx/8UutC4DDxxNcQCMMt376pbtBUFbkjkw=,tag:BzbZmZhLZ1rMXtZCwfdW1g==,type:str]
|
||||
cerebras: ENC[AES256_GCM,data:WcdDsWIgKr0lRb/daoqmzl6E5q3ToICHMLJKrj2rW7pdDpEIZ95DtdNFGQE8Vpy3u9x/SA==,iv:1tZU5nfWCur/Uk54RccS7ldv+94D3CKPgAeK30PB8j4=,tag:IeCgemTemEcKr94YwQKevQ==,type:str]
|
||||
groq: ENC[AES256_GCM,data:m/BTJoBCP6pxM9zPsf2V78BaHGrueakFjtqkut4fuXxluSlEXVDCCupWVbKF2Eo8phrOhxGcgVc=,iv:taiWwphOVhbLuO5ygf5iDIvhEoAxncTEQ8CFNKOObP4=,tag:VFU4ORxUodiGf9dNINYoww==,type:str]
|
||||
mistral: ENC[AES256_GCM,data:tZ7gZatfyhffKyKmlbtiNEp9MaIp4cVvSkZbrHFaAKE=,iv:r9QSqstFiR9QrLehHrQu09iaF0PYroz/p1ENChch/I0=,tag:iOjSupJ5ZFAyAcuxXcjNpg==,type:str]
|
||||
openai: ENC[AES256_GCM,data:jHABPUEDjpfoHmMQtYzBaUM5zvU7YUF4e6nEKWD/mVm+wlaC6w0F1PbWlJ18B4zsYJnrws36qbrbbArUKjnbBNABhQTYueCJgGopklM052UDeAZoS8VrIcXdD61wY6XcyEIB3weMVABulixhpkhZ1QtIPt1u70nFaU7bG4u1SmKU7M492nwYJTJGs+MvQVurFO4AHbM8mNhvi5lqtNvIJQtLuevZTbc=,iv:rFad2sTdvNHZ5n/DgTLUfHe1qjR8O9nTagsWO5qvbJs=,tag:IPWtHD9wcIdvNhuLLDfiFA==,type:str]
|
||||
openrouter: ENC[AES256_GCM,data:I31Oo3UuA7o3tvDqPR1eoCWrHS9+HGdGOJnXPVyC5q/XrA5zJ52TZVgt6cJJ91VB4vlFTPVP2yoJmJgesrSLx6Bwvw/Eglywfg==,iv:pvVc8JThQL+adYo3lyM2N+RrM1rVL8IqN25R6DTplsQ=,tag:JC5Mobbfddvi5aOL3hxyGg==,type:str]
|
||||
fireworks: ENC[AES256_GCM,data:mRaJOZMePIVpv+49AeRt+3tQhIpBHQitKV4S,iv:awolsk2O0nx/8UutC4DDxxNcQCMMt376pbtBUFbkjkw=,tag:yBZirjH6+va78jsSoqirPA==,type:str]
|
||||
cerebras: ENC[AES256_GCM,data:ZGXy4FWauVb6cqFIDNCjYZhA3fb7t8s9wHEQvV5UQS0LwOM1F6+prid5entFiU/zJhxUDA==,iv:1tZU5nfWCur/Uk54RccS7ldv+94D3CKPgAeK30PB8j4=,tag:y9ZDVTTOExTY6nLRbIxoLg==,type:str]
|
||||
groq: ENC[AES256_GCM,data:63HBVYQEXCqG/xN7zluZl3yledOlqxou09Lvgh585LnZAvIFUN+eSDn44mT5mgpqMsRL8Wbqjq8=,iv:taiWwphOVhbLuO5ygf5iDIvhEoAxncTEQ8CFNKOObP4=,tag:1j7wCg9tFuP36mBr5yN0dA==,type:str]
|
||||
mistral: ENC[AES256_GCM,data:z7qUyaJBaLF+fe3DFMRjkUEXiXGZwtFeC189fuEGjEo=,iv:r9QSqstFiR9QrLehHrQu09iaF0PYroz/p1ENChch/I0=,tag:XN7jcXv6TftbXaFBsZYVmw==,type:str]
|
||||
vaultwarden:
|
||||
environmentFile: ENC[AES256_GCM,data:HUFCO4di1hSEMitCSGy5wiDNPZ858NIlW/BnaxrFkE4Tws9RwvmhJ+l89/w7A0VGHAp3yNC+t1GUHgNadA15/Ymr7qL8Zby6o69CqZ3tFnMFmBJ9BL3ni0v1E/4iN5YFInMpmM+c8FjlGfTU2nRRu0WUOGR+5s7C8YSGILrDR+jr98YOKuTfiEKqvsGg8o0dc95CjhEtejeaVGimt9f+bWA54BPGkCT1HzD5boAoTwVbD4sxKDP5l5SnBC+mpzX3sECFkoE5E7SnQQEhKtrL+IffnMrcA3nG6AAyAGODuYZ7VNYQ3zNWBhR2nP0ospDelxaTu9aH6IMgMn4h4Y9LU+nCSHkJGykxGt4W6S8DnHxiaqJCpYwAeOaWFlItlsqlMSjYR2nB7OgUHIv5HLaC1Heyn9azZc/HQyHEjsDa0EsHX8HnmJ6kr2PkAXno+zCBZHnZvxKDWPfV9QqUPakZX9VwPg724zFFe+4OsFBzRiJLePA3hXdmnKJFJUr8cFj0QC/JXlkG3FbfogrnBE2BV6YH8PBmjLuZCII0St1LwB77YPcZDbNLnXUbbiM5/F+fGy04qg3/97sE7Sk/ZXh/Yv+SyvrqrizhXcnOlaciC0zY6DGirHzPuPAYraCkIpPmvTV+MGOICOg77sLSronoN7QohCw6SEZdPD9wSDpRMcbIs5PjfqlVu0rziyl8D1cbT6pmktrGcPKnzKeCpBJNgKE+EwwnB7Zymfj3xRxLZSl/x/1GPFuFtvDvwcWWBIU3IDEtI1zaH0PXbErtuvrttIYWx0+Il9VbxLpxjYl2NxEwfwdUmhU+O2Xw18h8leyu4hfX6a2BvLzLR7cLmSJdIeWiW7rU+qy+H9AMZ5TIZNgepXcN9TmVfTmoEm3HCzG+WJD66iMkdspkggpOxxyIMXia3ws80Eht+m0lrSM2eU6NFfVXxixEylQsxZJuiTqof7mQ71OlGlwWYyY11w2QZNeWmmZIOWwrH2L4u7Npj0qUxurafWOFr/022Y70BxpYO+CKysYppSjTKhiPLS5/8d0u4R3a30gnf/JigXisE06DiLYV6LYRxd003Q41A9UOUoZ7j+A115GUqwAuyD9mEHsH9e2zb3bF+a4QCQ2EaVTaWLHWN/pKnDTY4tSUnpr2HiBcF/dRYh9hMZ3S9khiG+7mj/8Wj1eHMB0dEkUMlU5HE/3Qgoga0oKmATekv6gFyRJ5FQxNNJH9RMN4h6ej6BxDbs5g2bdNScs3qPahpefJA/ITipe1y3qrsfHP4dgqGEn8oaiQxDnNvf5TwbHoX+kS5rlLi4x42cS9v8Ov9oZV92O3c+EuXwDVKW8FAoJh1wMNkJhHjjSCVmQWG1UQngkl3HPDjuPadhec0dWCxQh7/TIaS2JJXeHrURYSLmUV9RlzhGYJqmCZbw7oLU//EukfD9vjm591gX7U3rhu1aQNioZWdFtoGj88BJdHtSa2pxhJnwhruDrwpLOV7xXEK8FsV0SOXWP+MNAgCCWxL2KoLBqDvbr21x6rXS4a6M0+iYxIEIZRsODwTKW7hf+g7mLdKLTIv8ptJVX+zhCaFOR0JMAm/P+L48FPH9ccEUoNCwlSnl02wC9oxB+bTvIDnE7OB705ezwSi8Okh8V1fiQopRIKSutXVhMN7J+wda3Y39UzdEiVr/Qzf+pVkOY2RBp4pNQ2G4Umb31qbtamxOf5JoPqmXQhFopdFttC+iHNa0b13aj4kQITUX/lo7gzssSHyTABpkD5mBaA4HRGkVDTo2bAwsVttVH399NYXmSoGU8XKoLbtJ3caa38KrxN8czTl+oDMurds2xrWHIG+fU4nHIeRW3HxuTz+1zwuYoZD2L+813VEZ3+fcnH1AjdoZ21Ioi1P496s4v4huLC/NMq6A==,iv:n41XecN53vEw2xzCO+gS46TwH7Qy08Hra2NFJNHTEHg=,tag:4ypcVk6TvJbDoG11A5miCw==,type:str]
|
||||
openvpn:
|
||||
galadriel:
|
||||
config: ENC[AES256_GCM,data:f9uDYNLHP63oee5lGMPsmZ76f80n51eYxd3hvF5ZhPGtCspBEOMLHRonTSEril1wKCT3i1DWR967lWTdjJs6KOpoX5JqKz2Qj9tkpXS5jnHZAf0JQg1l7jmf9/a2OKJparVCFJyNPTN5mzl3gGOyDGe0TIT+ZtP8/PCWsQNjB89Crd/kHSSAmIUb2fcNXEkxs6XwgsBAlhbR69e+06NYaRyX5ydVV/kDekx+ixpx2bIqMQqIdEk358RLCauP3wAh1FoqTTJ2eqLcDhuPySFol9cLCInWnColNdyb/0+czrEa4DiLrbFVXx7bUVwjd9rb+eoajC1e09d41aJkVHG1LxlSRjq1sBlI3v3E1vaUBJWegZBROEpqEOCKfHSagkmaanaBv/KMq1MFmXJ1MzyskDJb9MdNFKRQBjQLwBXnURts/Yj9ChrT51z+/bwItxt8XmlwIEgL65F/8h1+bUJGOi27ZAvfkixflff0ELYSPvQI+N1vFlF9QP6AmIFxF2SdmOSlYzTYIz0+LMejLltCEUdU2qdlZ0a9DuYlsxvnZ75JgWXviw==,iv:C2Zb1DLTMlsEqQ5/UUrpT9k5Z51YYGu3SUcu1F20ydc=,tag:wGkQ7LWgCfy0K3zM38JxHQ==,type:str]
|
||||
ca: ENC[AES256_GCM,data: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,iv:1PfKLDXQTyg5CanOFnYQ5TIlHMTjEFfUYL8+Zw0xdrw=,tag:gXjfagkBh8FX5wZd4LlLLg==,type:str]
|
||||
cert: ENC[AES256_GCM,data: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,iv:46DOOjh6yun/FfespTsPgQdN7/z6EVDUEY2V3OJQXwk=,tag:mAicNQoXQFcUE0d4A7Frrg==,type:str]
|
||||
userkey: ENC[AES256_GCM,data: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,iv:kR5g0wvCQ3NGAqviN1jvqscgAYrGzHLqhooIljtJ+gg=,tag:Z+U5Wn4U5ADIxjdfI37cBA==,type:str]
|
||||
tlscrypt: ENC[AES256_GCM,data:zG12fAsc9/LcxO0eGx4ytjHm07BMnf5aBHlfTtif4noCXcPAx5xunhJCOaWEoTobwOEpdgXoZzQcJa7EW6N/4kEnGzk8gfSl+BFswO6LEoqzYJb4sfy2qJJQrjUNxsI9yib+OCgb4DQ94apdvVG/dVypdMQrw+x+xg8K+hdZ5LZWdZLKKcBxHKeHoZ+lt/gJNv3BbtQP6Vy+1biWxjdHy1YfvLm+iqaJfi3/9HV8YAi/iePoY+rNNtc8GlaUp/HrHfmCFF4EBWuFr2knQ5t8bx7sHGlhdcTIyHJwNQdCUIsyVqckhxDulLM8luuGJZsiulkdK2f4NSpa6CPYZPWPHQ2BfSnugBEjbWrF2RQT3eOLAEJBS9YSV1/nvHA/lU2ymf0PBzzXhE9Ms0twecrS8Ql/qRbWSqiQNzHv/P7k5i5E8iw4zqaUtir7gpu3AkC2GxMVuQfowiruZGPi6i2YbDzgaBi5fZJAosWQHvZXnVApqFqzWXCzw4ACXlMI6MZ1rb3Ut9wEDXHGMRhhcWmHDsCO6I4/EphDfLiexYeVHKB++MLilXaUa6wXN0yGefj+NC3Am5YQRwR3rd4KrjXOrbKWELoIkyYrGWkZ5w5O5fC4Z+h8jxPjng/lNM3JAzREgKcw+0IcY5q3/bRXWGMScVm5qqc9LXozhWU9gghQOhbcb4NYFob8yczTJT8IdA6D72N4pAm+524DMjTPRiAi1KQInICeZp2mILvT5aUgTEXtj+iwyqyo+io3ffOjQdHa9HU2IrZKmoapkvEOsFHm3L63uY1T92/Han8=,iv:cjIKuwyLtXT5Wg/VzinC2Lf5EysoxsgnEsHei/+Yum8=,tag:b5LKO8urIBC7BJgyfs5kWw==,type:str]
|
||||
config: ENC[AES256_GCM,data:Mm0X2k2m8D+b5svU0N6/vKrgrukIwMReATwyLZYAtWtHUr0UyhncAO5HjuP7LrSqHHloWrP8oI8u5YqRW7/XgzcBP7u3c2EmDnfVDlRm/4FiFlgPUwxDHF7QDwMY/CCk5NbLzvcK0Bg5rx8KdwJSeVhYPw34gTBiIrFAFsBFTSV3baH7wmt+SMclXx5fcSj2tZczgpqGqTzKxVrQIVgT+xKeF/Bh2iD1vwyRjd6wxuXizzelhE7bZh9vv8jXiLGsoOtQaPRRpggmLlYevoRdRY9Js+NDOWbcxs6uoV25dvJjy/qOo2p77bYwIt0uZ3Jsl4xeTU36gbk50Vc49S0KCBUockGGte7h18sV6eA6otJEqslbjDWk+zriBNcWgz1sw9xSI+TUaS6iT1nAxZZB/+uEsWlvI8k7tupk/S6BszxCBXTcQoZo5U8mWnjluT8igmsjMCoAFDIMsNea9cYD7OuuiPk+4Sx1Q6whznwk+RIYe5+RDz6Viufq/oQUnAGYln4ulF7NEkdF/9+qPj80qaeU0QqQ2baSMgopVlH0mJsUPOaQeQ==,iv:C2Zb1DLTMlsEqQ5/UUrpT9k5Z51YYGu3SUcu1F20ydc=,tag:sdMgyA1U2wrMY5ZKRbXoEg==,type:str]
|
||||
ca: ENC[AES256_GCM,data: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,iv:1PfKLDXQTyg5CanOFnYQ5TIlHMTjEFfUYL8+Zw0xdrw=,tag:rbkP80im3Sy57LVWYYMN0w==,type:str]
|
||||
cert: ENC[AES256_GCM,data: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,iv:46DOOjh6yun/FfespTsPgQdN7/z6EVDUEY2V3OJQXwk=,tag:LDEGXAIAJ167nHmie8npUQ==,type:str]
|
||||
userkey: ENC[AES256_GCM,data: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,iv:kR5g0wvCQ3NGAqviN1jvqscgAYrGzHLqhooIljtJ+gg=,tag:A7Bu+iCToY9k+rf7Bv169w==,type:str]
|
||||
tlscrypt: ENC[AES256_GCM,data:Ny1BCkSd41jO/BxKjBn5/FdM5D2GACxVkFj24rJA0F89nHh0k1wTfY7coi5aqiyV74QidSX5dyWseq15+ceMtZKRQ+lH3sN3zcf1xnC/ziHBS1s+i4KDPr5YfI4f3jDjC3kn4eXdzoqTsV0T9sNeGo22na2zCsqd3h9wFwQByL3cnElygnrdpyE2uW/RQWQSjlrnJMZr21gbPWGBpc0bXbnWHxSCvl0d39xJt4YGAYDAkZGyomPDEzFHoSEH+CwNzyVmdaE2ijMnb3nwA451PKRn4m8n8yCqVOTIQK56JJgfnURZVhgE0RiU+oZvuZ6vX9Btx5mBlgPfl2nF9fTdWpTbucBaPYe5f9eEE4LLonBy9/BPqwtk0fjUVtloFovMEXukTIr/4Fmz2bIwVRmxOfU83qeJiuJPbMzGdyrabWPoTWDqjyKzR4iEYN7q4fSCZWhl4uyYOFS8xyUKjWQ9h1lbBPAqGsVf7TXQ9OIJWMEVRhutfH2+zYpfxhiHYNb8aY0Vu9Md1j0DIdcnfFRwwgvaFE897XUxEP3MUvLaacg2ScYFZQEsuPrhgpaYKgnT1oM9yhgs4hsQ5SGv/2e4Oe86y3M8SivoAkCibqxQkSVOpSa3j485p+3HygFHELBnhCztXqHwi1wJa9TbtRfe9eVVlwthiNpQwyX+63tFd4WxjznRObZ67TcT2EAfsk0+FViXmESQyQNg5S5KgtHPB+J30SxulkolE5q6iEU3N0oTSk6igDemwIUO8VMrl66AcOD4qe4pEbHQXNbpzJP6yn5nPMFOlgsJOyk=,iv:cjIKuwyLtXT5Wg/VzinC2Lf5EysoxsgnEsHei/+Yum8=,tag:9S8pOkWo9yhAyRHVfGf6Jw==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age14cpm59h7hx8gr54hrn4uxu4xnrp9wy3f2kdxvy6xwuyxsfg8g9zs8z5e77
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1YW5Ob0RscXBCODV2d3Z0
|
||||
TFVVMVQwdTZKZWZDZzNHOXZobThRZ3lyOHlZCnhWQTB5aVd5enBXYUtaYWprT1B1
|
||||
ZHhndW1vcHExYlAyTXpXWEYrSjhxaUEKLS0tIDRodGpsSS9rZzlOeWMxOTRhVnBF
|
||||
OHNBdXMzZTN0VEVTYkVSbUVRYmo3eUUKvRiPgmrCCK1F5QoSHlV89C2MPl5FvU5i
|
||||
z61NMJu68UEDsDu8qNRaW3aqpT+1GYsr1evi5imzNwr0qTM2oRwkFQ==
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1UW8wQkY5clorYThkdDdJ
|
||||
Y3BNdG1Gc0UvNUNMVVRiNk5nODQyY0ttOVJNCjZ6bUwrUzJob0RnT0l1dmxhM3Nl
|
||||
ZHdrSHJqOEo2OE02b3RXdnZFT3dUcTgKLS0tIHgvNkF4YU5BWFJjOWhxeEREYysx
|
||||
bnpmM0w1UjIvQU5QTy9nUTVEc3QrSEUKA00FnHXn2FsxByYBumLLSazg0byHmC3x
|
||||
iYLyn9vEs/pnM6Mvvr1SWC+UglF+Xpfrx0lx1mZQsrgqk/c8JumXPA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-09-29T18:54:55Z"
|
||||
mac: ENC[AES256_GCM,data:mju2fz9txxzB28V3JkPYdbLrrgiSLNo95urNMr5B4eWJViln0oW5VYJsrO0nVg3QKrVWg3bVo4Bhoxo2r8QBQTxSwHobjX9nWd4fBsQZ59PqhSVSG2xmza+8SX4NgovPoLeT4h475l2Y1MmFs+LFqTtjgRv3t0xjHDMle/FhXuk=,iv:RJIEdz/eni3Gmn5i49N0MgMIKqF3Z62yx615Qor7MIY=,tag:/3w1JrnOVNq8KLDO9vxhWA==,type:str]
|
||||
- recipient: age1l3xa77vgtkl44z8re8wla2u2vhjwztat3qnqd3ypczku23xq9pwqjdy8c7
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5QXNPaDlzRHI3ZHgxUTJp
|
||||
dnRnR1FMS1laTzNyU1ZXR3ZIR093TGpNZ0RRCjhadGxCY20vWXNRYmtqRE5wUGpt
|
||||
UXN5ekljVU1nSmtWNmlVT0tSN3ZrTHcKLS0tIGxvQmdrK2orUUZPcWsrbVppMEtN
|
||||
TEhuRFBFQUppVjFKL3JKa0ozNmRLcTAKDrrS8mpHoQoZ54VkY+SYbjoE6AS0fLjc
|
||||
uHuFCrUWqQIwfqHXGlXn7EPUweTfwQ7Od+4JeVp1GbgNLIyH5xNN1g==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-12-01T15:16:22Z"
|
||||
mac: ENC[AES256_GCM,data:e+nLoUc3ybRoznmQqUdEF01dOIPleG7Hxv9U05f2y68eLo+QzP8/dznIhdc8DC4dAB7IkS4qXGiCyyWfzhVTPy8Aor4pAO0wwHR3cylKswetX0RVJErRO2r6mDMz6bjOseo1WZ6Jq6EOo2Z0SZli+lnLrxTpnoVDlOL6XO6TP2A=,iv:57LHCw0SY5cG2woS5op378RhhgqJGSRhA8oO+76/maM=,tag:aYs9KnXSQyRyawRcc+MITw==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.10.2
|
||||
version: 3.11.0
|
||||
|
||||
@@ -14,9 +14,10 @@
|
||||
"/root/.ssh/nixos"
|
||||
"/home/gunalx/.ssh/nixos"
|
||||
];
|
||||
|
||||
#This is using an age key that is expected to already be in the filesystem
|
||||
age.keyFile = "/var/lib/sops-nix/key.txt";
|
||||
#age.keyFile = "/root/.config/sops/age/key.txt";
|
||||
age.keyFile = "/var/lib/sops-nix/keys.txt";
|
||||
#age.keyFile = "/root/.config/sops/age/keys.txt";
|
||||
age.generateKey = true;
|
||||
# This is the actual specification of the secrets.
|
||||
#secrets."myservice/my_subdir/my_secret" = {};
|
||||
|
||||
Reference in New Issue
Block a user