Compare commits
No commits in common. "main" and "main" have entirely different histories.
266 changed files with 2192 additions and 2493 deletions
|
@ -6,7 +6,7 @@ This config is primarily organized for my own use, you may find individual servi
|
||||||
### Installation
|
### Installation
|
||||||
You can install this flake from any system with the Nix package manager installed, including any official images.
|
You can install this flake from any system with the Nix package manager installed, including any official images.
|
||||||
Disko is used to automatically format your drive according to a declared config.
|
Disko is used to automatically format your drive according to a declared config.
|
||||||
Use ``nix-shell -p disko --run "sudo disko --mode destroy,format,mount ./disko.nix"`` to format the disk with Disko.
|
Use ``nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount ./filename.nix`` to format the disk with Disko.
|
||||||
You will likely want to generate a per hardware nix file using ``nixos-generate-config --root ./ --no-filesystems``, and adapt it to fit the format of ``/hosts``, to ensure essential drivers are loaded on boot.
|
You will likely want to generate a per hardware nix file using ``nixos-generate-config --root ./ --no-filesystems``, and adapt it to fit the format of ``/hosts``, to ensure essential drivers are loaded on boot.
|
||||||
Once formatted and adjusted, NixOS can be installed to the mounted drive with ``nixos-install --root /mnt --flake .#host``, where ``host`` is a hostname defined in this flake.
|
Once formatted and adjusted, NixOS can be installed to the mounted drive with ``nixos-install --root /mnt --flake .#host``, where ``host`` is a hostname defined in this flake.
|
||||||
|
|
||||||
|
|
239
flake.lock
generated
239
flake.lock
generated
|
@ -2,9 +2,7 @@
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"blender": {
|
"blender": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs"
|
||||||
"unstable"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "blender",
|
"dir": "blender",
|
||||||
|
@ -39,12 +37,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"crane": {
|
"crane": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"lanzaboote",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748970125,
|
"lastModified": 1717535930,
|
||||||
"narHash": "sha256-UDyigbDGv8fvs9aS95yzFfOKkEjx1LO3PL3DsKopohA=",
|
"narHash": "sha256-1hZ/txnbd/RmiBPNUs7i8UQw2N89uAK3UzrGAWdnFfU=",
|
||||||
"owner": "ipetkov",
|
"owner": "ipetkov",
|
||||||
"repo": "crane",
|
"repo": "crane",
|
||||||
"rev": "323b5746d89e04b22554b061522dfce9e4c49b18",
|
"rev": "55e7754ec31dac78980c8be45f8a28e80e370946",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -60,11 +64,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749436314,
|
"lastModified": 1746411114,
|
||||||
"narHash": "sha256-CqmqU5FRg5AadtIkxwu8ulDSOSoIisUMZRLlcED3Q5w=",
|
"narHash": "sha256-mLlkVX1kKbAa/Ns5u26wDYw4YW4ziMFM21fhtRmfirU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "dfa4d1b9c39c0342ef133795127a3af14598017a",
|
"rev": "b5d1320ebc2f34dbea4655f95167f55e2130cdb3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -76,11 +80,11 @@
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747046372,
|
"lastModified": 1696426674,
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -92,11 +96,11 @@
|
||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747046372,
|
"lastModified": 1696426674,
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -108,11 +112,11 @@
|
||||||
"flake-compat_3": {
|
"flake-compat_3": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747046372,
|
"lastModified": 1733328505,
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -129,11 +133,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749398372,
|
"lastModified": 1717285511,
|
||||||
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
"narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
"rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -168,11 +172,11 @@
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1710146030,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -199,32 +203,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"git-hooks": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": [
|
|
||||||
"mailserver",
|
|
||||||
"flake-compat"
|
|
||||||
],
|
|
||||||
"gitignore": "gitignore_2",
|
|
||||||
"nixpkgs": [
|
|
||||||
"mailserver",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1742649964,
|
|
||||||
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gitignore": {
|
"gitignore": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -247,28 +225,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gitignore_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"mailserver",
|
|
||||||
"git-hooks",
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hm": {
|
"hm": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -276,16 +232,16 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749154018,
|
"lastModified": 1746171682,
|
||||||
"narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
|
"narHash": "sha256-EyXUNSa+H+YvGVuQJP1nZskXAowxKYp79RNUsNdQTj4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
|
"rev": "50eee705bbdbac942074a8c120e8194185633675",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-25.05",
|
"ref": "release-24.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -313,11 +269,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749495634,
|
"lastModified": 1746158343,
|
||||||
"narHash": "sha256-NPifVq2XZGRCsLBoUt6M5YUTiIh23+ubq57w7mSODt8=",
|
"narHash": "sha256-i/1os9oEq0m/Da4FTdSqKUdI4+wzrvoDTuk1/dHSVDc=",
|
||||||
"owner": "Jovian-Experiments",
|
"owner": "Jovian-Experiments",
|
||||||
"repo": "Jovian-NixOS",
|
"repo": "Jovian-NixOS",
|
||||||
"rev": "c40d2f31f92571bf341497884174a132829ef0fc",
|
"rev": "8b45a8efb2829adf2996b51965ada1e4620631ac",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -331,6 +287,7 @@
|
||||||
"crane": "crane",
|
"crane": "crane",
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"stable"
|
"stable"
|
||||||
],
|
],
|
||||||
|
@ -338,15 +295,16 @@
|
||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749471908,
|
"lastModified": 1718178907,
|
||||||
"narHash": "sha256-uGfPqd43KTomeIVWUzHu3hGLWFsqYibhWLt2OaRic28=",
|
"narHash": "sha256-eSZyrQ9uoPB9iPQ8Y5H7gAmAgAvCw3InStmU3oEjqsE=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "lanzaboote",
|
"repo": "lanzaboote",
|
||||||
"rev": "00292388ad3b497763b81568d6ee5e1c4a2bcf85",
|
"rev": "b627ccd97d0159214cee5c7db1412b75e4be6086",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
|
"ref": "v0.4.1",
|
||||||
"repo": "lanzaboote",
|
"repo": "lanzaboote",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -355,23 +313,22 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"blobs": "blobs",
|
"blobs": "blobs",
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"git-hooks": "git-hooks",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"stable"
|
"stable"
|
||||||
],
|
],
|
||||||
"nixpkgs-25_05": "nixpkgs-25_05"
|
"nixpkgs-24_11": "nixpkgs-24_11"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747965231,
|
"lastModified": 1746469806,
|
||||||
"narHash": "sha256-BW3ktviEhfCN/z3+kEyzpDKAI8qFTwO7+S0NVA0C90o=",
|
"narHash": "sha256-kL3cc25sc0x+6gBZYjuE4566RT1E3XLQs4V8sl7D+VE=",
|
||||||
"owner": "simple-nixos-mailserver",
|
"owner": "simple-nixos-mailserver",
|
||||||
"repo": "nixos-mailserver",
|
"repo": "nixos-mailserver",
|
||||||
"rev": "53007af63fade28853408370c4c600a63dd97f41",
|
"rev": "14857a0309d7bbdf7c51bbfa309d0d13448ae77e",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "simple-nixos-mailserver",
|
"owner": "simple-nixos-mailserver",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-24.11",
|
||||||
"repo": "nixos-mailserver",
|
"repo": "nixos-mailserver",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
|
@ -380,16 +337,14 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_3",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs_2"
|
||||||
"stable"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749607590,
|
"lastModified": 1746324578,
|
||||||
"narHash": "sha256-vvu9zoaYuuPIGG9YKRBMNqOELGN+x2qHbEK6PrZ/Ky0=",
|
"narHash": "sha256-VUSIQ2W1Q3YgGvX3M4jPwIi3iIApdPHabhdrVjVgnwE=",
|
||||||
"owner": "Infinidoge",
|
"owner": "Infinidoge",
|
||||||
"repo": "nix-minecraft",
|
"repo": "nix-minecraft",
|
||||||
"rev": "83aaf9c7e3caa39608992e723cfb997624920a35",
|
"rev": "9e7fd83ba3b25b6f03561a5b7f8ea74b70296816",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -420,18 +375,64 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-25_05": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747610100,
|
"lastModified": 1733808091,
|
||||||
"narHash": "sha256-rpR5ZPMkWzcnCcYYo3lScqfuzEw5Uyfh+R0EKZfroAc=",
|
"narHash": "sha256-KWwINTQelKOoQgrXftxoqxmKFZb9pLVfnRvK270nkVk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ca49c4304acf0973078db0a9d200fd2bae75676d",
|
"rev": "a0f3e10d94359665dba45b71b4227b0aeb851f8e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-24_11": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1734083684,
|
||||||
|
"narHash": "sha256-5fNndbndxSx5d+C/D0p/VF32xDiJCJzyOqorOYW4JEo=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "314e12ba369ccdb9b352a4db26ff419f7c49fa84",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710695816,
|
||||||
|
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-23.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1742889210,
|
||||||
|
"narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "698214a32beb4f4c8e3942372c694f40848b360d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -445,11 +446,11 @@
|
||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749614785,
|
"lastModified": 1746568792,
|
||||||
"narHash": "sha256-yn6eDwnUr9vZYpneg+XNh0/tC1KA9a+yXxvFMEzOfco=",
|
"narHash": "sha256-e3QkOhtYJUlMLGCVUmQWULtVDokSJqud0VmPZoRj4s0=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "14f8439ad1190d3dd09f9fcc6a033d9710d68806",
|
"rev": "29d16321b0f48ad0d24c3eaf5656adfaaf99d19e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -468,14 +469,15 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"lanzaboote",
|
"lanzaboote",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
],
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747372754,
|
"lastModified": 1717664902,
|
||||||
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
"narHash": "sha256-7XfBuLULizXjXfBYy/VV+SpYMHreNRHk9nKMsm1bgb4=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "pre-commit-hooks.nix",
|
"repo": "pre-commit-hooks.nix",
|
||||||
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
"rev": "cc4d466cb1254af050ff7bdf47f6d404a7c646d1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -488,7 +490,6 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"blender": "blender",
|
"blender": "blender",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"hm": "hm",
|
"hm": "hm",
|
||||||
"impermanence": "impermanence",
|
"impermanence": "impermanence",
|
||||||
"jovian": "jovian",
|
"jovian": "jovian",
|
||||||
|
@ -502,17 +503,21 @@
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"flake-utils": [
|
||||||
|
"lanzaboote",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"lanzaboote",
|
"lanzaboote",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749436897,
|
"lastModified": 1717813066,
|
||||||
"narHash": "sha256-OkDtaCGQQVwVFz5HWfbmrMJR99sFIMXHCHEYXzUJEJY=",
|
"narHash": "sha256-wqbRwq3i7g5EHIui0bIi84mdqZ/It1AXBSLJ5tafD28=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "e7876c387e35dc834838aff254d8e74cf5bd4f19",
|
"rev": "6dc3e45fe4aee36efeed24d64fc68b1f989d5465",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -523,16 +528,16 @@
|
||||||
},
|
},
|
||||||
"stable": {
|
"stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750005367,
|
"lastModified": 1746422338,
|
||||||
"narHash": "sha256-h/aac1dGLhS3qpaD2aZt25NdKY7b+JT0ZIP2WuGsJMU=",
|
"narHash": "sha256-NTtKOTLQv6dPfRe00OGSywg37A1FYqldS6xiNmqBUYc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6c64dabd3aa85e0c02ef1cdcb6e1213de64baee3",
|
"rev": "5b35d248e9206c1f3baf8de6a7683fee126364aa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-24.11",
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -589,11 +594,11 @@
|
||||||
},
|
},
|
||||||
"unstable": {
|
"unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749794982,
|
"lastModified": 1746461020,
|
||||||
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
|
"narHash": "sha256-7+pG1I9jvxNlmln4YgnlW4o+w0TZX24k688mibiFDUE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
|
"rev": "3730d8a308f94996a9ba7c7138ede69c1b9ac4ae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
119
flake.nix
119
flake.nix
|
@ -1,12 +1,9 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
# General inputs
|
# General inputs
|
||||||
stable.url = "nixpkgs/nixos-25.05";
|
stable.url = "nixpkgs/nixos-24.11";
|
||||||
unstable.url = "nixpkgs/nixos-unstable";
|
unstable.url = "nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
# Flake helpers
|
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
|
||||||
|
|
||||||
# System inputs
|
# System inputs
|
||||||
disko = {
|
disko = {
|
||||||
url = "github:nix-community/disko";
|
url = "github:nix-community/disko";
|
||||||
|
@ -16,7 +13,7 @@
|
||||||
impermanence.url = "github:nix-community/impermanence";
|
impermanence.url = "github:nix-community/impermanence";
|
||||||
|
|
||||||
lanzaboote = {
|
lanzaboote = {
|
||||||
url = "github:nix-community/lanzaboote";
|
url = "github:nix-community/lanzaboote/v0.4.1";
|
||||||
inputs.nixpkgs.follows = "stable";
|
inputs.nixpkgs.follows = "stable";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -28,98 +25,72 @@
|
||||||
|
|
||||||
# Service inputs
|
# Service inputs
|
||||||
mailserver = {
|
mailserver = {
|
||||||
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-25.05";
|
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.11";
|
||||||
inputs.nixpkgs.follows = "stable";
|
inputs.nixpkgs.follows = "stable";
|
||||||
};
|
};
|
||||||
|
|
||||||
minecraft = {
|
minecraft.url = "github:Infinidoge/nix-minecraft";
|
||||||
url = "github:Infinidoge/nix-minecraft";
|
|
||||||
inputs.nixpkgs.follows = "stable";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Home inputs
|
# Home inputs
|
||||||
hm = {
|
hm = {
|
||||||
url = "github:nix-community/home-manager/release-25.05";
|
url = "github:nix-community/home-manager/release-24.11";
|
||||||
inputs.nixpkgs.follows = "stable";
|
inputs.nixpkgs.follows = "stable";
|
||||||
};
|
};
|
||||||
|
|
||||||
nur = {
|
nur = {
|
||||||
url = "github:nix-community/NUR";
|
url = "github:nix-community/NUR";
|
||||||
inputs.nixpkgs.follows = "unstable";
|
inputs.nixpkgs.follows = "unstable";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Specific apps
|
blender.url = "github:edolstra/nix-warez?dir=blender";
|
||||||
blender = {
|
|
||||||
url = "github:edolstra/nix-warez?dir=blender";
|
|
||||||
inputs.nixpkgs.follows = "unstable";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs: with inputs;
|
outputs = {
|
||||||
|
stable,
|
||||||
|
unstable,
|
||||||
|
|
||||||
{
|
disko,
|
||||||
colmena = {
|
impermanence,
|
||||||
meta = {
|
lanzaboote,
|
||||||
# Info
|
|
||||||
description = "The Bun Systems";
|
|
||||||
name = "bunhive";
|
|
||||||
|
|
||||||
# NixPKGs
|
mailserver,
|
||||||
nixpkgs = import stable {
|
minecraft,
|
||||||
overlays = [
|
|
||||||
blender.overlays.default
|
|
||||||
minecraft.overlay
|
|
||||||
];
|
|
||||||
system = "x86_64-linux";
|
|
||||||
};
|
|
||||||
|
|
||||||
specialArgs = inputs;
|
jovian,
|
||||||
|
|
||||||
# Use a different Nixpkgs import on some systems
|
hm,
|
||||||
nodeNixpkgs.jupiter = import unstable { system = "x86_64-linux"; };
|
nur,
|
||||||
};
|
blender,
|
||||||
|
...
|
||||||
|
}@inputs:
|
||||||
|
|
||||||
# Import the default config to all hosts
|
let
|
||||||
defaults.imports = [
|
mkNix = modules: channel: channel.lib.nixosSystem {
|
||||||
./modules/system
|
inherit modules;
|
||||||
disko.nixosModules.disko
|
specialArgs = inputs;
|
||||||
hm.nixosModules.home-manager
|
|
||||||
impermanence.nixosModules.impermanence
|
|
||||||
jovian.nixosModules.default
|
|
||||||
lanzaboote.nixosModules.lanzaboote
|
|
||||||
minecraft.nixosModules.minecraft-servers
|
|
||||||
];
|
|
||||||
|
|
||||||
# Desktops
|
|
||||||
tower.imports = [ ./hosts/tower ];
|
|
||||||
hidden.imports = [ ./hosts/hidden ];
|
|
||||||
|
|
||||||
# Laptops
|
|
||||||
intuos.imports = [ ./hosts/intuos ];
|
|
||||||
jupiter.imports = [ ./hosts/jupiter ];
|
|
||||||
flight.imports = [ ./hosts/flight ];
|
|
||||||
|
|
||||||
# Servers
|
|
||||||
midas.imports = [ ./hosts/midas ];
|
|
||||||
kitty.imports = [ ./hosts/kitty ];
|
|
||||||
detritus.imports = [ ./hosts/detritus ];
|
|
||||||
prophet.imports = [ ./hosts/prophet ];
|
|
||||||
};
|
};
|
||||||
}
|
mkHome = modules: channel: arch: hm.lib.homeManagerConfiguration {
|
||||||
|
inherit modules;
|
||||||
// flake-utils.lib.eachDefaultSystemPassThrough (system: let
|
pkgs = builtins.getAttr arch channel.legacyPackages;
|
||||||
mkHome = extraModules: hm.lib.homeManagerConfiguration {
|
|
||||||
modules = [
|
|
||||||
./modules/home
|
|
||||||
{ targets.genericLinux.enable = true; }
|
|
||||||
] ++ extraModules;
|
|
||||||
extraSpecialArgs = inputs;
|
extraSpecialArgs = inputs;
|
||||||
pkgs = builtins.getAttr system stable.legacyPackages;
|
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
homeConfigurations = {
|
# nh os switch /path -H host
|
||||||
default = mkHome [ ];
|
nixosConfigurations = {
|
||||||
desktop = mkHome [{ home.guifull.enable = true; }];
|
tower = mkNix [ ./hosts/tower ] stable; # Main Desktop
|
||||||
|
|
||||||
|
intuos = mkNix [ ./hosts/intuos ] stable; # Wacom Intuos Tablet
|
||||||
|
jupiter = mkNix [ ./hosts/jupiter ] unstable; # Steam Deck
|
||||||
|
redmond = mkNix [ ./hosts/redmond ] stable; # Lenovo Dual-Boot
|
||||||
|
|
||||||
|
midas = mkNix [ ./hosts/midas ] stable; # Dell Optiplex 5040
|
||||||
|
kitty = mkNix [ ./hosts/kitty ] stable; # Dell Optiplex 7010
|
||||||
|
prophet = mkNix [ ./hosts/prophet ] stable; # Oracle Neoverse-N1
|
||||||
};
|
};
|
||||||
});
|
|
||||||
|
# nh home switch /path -c arch
|
||||||
|
homeConfigurations = {
|
||||||
|
x86 = mkHome [ ./modules/home ] stable "x86_64-linux";
|
||||||
|
aarch = mkHome [ ./modules/home ] stable "aarch64-linux";
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
boot = {
|
|
||||||
kernelPackages = pkgs.linuxPackages_hardened;
|
|
||||||
loader.limine.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./boot
|
|
||||||
./disko
|
|
||||||
./filesystems
|
|
||||||
./hardware
|
|
||||||
];
|
|
||||||
|
|
||||||
system = {
|
|
||||||
nixos.tags = [ "server" ];
|
|
||||||
stateVersion = "25.05";
|
|
||||||
};
|
|
||||||
|
|
||||||
deployment.targetHost = "53a:2092:12ff:889c:2e1f:1d79:f05a:cadd";
|
|
||||||
|
|
||||||
networking.hostId = "0917a5c1";
|
|
||||||
|
|
||||||
services.nfs.server.enable = true;
|
|
||||||
|
|
||||||
virtualisation.libvirtd.enable = true;
|
|
||||||
}
|
|
|
@ -1,99 +0,0 @@
|
||||||
{ config, name, ... }:
|
|
||||||
{
|
|
||||||
disko.devices = {
|
|
||||||
disk = {
|
|
||||||
"${name}" = {
|
|
||||||
type = "disk";
|
|
||||||
device = "/dev/sda";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
boot = {
|
|
||||||
priority = 1;
|
|
||||||
size = "1M";
|
|
||||||
type = "EF02";
|
|
||||||
};
|
|
||||||
ESP = {
|
|
||||||
size = "2G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [ "umask=0077" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
main = {
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "lvm_pv";
|
|
||||||
vg = "${name}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
lvm_vg = {
|
|
||||||
"${name}" = {
|
|
||||||
type = "lvm_vg";
|
|
||||||
lvs = {
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
extraArgs = [ "-f" ];
|
|
||||||
subvolumes = {
|
|
||||||
"/root" = {
|
|
||||||
mountpoint = "/";
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"ssd"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"/prev" = {
|
|
||||||
mountpoint = "/prev";
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noexec"
|
|
||||||
"ssd"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"/nix" = {
|
|
||||||
mountpoint = "/nix";
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"ssd"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Impermanence
|
|
||||||
"/persist" = {
|
|
||||||
mountpoint = "/persist";
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"ssd"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"/persist/.snapshots" = { };
|
|
||||||
"/persist/home" = { };
|
|
||||||
"/persist/home/.snapshots" = { };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
swap = {
|
|
||||||
size = "2G";
|
|
||||||
content = {
|
|
||||||
type = "swap";
|
|
||||||
discardPolicy = "both";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Needed for impermanence
|
|
||||||
fileSystems."/persist".neededForBoot = true;
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
fileSystems = {
|
|
||||||
"/persist/storage" = {
|
|
||||||
device = "/dev/disk/by-uuid/d0d6783f-ad51-4d85-b8a9-3374f6460ef6";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [
|
|
||||||
"nofail"
|
|
||||||
"nosuid"
|
|
||||||
"subvol=storage"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ modulesPath, ... }:
|
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
initrd = {
|
|
||||||
availableKernelModules = [
|
|
||||||
"ahci"
|
|
||||||
"ehci_pci"
|
|
||||||
"sd_mod"
|
|
||||||
"usb_storage"
|
|
||||||
"usbhid"
|
|
||||||
"xhci_pci_renesas"
|
|
||||||
];
|
|
||||||
kernelModules = [ "dm-snapshot" ];
|
|
||||||
};
|
|
||||||
kernelModules = [ "kvm-intel" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.cpu.intel.updateMicrocode = true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{ lib, pkgs, ... }:
|
|
||||||
{
|
|
||||||
boot = {
|
|
||||||
kernelPackages = pkgs.linuxPackages;
|
|
||||||
loader.limine = {
|
|
||||||
enable = true;
|
|
||||||
biosDevice = lib.mkForce "/dev/disk/by-id/ata-XSTAR_SSD_64GB_XSFA2011000462";
|
|
||||||
};
|
|
||||||
plymouth.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./boot
|
|
||||||
./filesystems
|
|
||||||
./hardware
|
|
||||||
./root
|
|
||||||
./user
|
|
||||||
];
|
|
||||||
|
|
||||||
system = {
|
|
||||||
nixos.tags = [ "pc" ];
|
|
||||||
stateVersion = "25.05";
|
|
||||||
};
|
|
||||||
|
|
||||||
deployment.targetHost = "409:b2b1:966c:b13:6d67:2d6b:45e2:f048";
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
fileSystems = {
|
|
||||||
"/persist/storage" = {
|
|
||||||
device = "/dev/disk/by-uuid/3d6f81f2-7fa5-40a2-85bb-56f4cab63773";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [
|
|
||||||
"nofail"
|
|
||||||
"nosuid"
|
|
||||||
"subvol=storage"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
{ config, modulesPath, ... }:
|
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
initrd = {
|
|
||||||
availableKernelModules = [
|
|
||||||
"ehci_pci"
|
|
||||||
"ahci"
|
|
||||||
"xhci_pci"
|
|
||||||
"usb_storage"
|
|
||||||
"sd_mod"
|
|
||||||
"sr_mod"
|
|
||||||
];
|
|
||||||
kernelModules = [ "dm-snapshot" ];
|
|
||||||
};
|
|
||||||
kernelModules = [ "kvm-intel" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
cpu.intel.updateMicrocode = true;
|
|
||||||
nvidia = {
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.legacy_390;
|
|
||||||
prime = {
|
|
||||||
sync.enable = true;
|
|
||||||
intelBusId = "PCI:0:2:0";
|
|
||||||
nvidiaBusId = "PCI:1:0:0";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
{ config, name, ... }:
|
|
||||||
{
|
|
||||||
boot.initrd.luks.devices."${name}-disk".device = "/dev/disk/by-uuid/0fc43c11-c382-4e37-812b-8866b1b20e68";
|
|
||||||
|
|
||||||
fileSystems = {
|
|
||||||
"/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/FA96-EF11";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "umask=0077" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
"/" = {
|
|
||||||
device = "/dev/disk/by-uuid/bbaf733b-14af-417b-b1c8-2f0534995483";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [
|
|
||||||
"compress=zstd"
|
|
||||||
"ssd"
|
|
||||||
"subvol=root"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"/prev" = {
|
|
||||||
device = "/dev/disk/by-uuid/bbaf733b-14af-417b-b1c8-2f0534995483";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noexec"
|
|
||||||
"ssd"
|
|
||||||
"subvol=prev"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"/nix" = {
|
|
||||||
device = "/dev/disk/by-uuid/bbaf733b-14af-417b-b1c8-2f0534995483";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [
|
|
||||||
"compress=zstd"
|
|
||||||
"ssd"
|
|
||||||
"subvol=nix"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"/persist" = {
|
|
||||||
device = "/dev/disk/by-uuid/bbaf733b-14af-417b-b1c8-2f0534995483";
|
|
||||||
fsType = "btrfs";
|
|
||||||
neededForBoot = true;
|
|
||||||
options = [
|
|
||||||
"compress=zstd"
|
|
||||||
"ssd"
|
|
||||||
"subvol=persist"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ { device = "/dev/disk/by-uuid/93ac8c5c-c947-4b45-a12a-146e87398517"; } ];
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
{
|
|
||||||
home-manager.users."${config.vars.mainUser}" = {
|
|
||||||
home.guifull.enable = true;
|
|
||||||
wayland.windowManager.sway.extraSessionCommands = lib.mkForce "";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
boot = {
|
|
||||||
kernelPackages = pkgs.linuxPackages_6_14;
|
|
||||||
loader.limine.enable = true;
|
|
||||||
plymouth.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./boot
|
|
||||||
./disko
|
|
||||||
./hardware
|
|
||||||
./services
|
|
||||||
./user
|
|
||||||
];
|
|
||||||
|
|
||||||
system = {
|
|
||||||
nixos.tags = [ "pc" ];
|
|
||||||
stateVersion = "24.11";
|
|
||||||
};
|
|
||||||
|
|
||||||
deployment.targetHost = "4ec:1001:ca5a:ae79:40e2:cb4c:e3c9:f401";
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
{ modulesPath, ... }:
|
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
initrd = {
|
|
||||||
availableKernelModules = [
|
|
||||||
"ahci"
|
|
||||||
"nvme"
|
|
||||||
"sd_mod"
|
|
||||||
"sr_mod"
|
|
||||||
"usb_storage"
|
|
||||||
"usbhid"
|
|
||||||
"xhci_pci"
|
|
||||||
];
|
|
||||||
kernelModules = [ "dm-snapshot" ];
|
|
||||||
};
|
|
||||||
kernelModules = [ "kvm-intel" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.cpu = {
|
|
||||||
amd.updateMicrocode = true;
|
|
||||||
intel.updateMicrocode = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
{
|
|
||||||
networking.useNetworkd = lib.mkForce false;
|
|
||||||
|
|
||||||
virtualisation = {
|
|
||||||
libvirtd.enable = true;
|
|
||||||
vmware.host.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
home-manager.users."${config.vars.mainUser}".home = {
|
|
||||||
desktop.enable = true;
|
|
||||||
school.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,6 +1,7 @@
|
||||||
{ ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
boot = {
|
boot = {
|
||||||
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
lanzaboote.enable = true;
|
lanzaboote.enable = true;
|
||||||
plymouth.enable = true;
|
plymouth.enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,14 +3,16 @@
|
||||||
imports = [
|
imports = [
|
||||||
./boot
|
./boot
|
||||||
./disko
|
./disko
|
||||||
|
./filesystems
|
||||||
./hardware
|
./hardware
|
||||||
./user
|
./user
|
||||||
|
../../modules/system
|
||||||
];
|
];
|
||||||
|
|
||||||
|
networking.hostName = "intuos";
|
||||||
|
|
||||||
system = {
|
system = {
|
||||||
nixos.tags = [ "pc" ];
|
desktop.enable = true;
|
||||||
stateVersion = "24.11";
|
stateVersion = "24.11";
|
||||||
};
|
};
|
||||||
|
|
||||||
deployment.targetHost = "40e:404:a427:da33:163e:97b3:a2a3:9ed4";
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
{ config, name, ... }:
|
{ config, disko, ... }:
|
||||||
{
|
{
|
||||||
|
imports = [ disko.nixosModules.disko ];
|
||||||
|
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk = {
|
disk = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = "/dev/sda";
|
device = "/dev/sda";
|
||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
boot = {
|
boot = {
|
||||||
priority = 1;
|
|
||||||
size = "1M";
|
size = "1M";
|
||||||
type = "EF02";
|
type = "EF02";
|
||||||
};
|
};
|
||||||
|
@ -27,12 +28,12 @@
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "luks";
|
type = "luks";
|
||||||
name = "${name}-disk";
|
name = "${config.networking.hostName}-disk";
|
||||||
settings.allowDiscards = true;
|
settings.allowDiscards = true;
|
||||||
passwordFile = "/tmp/secret.key";
|
passwordFile = "/tmp/secret.key";
|
||||||
content = {
|
content = {
|
||||||
type = "lvm_pv";
|
type = "lvm_pv";
|
||||||
vg = "${name}";
|
vg = "${config.networking.hostName}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -42,7 +43,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
lvm_vg = {
|
lvm_vg = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "lvm_vg";
|
type = "lvm_vg";
|
||||||
lvs = {
|
lvs = {
|
||||||
root = {
|
root = {
|
||||||
|
|
32
hosts/intuos/filesystems/default.nix
Normal file
32
hosts/intuos/filesystems/default.nix
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
fileSystems = {
|
||||||
|
"/home/${config.sysusers.main}/Network/Midas" = {
|
||||||
|
device = "10.2.0.1:/storage";
|
||||||
|
fsType = "nfs4";
|
||||||
|
options = [
|
||||||
|
"noauto"
|
||||||
|
"soft"
|
||||||
|
"x-systemd.automount"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"/home/${config.sysusers.main}/Network/Kitty" = {
|
||||||
|
device = "10.2.0.2:/storage/bun";
|
||||||
|
fsType = "nfs4";
|
||||||
|
options = [
|
||||||
|
"noauto"
|
||||||
|
"soft"
|
||||||
|
"x-systemd.automount"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"/home/${config.sysusers.main}/Network/Prophet" = {
|
||||||
|
device = "mx.nixfox.ca:/storage";
|
||||||
|
fsType = "nfs4";
|
||||||
|
options = [
|
||||||
|
"noauto"
|
||||||
|
"soft"
|
||||||
|
"x-systemd.automount"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
{ modulesPath, ... }:
|
{ config, lib, modulesPath, ... }:
|
||||||
{
|
{
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
|
@ -16,7 +16,6 @@
|
||||||
kernelModules = [ "kvm-intel" ];
|
kernelModules = [ "kvm-intel" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.cpu.intel.updateMicrocode = true;
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
{ config, ... }:
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
home-manager.users."${config.vars.mainUser}".home = {
|
home-manager.users."${config.sysusers.main}".home = {
|
||||||
desktop.enable = true;
|
desktop.enable = true;
|
||||||
production.enable = true;
|
production.enable = true;
|
||||||
|
stateVersion = lib.mkForce config.system.stateVersion;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{ pkgsStable, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = pkgsStable.linuxPackages_6_14;
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
loader.limine.enable = true;
|
loader.systemd-boot.enable = true;
|
||||||
plymouth.enable = true;
|
plymouth.enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,14 +8,14 @@
|
||||||
./jovian
|
./jovian
|
||||||
./services
|
./services
|
||||||
./user
|
./user
|
||||||
|
../../modules/system
|
||||||
];
|
];
|
||||||
|
|
||||||
|
networking.hostName = "jupiter";
|
||||||
|
|
||||||
system = {
|
system = {
|
||||||
nixos.tags = [ "pc" ];
|
desktop.enable = true;
|
||||||
|
steamdeck.enable = true;
|
||||||
stateVersion = "24.11";
|
stateVersion = "24.11";
|
||||||
};
|
};
|
||||||
|
|
||||||
deployment.targetHost = "5ce:969c:40d1:9575:f5e:591d:c377:a20b";
|
|
||||||
|
|
||||||
jovian.steam.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
{ config, name, ... }:
|
{ config, disko, ... }:
|
||||||
{
|
{
|
||||||
|
imports = [ disko.nixosModules.disko ];
|
||||||
|
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk = {
|
disk = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = "/dev/nvme0n1";
|
device = "/dev/nvme0n1";
|
||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
boot = {
|
boot = {
|
||||||
priority = 1;
|
|
||||||
size = "1M";
|
size = "1M";
|
||||||
type = "EF02";
|
type = "EF02";
|
||||||
};
|
};
|
||||||
|
@ -27,7 +28,7 @@
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "lvm_pv";
|
type = "lvm_pv";
|
||||||
vg = "${name}";
|
vg = "${config.networking.hostName}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -36,7 +37,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
lvm_vg = {
|
lvm_vg = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "lvm_vg";
|
type = "lvm_vg";
|
||||||
lvs = {
|
lvs = {
|
||||||
root = {
|
root = {
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
fileSystems = {
|
fileSystems."/mnt/Games" = {
|
||||||
"/mnt/Games" = {
|
device = "/dev/disk/by-uuid/cb109a85-846d-4417-9c50-a2279bd20803";
|
||||||
device = "/dev/disk/by-uuid/cb109a85-846d-4417-9c50-a2279bd20803";
|
fsType = "btrfs";
|
||||||
fsType = "btrfs";
|
options = [
|
||||||
options = [
|
"nofail"
|
||||||
"nofail"
|
"nosuid"
|
||||||
"nosuid"
|
];
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ modulesPath, ... }:
|
{ config, lib, modulesPath, ... }:
|
||||||
{
|
{
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
|
@ -15,7 +15,6 @@
|
||||||
kernelModules = [ "kvm-amd" ];
|
kernelModules = [ "kvm-amd" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.cpu.amd.updateMicrocode = true;
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,16 @@
|
||||||
{ config, lib, pkgs, jovian, ... }:
|
{ config, lib, pkgs, jovian, ... }:
|
||||||
{
|
{
|
||||||
imports = [ ./desktop ];
|
imports = [ jovian.nixosModules.jovian ];
|
||||||
|
|
||||||
config = lib.mkIf config.jovian.steam.enable {
|
options.system.steamdeck.enable = lib.mkEnableOption "Jovian NixOS environment";
|
||||||
|
|
||||||
|
config = lib.mkIf config.system.steamdeck.enable {
|
||||||
jovian = {
|
jovian = {
|
||||||
steam = {
|
steam = {
|
||||||
|
enable = true;
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
user = config.vars.mainUser;
|
desktopSession = "gnome";
|
||||||
|
user = config.sysusers.main;
|
||||||
};
|
};
|
||||||
decky-loader = {
|
decky-loader = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -18,46 +22,80 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Evil kernel
|
|
||||||
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_jovian;
|
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_jovian;
|
||||||
|
|
||||||
programs.steam.extest.enable = true;
|
programs.steam = {
|
||||||
|
extest.enable = true;
|
||||||
|
localNetworkGameTransfers.openFirewall = true;
|
||||||
|
remotePlay.openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
hardware.xone.enable = true;
|
services = {
|
||||||
|
keyd.enable = lib.mkForce false;
|
||||||
|
tlp.enable = lib.mkForce false;
|
||||||
|
xserver.desktopManager.gnome.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
# Use networkmanager for ui compatibility
|
|
||||||
networking = {
|
networking = {
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
wireless.enable = lib.mkForce false;
|
wireless.enable = lib.mkForce false;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Disable conflicting services
|
environment = {
|
||||||
services = {
|
persistence."/persist" = {
|
||||||
keyd.enable = lib.mkForce false;
|
directories = [
|
||||||
tlp.enable = lib.mkForce false;
|
"/etc/NetworkManager/system-connections"
|
||||||
|
"/var/lib/decky-loader"
|
||||||
|
];
|
||||||
|
users.${config.sysusers.main}.directories = [ ".steam" ];
|
||||||
|
};
|
||||||
|
gnome.excludePackages = with pkgs; [
|
||||||
|
adwaita-icon-theme
|
||||||
|
baobab
|
||||||
|
epiphany
|
||||||
|
evince
|
||||||
|
file-roller
|
||||||
|
geary
|
||||||
|
gnome-calculator
|
||||||
|
gnome-calendar
|
||||||
|
gnome-characters
|
||||||
|
gnome-clocks
|
||||||
|
gnome-color-manager
|
||||||
|
gnome-connections
|
||||||
|
gnome-console
|
||||||
|
gnome-contacts
|
||||||
|
gnome-disk-utility
|
||||||
|
gnome-font-viewer
|
||||||
|
gnome-logs
|
||||||
|
gnome-maps
|
||||||
|
gnome-music
|
||||||
|
gnome-shell-extensions
|
||||||
|
gnome-software
|
||||||
|
gnome-system-monitor
|
||||||
|
gnome-text-editor
|
||||||
|
gnome-tour
|
||||||
|
gnome-user-docs
|
||||||
|
gnome-weather
|
||||||
|
loupe
|
||||||
|
nautilus
|
||||||
|
orca
|
||||||
|
seahorse
|
||||||
|
simple-scan
|
||||||
|
snapshot
|
||||||
|
sushi
|
||||||
|
sysprof
|
||||||
|
totem
|
||||||
|
yelp
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Disable network filesystems
|
|
||||||
fileSystems = {
|
|
||||||
"midas".enable = false;
|
|
||||||
"kitty".enable = false;
|
|
||||||
"detritus".enable = false;
|
|
||||||
"prophet".enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.persistence."/persist".directories = [
|
|
||||||
"/etc/NetworkManager/system-connections"
|
|
||||||
"/var/lib/decky-loader"
|
|
||||||
];
|
|
||||||
|
|
||||||
nixpkgs.allowUnfreePackages = [
|
nixpkgs.allowUnfreePackages = [
|
||||||
"steam"
|
"steam"
|
||||||
"steam-jupiter-unwrapped"
|
"steam-jupiter-unwrapped"
|
||||||
"steamdeck-firmware"
|
"steamdeck-firmware"
|
||||||
"steamdeck-hw-theme"
|
"steamdeck-hw-theme"
|
||||||
"xow_dongle-firmware"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
specialisation.desktop.configuration.config.jovian.steam.enable = lib.mkForce false;
|
specialisation.desktop.configuration.config.system.steamdeck.enable = lib.mkForce false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
{
|
|
||||||
config = lib.mkIf config.jovian.steam.enable {
|
|
||||||
jovian.steam.desktopSession = "gnome";
|
|
||||||
|
|
||||||
services.desktopManager.gnome.enable = true;
|
|
||||||
|
|
||||||
environment.gnome.excludePackages = with pkgs; [
|
|
||||||
adwaita-icon-theme
|
|
||||||
baobab
|
|
||||||
epiphany
|
|
||||||
evince
|
|
||||||
file-roller
|
|
||||||
geary
|
|
||||||
gnome-calculator
|
|
||||||
gnome-calendar
|
|
||||||
gnome-characters
|
|
||||||
gnome-clocks
|
|
||||||
gnome-color-manager
|
|
||||||
gnome-connections
|
|
||||||
gnome-console
|
|
||||||
gnome-contacts
|
|
||||||
gnome-disk-utility
|
|
||||||
gnome-font-viewer
|
|
||||||
gnome-logs
|
|
||||||
gnome-maps
|
|
||||||
gnome-music
|
|
||||||
gnome-remote-desktop
|
|
||||||
gnome-shell-extensions
|
|
||||||
gnome-software
|
|
||||||
gnome-system-monitor
|
|
||||||
gnome-text-editor
|
|
||||||
gnome-tour
|
|
||||||
gnome-user-docs
|
|
||||||
gnome-weather
|
|
||||||
loupe
|
|
||||||
nautilus
|
|
||||||
orca
|
|
||||||
seahorse
|
|
||||||
simple-scan
|
|
||||||
snapshot
|
|
||||||
sushi
|
|
||||||
sysprof
|
|
||||||
totem
|
|
||||||
yelp
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkIf (!config.jovian.steam.enable) {
|
config = lib.mkIf (!config.system.steamdeck.enable) {
|
||||||
networking.useNetworkd = lib.mkForce false;
|
networking.useNetworkd = lib.mkForce false;
|
||||||
|
|
||||||
services.globalprotect.enable = true;
|
services.globalprotect.enable = true;
|
||||||
|
@ -9,5 +9,12 @@
|
||||||
libvirtd.enable = true;
|
libvirtd.enable = true;
|
||||||
vmware.host.enable = true;
|
vmware.host.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nixpkgs.allowUnfreePackages = [ "vmware-workstation" ];
|
||||||
|
|
||||||
|
environment.persistence."/persist".users.${config.sysusers.main}.directories = [
|
||||||
|
"vmware"
|
||||||
|
".vmware"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
{ config, ... }:
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
home-manager.users."${config.vars.mainUser}".home = {
|
home-manager.users."${config.sysusers.main}".home = {
|
||||||
guifull.enable = true;
|
desktop.enable = true;
|
||||||
|
gaming.enable = true;
|
||||||
|
production.enable = true;
|
||||||
school.enable = true;
|
school.enable = true;
|
||||||
enableNixpkgsReleaseCheck = false;
|
enableNixpkgsReleaseCheck = false;
|
||||||
|
stateVersion = lib.mkForce config.system.stateVersion;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,6 @@
|
||||||
{
|
{
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = pkgs.linuxPackages_hardened;
|
kernelPackages = pkgs.linuxPackages_hardened;
|
||||||
loader.limine.enable = true;
|
loader.systemd-boot.enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,16 +6,20 @@
|
||||||
./filesystems
|
./filesystems
|
||||||
./hardware
|
./hardware
|
||||||
./network
|
./network
|
||||||
./services
|
./user
|
||||||
|
../../modules/system
|
||||||
];
|
];
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostName = "kitty";
|
||||||
|
hostId = "8745e22e";
|
||||||
|
};
|
||||||
|
|
||||||
system = {
|
system = {
|
||||||
nixos.tags = [
|
server.enable = true;
|
||||||
"extra-users"
|
extraUsers.enable = true;
|
||||||
"server"
|
|
||||||
];
|
|
||||||
stateVersion = "24.11";
|
stateVersion = "24.11";
|
||||||
};
|
};
|
||||||
|
|
||||||
deployment.targetHost = "53f:dc2d:80c9:3ca2:4b15:ef4d:38a0:c868";
|
services.nfs.server.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
{ config, name, ... }:
|
{ config, disko, ... }:
|
||||||
{
|
{
|
||||||
|
imports = [ disko.nixosModules.disko ];
|
||||||
|
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk = {
|
disk = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = "/dev/disk/by-id/ata-KINGSTON_SA400S37120G_50026B7783DBB232";
|
device = "/dev/sda";
|
||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
boot = {
|
boot = {
|
||||||
priority = 1;
|
|
||||||
size = "1M";
|
size = "1M";
|
||||||
type = "EF02";
|
type = "EF02";
|
||||||
};
|
};
|
||||||
|
@ -27,7 +28,7 @@
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "lvm_pv";
|
type = "lvm_pv";
|
||||||
vg = "${name}";
|
vg = "${config.networking.hostName}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -36,7 +37,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
lvm_vg = {
|
lvm_vg = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "lvm_vg";
|
type = "lvm_vg";
|
||||||
lvs = {
|
lvs = {
|
||||||
root = {
|
root = {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
"/persist/storage" = {
|
"/persist/storage" = {
|
||||||
|
@ -9,5 +9,23 @@
|
||||||
"nosuid"
|
"nosuid"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
"/home/${config.sysusers.main}/Network/Midas" = {
|
||||||
|
device = "11.0.0.1:/storage";
|
||||||
|
fsType = "nfs4";
|
||||||
|
options = [
|
||||||
|
"x-systemd.automount"
|
||||||
|
"noauto"
|
||||||
|
"soft"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"/home/${config.sysusers.main}/Network/Prophet" = {
|
||||||
|
device = "mx.nixfox.ca:/storage";
|
||||||
|
fsType = "nfs4";
|
||||||
|
options = [
|
||||||
|
"noauto"
|
||||||
|
"soft"
|
||||||
|
"x-systemd.automount"
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }:
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
boot.initrd = {
|
boot.initrd = {
|
||||||
availableKernelModules = [
|
availableKernelModules = [
|
||||||
|
@ -9,7 +9,6 @@
|
||||||
kernelModules = [ "dm-snapshot" ];
|
kernelModules = [ "dm-snapshot" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.cpu.intel.updateMicrocode = true;
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
|
||||||
}
|
}
|
||||||
|
|
1
hosts/kitty/id_ed25519.pub
Normal file
1
hosts/kitty/id_ed25519.pub
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDOBa+Wz1FqFEnMeXflP0CPt2wnN819T+FdSCIwFLJjN
|
|
@ -2,13 +2,21 @@
|
||||||
{
|
{
|
||||||
networking = {
|
networking = {
|
||||||
interfaces."eno1".ipv4.addresses = [{
|
interfaces."eno1".ipv4.addresses = [{
|
||||||
address = "11.2.0.1";
|
address = "10.2.0.2";
|
||||||
prefixLength = 8;
|
prefixLength = 8;
|
||||||
}];
|
}];
|
||||||
defaultGateway = {
|
defaultGateway = {
|
||||||
address = "11.1.0.1";
|
address = "10.1.0.1";
|
||||||
interface = "eno1";
|
interface = "eno1";
|
||||||
};
|
};
|
||||||
hostId = "8745e22e";
|
|
||||||
|
vlans.internal = {
|
||||||
|
id=100;
|
||||||
|
interface="eno1";
|
||||||
|
};
|
||||||
|
interfaces.internal.ipv4.addresses = [{
|
||||||
|
address = "11.0.0.2";
|
||||||
|
prefixLength = 8;
|
||||||
|
}];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
services = {
|
|
||||||
nfs.server.enable = true;
|
|
||||||
nginx.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation.incus.enable = true;
|
|
||||||
}
|
|
6
hosts/kitty/user/default.nix
Normal file
6
hosts/kitty/user/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
{
|
||||||
|
home-manager.users."${config.sysusers.main}".home = {
|
||||||
|
stateVersion = lib.mkForce config.system.stateVersion;
|
||||||
|
};
|
||||||
|
}
|
|
@ -7,12 +7,17 @@
|
||||||
./hardware
|
./hardware
|
||||||
./network
|
./network
|
||||||
./services
|
./services
|
||||||
|
./user
|
||||||
|
../../modules/system
|
||||||
];
|
];
|
||||||
|
|
||||||
system = {
|
networking = {
|
||||||
nixos.tags = [ "server" ];
|
hostName = "midas";
|
||||||
stateVersion = "24.11";
|
hostId = "38ba3f57";
|
||||||
};
|
};
|
||||||
|
|
||||||
deployment.targetHost = "538:e163:87ba:f847:3646:18b6:6b01:d8f8";
|
system = {
|
||||||
|
server.enable = true;
|
||||||
|
stateVersion = "24.11";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
{ config, name, ... }:
|
{ config, disko, ... }:
|
||||||
{
|
{
|
||||||
|
imports = [ disko.nixosModules.disko ];
|
||||||
|
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk = {
|
disk = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = "/dev/disk/by-id/nvme-eui.00080d03001365cc";
|
device = "/dev/nvme0n1";
|
||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
boot = {
|
boot = {
|
||||||
priority = 1;
|
|
||||||
size = "1M";
|
size = "1M";
|
||||||
type = "EF02";
|
type = "EF02";
|
||||||
};
|
};
|
||||||
|
@ -27,12 +28,12 @@
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "luks";
|
type = "luks";
|
||||||
name = "${name}-disk";
|
name = "${config.networking.hostName}-disk";
|
||||||
settings.allowDiscards = true;
|
settings.allowDiscards = true;
|
||||||
passwordFile = "/tmp/secret.key";
|
passwordFile = "/tmp/secret.key";
|
||||||
content = {
|
content = {
|
||||||
type = "lvm_pv";
|
type = "lvm_pv";
|
||||||
vg = "${name}";
|
vg = "${config.networking.hostName}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -42,7 +43,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
lvm_vg = {
|
lvm_vg = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "lvm_vg";
|
type = "lvm_vg";
|
||||||
lvs = {
|
lvs = {
|
||||||
root = {
|
root = {
|
||||||
|
|
|
@ -10,5 +10,14 @@
|
||||||
"subvol=persist"
|
"subvol=persist"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
"/kitty" = {
|
||||||
|
device = "11.0.0.2:/storage/bun";
|
||||||
|
fsType = "nfs4";
|
||||||
|
options = [
|
||||||
|
"noauto"
|
||||||
|
"soft"
|
||||||
|
"x-systemd.automount"
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }:
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
boot.initrd = {
|
boot.initrd = {
|
||||||
availableKernelModules = [
|
availableKernelModules = [
|
||||||
|
@ -10,7 +10,6 @@
|
||||||
kernelModules = [ "dm-snapshot" ];
|
kernelModules = [ "dm-snapshot" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.cpu.intel.updateMicrocode = true;
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
|
||||||
}
|
}
|
||||||
|
|
1
hosts/midas/id_ed25519.pub
Normal file
1
hosts/midas/id_ed25519.pub
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIFGHaxdTeC1xnTx2BY5LLR5LxhdSkmYoWuOeEuRIz0k
|
|
@ -2,13 +2,45 @@
|
||||||
{
|
{
|
||||||
networking = {
|
networking = {
|
||||||
interfaces."enp0s31f6".ipv4.addresses = [{
|
interfaces."enp0s31f6".ipv4.addresses = [{
|
||||||
address = "11.2.0.1";
|
address = "10.2.0.1";
|
||||||
prefixLength = 8;
|
prefixLength = 8;
|
||||||
}];
|
}];
|
||||||
defaultGateway = {
|
defaultGateway = {
|
||||||
address = "11.1.0.1";
|
address = "10.1.0.1";
|
||||||
interface = "enp0s31f6";
|
interface = "enp0s31f6";
|
||||||
};
|
};
|
||||||
hostId = "38ba3f57";
|
|
||||||
|
vlans.internal = {
|
||||||
|
id=100;
|
||||||
|
interface="enp0s31f6";
|
||||||
|
};
|
||||||
|
interfaces.internal.ipv4.addresses = [{
|
||||||
|
address = "11.0.0.1";
|
||||||
|
prefixLength = 8;
|
||||||
|
}];
|
||||||
|
|
||||||
|
nftables.tables.forwarding = {
|
||||||
|
family = "inet";
|
||||||
|
content = ''
|
||||||
|
chain incoming {
|
||||||
|
type nat hook prerouting priority dstnat; policy accept;
|
||||||
|
tcp dport 2211 dnat ip to 11.0.0.100:22 comment "Tower SSH"
|
||||||
|
tcp dport 2222 dnat ip to 11.0.0.2:22 comment "Kitty SSH"
|
||||||
|
|
||||||
|
udp dport { 27005, 27015 } dnat ip to 11.0.0.100 comment "PC Hosted Games"
|
||||||
|
|
||||||
|
tcp dport { 48010, 47989, 47984 } dnat ip to 11.0.0.100 comment "PC Sunshine TCP"
|
||||||
|
udp dport { 47998, 47999, 48000 } dnat ip to 11.0.0.100 comment "PC Sunshine UDP"
|
||||||
|
}
|
||||||
|
|
||||||
|
chain forward {
|
||||||
|
type nat hook postrouting priority 100; policy accept;
|
||||||
|
masquerade
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Enable IP forwarding for the server configuration
|
||||||
|
boot.kernel.sysctl."net.ipv4.ip_forward" = 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [ ./nginx ];
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
cloudflare-dyndns.enable = true;
|
cloudflare-dyndns.enable = true;
|
||||||
forgejo.enable = true;
|
forgejo.enable = true;
|
||||||
hedgedoc.enable = true;
|
|
||||||
icecast.enable = true;
|
icecast.enable = true;
|
||||||
jellyfin.enable = true;
|
jellyfin.enable = true;
|
||||||
|
lemmy.enable = true;
|
||||||
mastodon.enable = true;
|
mastodon.enable = true;
|
||||||
matrix-synapse.enable = true;
|
matrix-synapse.enable = true;
|
||||||
mysql.enable = true;
|
mysql.enable = true;
|
||||||
nextcloud.enable = true;
|
nextcloud.enable = true;
|
||||||
nfs.server.enable = true;
|
nfs.server.enable = true;
|
||||||
|
nginx.enable = true;
|
||||||
owncast.enable = true;
|
owncast.enable = true;
|
||||||
transmission.enable = true;
|
transmission.enable = true;
|
||||||
vaultwarden.enable = true;
|
vaultwarden.enable = true;
|
||||||
|
webserver.enable = true;
|
||||||
|
|
||||||
minecraft-servers = {
|
minecraft-servers = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
imports = [ ./nixfox ];
|
|
||||||
|
|
||||||
services.nginx.enable = true;
|
|
||||||
}
|
|
6
hosts/midas/user/default.nix
Normal file
6
hosts/midas/user/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
{
|
||||||
|
home-manager.users."${config.sysusers.main}".home = {
|
||||||
|
stateVersion = lib.mkForce config.system.stateVersion;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,8 +1,7 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
boot = {
|
boot = {
|
||||||
binfmt.emulatedSystems = [ "x86_64-linux" ];
|
|
||||||
kernelPackages = pkgs.linuxPackages_hardened;
|
kernelPackages = pkgs.linuxPackages_hardened;
|
||||||
loader.limine.enable = true;
|
loader.systemd-boot.enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,18 +6,18 @@
|
||||||
./filesystems
|
./filesystems
|
||||||
./hardware
|
./hardware
|
||||||
./services
|
./services
|
||||||
|
./user
|
||||||
|
../../modules/system
|
||||||
(modulesPath + "/profiles/headless.nix")
|
(modulesPath + "/profiles/headless.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostName = "prophet";
|
||||||
|
hostId = "97a21a38";
|
||||||
|
};
|
||||||
|
|
||||||
system = {
|
system = {
|
||||||
nixos.tags = [ "server" ];
|
server.enable = true;
|
||||||
stateVersion = "24.05";
|
stateVersion = "24.05";
|
||||||
};
|
};
|
||||||
|
|
||||||
deployment = {
|
|
||||||
buildOnTarget = true;
|
|
||||||
targetHost = "42f:2737:2aed:4dee:cbe4:3c73:1918:ad9b";
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostId = "97a21a38";
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
{ config, name, ... }:
|
{ config, disko, ... }:
|
||||||
{
|
{
|
||||||
|
imports = [ disko.nixosModules.disko ];
|
||||||
|
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk = {
|
disk = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = "/dev/disk/by-id/scsi-3609c958403f14cd29ff94a5a2e405cc2";
|
device = "/dev/nvme0n1";
|
||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
boot = {
|
boot = {
|
||||||
priority = 1;
|
|
||||||
size = "1M";
|
size = "1M";
|
||||||
type = "EF02";
|
type = "EF02";
|
||||||
};
|
};
|
||||||
|
@ -27,7 +28,7 @@
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "lvm_pv";
|
type = "lvm_pv";
|
||||||
vg = "${name}";
|
vg = "${config.networking.hostName}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -36,7 +37,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
lvm_vg = {
|
lvm_vg = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "lvm_vg";
|
type = "lvm_vg";
|
||||||
lvs = {
|
lvs = {
|
||||||
root = {
|
root = {
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
fileSystems = {
|
fileSystems."/persist/storage" = {
|
||||||
"/persist/storage" = {
|
device = "/dev/disk/by-uuid/ef465845-cc56-4db5-9260-8ae515eb025e";
|
||||||
device = "/dev/disk/by-uuid/ef465845-cc56-4db5-9260-8ae515eb025e";
|
fsType = "btrfs";
|
||||||
fsType = "btrfs";
|
options = [
|
||||||
options = [
|
"nofail"
|
||||||
"nofail"
|
"nosuid"
|
||||||
"nosuid"
|
];
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }:
|
{ lib, ... }:
|
||||||
{
|
{
|
||||||
boot.initrd = {
|
boot.initrd = {
|
||||||
availableKernelModules = [
|
availableKernelModules = [
|
||||||
|
@ -8,5 +8,5 @@
|
||||||
kernelModules = [ "dm-snapshot" ];
|
kernelModules = [ "dm-snapshot" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.hostPlatform = "aarch64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
||||||
}
|
}
|
||||||
|
|
1
hosts/prophet/id_ed25519.pub
Normal file
1
hosts/prophet/id_ed25519.pub
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDXU+mo+lkFaGBV7wuzrGnlII15YS3/MkkG3KmGJRT0j
|
|
@ -2,10 +2,9 @@
|
||||||
{
|
{
|
||||||
services = {
|
services = {
|
||||||
cloudflare-dyndns.enable = true;
|
cloudflare-dyndns.enable = true;
|
||||||
|
mailserver.enable = true;
|
||||||
mysql.enable = true;
|
mysql.enable = true;
|
||||||
nfs.server.enable = true;
|
nfs.server.enable = true;
|
||||||
nginx.enable = true;
|
nginx.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
mailserver.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|
6
hosts/prophet/user/default.nix
Normal file
6
hosts/prophet/user/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
{
|
||||||
|
home-manager.users."${config.sysusers.main}".home = {
|
||||||
|
stateVersion = lib.mkForce config.system.stateVersion;
|
||||||
|
};
|
||||||
|
}
|
12
hosts/redmond/boot/default.nix
Normal file
12
hosts/redmond/boot/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
boot = {
|
||||||
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
kernelParams = [
|
||||||
|
"radeon.cik_support=0"
|
||||||
|
"amdgpu.cik_support=1"
|
||||||
|
];
|
||||||
|
loader.systemd-boot.enable = true;
|
||||||
|
plymouth.enable = true;
|
||||||
|
};
|
||||||
|
}
|
19
hosts/redmond/default.nix
Normal file
19
hosts/redmond/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./boot
|
||||||
|
./disko
|
||||||
|
./filesystems
|
||||||
|
./hardware
|
||||||
|
./network
|
||||||
|
./user
|
||||||
|
../../modules/system
|
||||||
|
];
|
||||||
|
|
||||||
|
networking.hostName = "redmond";
|
||||||
|
|
||||||
|
system = {
|
||||||
|
desktop.enable = true;
|
||||||
|
stateVersion = "24.05";
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,15 +1,16 @@
|
||||||
{ config, name, ... }:
|
{ config, disko, ... }:
|
||||||
{
|
{
|
||||||
|
imports = [ disko.nixosModules.disko ];
|
||||||
|
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk = {
|
disk = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = "/dev/sda";
|
device = "/dev/nvme0n1";
|
||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
boot = {
|
boot = {
|
||||||
priority = 1;
|
|
||||||
size = "1M";
|
size = "1M";
|
||||||
type = "EF02";
|
type = "EF02";
|
||||||
};
|
};
|
||||||
|
@ -27,12 +28,12 @@
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "luks";
|
type = "luks";
|
||||||
name = "${name}-disk";
|
name = "${config.networking.hostName}-disk";
|
||||||
settings.allowDiscards = true;
|
settings.allowDiscards = true;
|
||||||
passwordFile = "/tmp/secret.key";
|
passwordFile = "/tmp/secret.key";
|
||||||
content = {
|
content = {
|
||||||
type = "lvm_pv";
|
type = "lvm_pv";
|
||||||
vg = "${name}";
|
vg = "${config.networking.hostName}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -42,7 +43,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
lvm_vg = {
|
lvm_vg = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "lvm_vg";
|
type = "lvm_vg";
|
||||||
lvs = {
|
lvs = {
|
||||||
root = {
|
root = {
|
||||||
|
@ -53,35 +54,25 @@
|
||||||
subvolumes = {
|
subvolumes = {
|
||||||
"/root" = {
|
"/root" = {
|
||||||
mountpoint = "/";
|
mountpoint = "/";
|
||||||
mountOptions = [
|
mountOptions = [ "compress=zstd" ];
|
||||||
"compress=zstd"
|
|
||||||
"ssd"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
"/prev" = {
|
"/prev" = {
|
||||||
mountpoint = "/prev";
|
mountpoint = "/prev";
|
||||||
mountOptions = [
|
mountOptions = [
|
||||||
"compress=zstd"
|
"compress=zstd"
|
||||||
"noexec"
|
"noexec"
|
||||||
"ssd"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"/nix" = {
|
"/nix" = {
|
||||||
mountpoint = "/nix";
|
mountpoint = "/nix";
|
||||||
mountOptions = [
|
mountOptions = [ "compress=zstd" ];
|
||||||
"compress=zstd"
|
|
||||||
"ssd"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Impermanence
|
# Impermanence
|
||||||
"/persist" = {
|
"/persist" = {
|
||||||
mountpoint = "/persist";
|
mountpoint = "/persist";
|
||||||
mountOptions = [
|
mountOptions = [ "compress=zstd" ];
|
||||||
"compress=zstd"
|
};
|
||||||
"ssd"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"/persist/.snapshots" = { };
|
"/persist/.snapshots" = { };
|
||||||
"/persist/home" = { };
|
"/persist/home" = { };
|
||||||
"/persist/home/.snapshots" = { };
|
"/persist/home/.snapshots" = { };
|
||||||
|
@ -89,7 +80,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
swap = {
|
swap = {
|
||||||
size = "2G";
|
size = "8G";
|
||||||
content = {
|
content = {
|
||||||
type = "swap";
|
type = "swap";
|
||||||
discardPolicy = "both";
|
discardPolicy = "both";
|
11
hosts/redmond/filesystems/default.nix
Normal file
11
hosts/redmond/filesystems/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
fileSystems."/mnt/Windrive" = {
|
||||||
|
device = "/dev/disk/by-uuid/582C6B802C6B57D0";
|
||||||
|
fsType = "ntfs";
|
||||||
|
options = [
|
||||||
|
"nodev"
|
||||||
|
"nosuid"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
23
hosts/redmond/hardware/default.nix
Normal file
23
hosts/redmond/hardware/default.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ config, lib, modulesPath, ... }:
|
||||||
|
{
|
||||||
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd = {
|
||||||
|
availableKernelModules = [
|
||||||
|
"ahci"
|
||||||
|
"ehci_pci"
|
||||||
|
"rtsx_usb_sdmmc"
|
||||||
|
"sd_mod"
|
||||||
|
"sdhci_pci"
|
||||||
|
"sr_mod"
|
||||||
|
"xhci_pci"
|
||||||
|
];
|
||||||
|
kernelModules = [ "dm-snapshot" ];
|
||||||
|
};
|
||||||
|
kernelModules = [ "kvm-amd" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
1
hosts/redmond/id_ed25519.pub
Normal file
1
hosts/redmond/id_ed25519.pub
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICHJ2Gy1Gaq96K85zOSfgWzGY0rIaUcqGS7Si5Nvzg+n
|
13
hosts/redmond/network/default.nix
Normal file
13
hosts/redmond/network/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
networking = {
|
||||||
|
interfaces."wlp1s0".ipv4.addresses = [{
|
||||||
|
address = "192.168.2.200";
|
||||||
|
prefixLength = 24;
|
||||||
|
}];
|
||||||
|
defaultGateway = {
|
||||||
|
address = "192.168.2.1";
|
||||||
|
interface = "wlp1s0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
7
hosts/redmond/user/default.nix
Normal file
7
hosts/redmond/user/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
{
|
||||||
|
home-manager.users."${config.sysusers.main}".home = {
|
||||||
|
desktop.enable = true;
|
||||||
|
stateVersion = lib.mkForce config.system.stateVersion;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,12 +1,19 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgsUnstable, ... }:
|
||||||
let
|
let
|
||||||
commonKernelParams = [
|
commonKernelParams = [
|
||||||
|
# VM/GPU passthrough
|
||||||
"amd_iommu=on"
|
"amd_iommu=on"
|
||||||
"iommu=pt"
|
"iommu=pt"
|
||||||
|
"nested=1"
|
||||||
|
|
||||||
|
# Isolate devices into IOMMU groups
|
||||||
|
"pcie_acs_override=downstream,multifunction"
|
||||||
|
"pci=routeirq"
|
||||||
];
|
];
|
||||||
in {
|
in {
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = pkgs.linuxPackages_6_14;
|
# Latest kernel and IOMMU isolation
|
||||||
|
kernelPackages = pkgsUnstable.linuxPackages_latest;
|
||||||
kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:1f82,10de:10fa" ];
|
kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:1f82,10de:10fa" ];
|
||||||
|
|
||||||
# Load into GPU before video driver
|
# Load into GPU before video driver
|
||||||
|
@ -21,5 +28,8 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
# Use second GPU on boot
|
# Use second GPU on boot
|
||||||
specialisation.gputwo.configuration.boot.kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:2504,10de:228e" ];
|
specialisation.gputwo.configuration = {
|
||||||
|
boot.kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:2504,10de:228e" ];
|
||||||
|
environment.sessionVariables.WLR_RENDERER = lib.mkForce "gles2";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,15 +5,18 @@
|
||||||
./disko
|
./disko
|
||||||
./filesystems
|
./filesystems
|
||||||
./hardware
|
./hardware
|
||||||
|
./network
|
||||||
./user
|
./user
|
||||||
|
../../modules/system
|
||||||
];
|
];
|
||||||
|
|
||||||
|
networking.hostName = "tower";
|
||||||
|
|
||||||
system = {
|
system = {
|
||||||
nixos.tags = [ "pc" ];
|
desktop.enable = true;
|
||||||
|
nvidia.enable = true;
|
||||||
stateVersion = "24.05";
|
stateVersion = "24.05";
|
||||||
};
|
};
|
||||||
|
|
||||||
deployment.targetHost = "4e4:535:9d47:f367:becd:6557:458d:5b1b";
|
|
||||||
|
|
||||||
virtualisation.libvirtd.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
{ config, name, ... }:
|
{ config, disko, ... }:
|
||||||
{
|
{
|
||||||
|
imports = [ disko.nixosModules.disko ];
|
||||||
|
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk = {
|
disk = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = "/dev/disk/by-id/nvme-INTEL_SSDPEKNU512GZ_BTKA20550TKC512A";
|
device = "/dev/nvme0n1";
|
||||||
|
imageSize = "32G";
|
||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
boot = {
|
boot = {
|
||||||
priority = 1;
|
|
||||||
size = "1M";
|
size = "1M";
|
||||||
type = "EF02";
|
type = "EF02";
|
||||||
};
|
};
|
||||||
|
@ -27,12 +29,12 @@
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "luks";
|
type = "luks";
|
||||||
name = "${name}-disk";
|
name = "${config.networking.hostName}-disk";
|
||||||
settings.allowDiscards = true;
|
settings.allowDiscards = true;
|
||||||
passwordFile = "/tmp/secret.key";
|
passwordFile = "/tmp/secret.key";
|
||||||
content = {
|
content = {
|
||||||
type = "lvm_pv";
|
type = "lvm_pv";
|
||||||
vg = "${name}";
|
vg = "${config.networking.hostName}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -42,7 +44,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
lvm_vg = {
|
lvm_vg = {
|
||||||
"${name}" = {
|
"${config.networking.hostName}" = {
|
||||||
type = "lvm_vg";
|
type = "lvm_vg";
|
||||||
lvs = {
|
lvs = {
|
||||||
root = {
|
root = {
|
||||||
|
|
|
@ -1,34 +1,26 @@
|
||||||
{ ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
# Games and such
|
# Games and such
|
||||||
"/mnt/Linux1" = {
|
"/mnt/Linux1" = {
|
||||||
device = "/dev/disk/by-label/Linux1";
|
device = "/dev/disk/by-uuid/b2901f8c-ffda-4b88-bb63-a9ea0c96ccb4";
|
||||||
fsType = "btrfs";
|
fsType = "ext4";
|
||||||
options = [
|
options = [
|
||||||
"nofail"
|
"nofail"
|
||||||
"nosuid"
|
"nosuid"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"/mnt/Linux2" = {
|
"/mnt/Linux2" = {
|
||||||
device = "/dev/disk/by-label/Linux2";
|
device = "/dev/disk/by-uuid/f08e4f38-162c-402f-ba2a-5925151b78bf";
|
||||||
fsType = "btrfs";
|
fsType = "ext4";
|
||||||
options = [
|
options = [
|
||||||
"nofail"
|
"nofail"
|
||||||
"nosuid"
|
"nosuid"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"/mnt/Linux3" = {
|
"/mnt/Linux3" = {
|
||||||
device = "/dev/disk/by-label/Linux3";
|
device = "/dev/disk/by-uuid/e7bc75bd-c371-4b28-b212-7be9b1fad339";
|
||||||
fsType = "btrfs";
|
fsType = "ext4";
|
||||||
options = [
|
|
||||||
"nofail"
|
|
||||||
"nosuid"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"/mnt/Linux4" = {
|
|
||||||
device = "/dev/disk/by-label/Linux4";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [
|
options = [
|
||||||
"nofail"
|
"nofail"
|
||||||
"nosuid"
|
"nosuid"
|
||||||
|
@ -45,5 +37,34 @@
|
||||||
"subvol=libvirt"
|
"subvol=libvirt"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Network mounts
|
||||||
|
"/home/${config.sysusers.main}/Network/Midas" = {
|
||||||
|
device = "11.0.0.1:/storage";
|
||||||
|
fsType = "nfs4";
|
||||||
|
options = [
|
||||||
|
"noauto"
|
||||||
|
"soft"
|
||||||
|
"x-systemd.automount"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"/home/${config.sysusers.main}/Network/Kitty" = {
|
||||||
|
device = "11.0.0.2:/storage/bun";
|
||||||
|
fsType = "nfs4";
|
||||||
|
options = [
|
||||||
|
"noauto"
|
||||||
|
"soft"
|
||||||
|
"x-systemd.automount"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"/home/${config.sysusers.main}/Network/Prophet" = {
|
||||||
|
device = "mx.nixfox.ca:/storage";
|
||||||
|
fsType = "nfs4";
|
||||||
|
options = [
|
||||||
|
"noauto"
|
||||||
|
"soft"
|
||||||
|
"x-systemd.automount"
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ modulesPath, ... }:
|
{ config, lib, modulesPath, ... }:
|
||||||
{
|
{
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
|
@ -16,9 +16,6 @@
|
||||||
kernelModules = [ "kvm-amd" ];
|
kernelModules = [ "kvm-amd" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
hardware.cpu.amd.updateMicrocode = true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
|
||||||
}
|
}
|
||||||
|
|
24
hosts/tower/network/default.nix
Normal file
24
hosts/tower/network/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
networking = {
|
||||||
|
interfaces."enp42s0".ipv4.addresses = [{
|
||||||
|
address = "10.2.0.100";
|
||||||
|
prefixLength = 8;
|
||||||
|
}];
|
||||||
|
defaultGateway = {
|
||||||
|
address = "10.1.0.1";
|
||||||
|
interface = "enp42s0";
|
||||||
|
};
|
||||||
|
|
||||||
|
vlans.internal = {
|
||||||
|
id=100;
|
||||||
|
interface="enp42s0";
|
||||||
|
};
|
||||||
|
interfaces.internal.ipv4.addresses = [{
|
||||||
|
address = "11.0.0.100";
|
||||||
|
prefixLength = 8;
|
||||||
|
}];
|
||||||
|
|
||||||
|
firewall.allowedUDPPorts = [ 27015 ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,4 +1,9 @@
|
||||||
{ config, ... }:
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
home-manager.users."${config.vars.mainUser}".home.guifull.enable = true;
|
home-manager.users."${config.sysusers.main}".home = {
|
||||||
|
desktop.enable = true;
|
||||||
|
gaming.enable = true;
|
||||||
|
production.enable = true;
|
||||||
|
stateVersion = lib.mkForce config.system.stateVersion;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,20 @@
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./profiles
|
|
||||||
./programs
|
./programs
|
||||||
./services
|
./services
|
||||||
./settings
|
./settings
|
||||||
|
./user
|
||||||
./variables
|
./variables
|
||||||
./wms
|
./wms
|
||||||
];
|
];
|
||||||
|
|
||||||
config.home.stateVersion = "25.05";
|
options.home = with lib; {
|
||||||
|
desktop.enable = mkEnableOption "Desktop programs and services";
|
||||||
|
gaming.enable = mkEnableOption "Gaming apps and programs";
|
||||||
|
production.enable = mkEnableOption "Apps for visual productivity";
|
||||||
|
school.enable = mkEnableOption "Apps for school and college";
|
||||||
|
};
|
||||||
|
|
||||||
|
config.home.stateVersion = "24.11";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
{
|
|
||||||
imports = [ ./guifull ];
|
|
||||||
|
|
||||||
options.home = with lib; {
|
|
||||||
desktop.enable = mkEnableOption "Desktop programs and services";
|
|
||||||
gaming.enable = mkEnableOption "Gaming apps and programs";
|
|
||||||
production.enable = mkEnableOption "Apps for visual productivity";
|
|
||||||
school.enable = mkEnableOption "Apps for school and college";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
{
|
|
||||||
options.home = with lib; {
|
|
||||||
guifull.enable = mkEnableOption "Enable most other GUI profiles";
|
|
||||||
};
|
|
||||||
|
|
||||||
config.home = lib.mkIf config.home.guifull.enable {
|
|
||||||
desktop.enable = true;
|
|
||||||
gaming.enable = true;
|
|
||||||
production.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -6,11 +6,11 @@
|
||||||
settings = {
|
settings = {
|
||||||
main = {
|
main = {
|
||||||
term = "xterm-256color";
|
term = "xterm-256color";
|
||||||
font = "${config.vars.fonts.mono}:size=14.7";
|
font = "${config.look.fonts.mono}:size=14.7";
|
||||||
};
|
};
|
||||||
colors = {
|
colors = {
|
||||||
alpha = "0.85";
|
alpha = "0.85";
|
||||||
background = config.vars.colors.dark;
|
background = config.look.colors.dark;
|
||||||
regular0 = "3f3f3f";
|
regular0 = "3f3f3f";
|
||||||
regular1 = "cc0000";
|
regular1 = "cc0000";
|
||||||
regular2 = "4e9a06";
|
regular2 = "4e9a06";
|
||||||
|
@ -29,10 +29,7 @@
|
||||||
bright7 = "ffffff";
|
bright7 = "ffffff";
|
||||||
};
|
};
|
||||||
cursor.style = "beam";
|
cursor.style = "beam";
|
||||||
key-bindings = {
|
key-bindings.search-start = "Control+f";
|
||||||
search-start = "Control+f";
|
|
||||||
show-urls-launch = "Control+s";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,78 +1,60 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, nur, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.home.desktop.enable {
|
config = lib.mkIf config.home.desktop.enable {
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.librewolf;
|
package = pkgs.librewolf;
|
||||||
profiles.default = {
|
profiles = let
|
||||||
isDefault = true;
|
# FireFox css, based on https://github.com/Dook97/firefox-qutebrowser-userchrome
|
||||||
|
themeFont = ''
|
||||||
|
--tab-font: '${config.look.fonts.main}';
|
||||||
|
--urlbar-font: '${config.look.fonts.main}';
|
||||||
|
'';
|
||||||
|
themeMain = ''
|
||||||
|
:root {
|
||||||
|
--tab-active-bg-color: #${config.look.colors.prime};
|
||||||
|
--tab-hover-bg-color: #${config.look.colors.accent};
|
||||||
|
--tab-inactive-bg-color: #${config.look.colors.dark};
|
||||||
|
--tab-active-fg-fallback-color: #FFFFFF;
|
||||||
|
--tab-inactive-fg-fallback-color: #${config.look.colors.text};
|
||||||
|
--urlbar-focused-bg-color: #${config.look.colors.dark};
|
||||||
|
--urlbar-not-focused-bg-color: #${config.look.colors.dark};
|
||||||
|
--toolbar-bgcolor: #${config.look.colors.dark} !important;
|
||||||
|
'';
|
||||||
|
themeAlt = ''
|
||||||
|
:root {
|
||||||
|
--tab-active-bg-color: #${config.look.colors.dark};
|
||||||
|
--tab-hover-bg-color: #${config.look.colors.accent};
|
||||||
|
--tab-inactive-bg-color: #${config.look.colors.prime};
|
||||||
|
--tab-active-fg-fallback-color: #${config.look.colors.text};
|
||||||
|
--tab-inactive-fg-fallback-color: #FFFFFF;
|
||||||
|
--urlbar-focused-bg-color: #${config.look.colors.prime};
|
||||||
|
--urlbar-not-focused-bg-color: #${config.look.colors.prime};
|
||||||
|
--toolbar-bgcolor: #${config.look.colors.prime} !important;
|
||||||
|
'';
|
||||||
|
|
||||||
containersForce = true;
|
# Profile settings
|
||||||
containers = {
|
commonExtensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
home = {
|
bitwarden
|
||||||
color = "purple";
|
darkreader
|
||||||
icon = "fruit";
|
return-youtube-dislikes
|
||||||
id = 1;
|
simple-tab-groups
|
||||||
};
|
sponsorblock
|
||||||
school = {
|
ublock-origin
|
||||||
color = "red";
|
violentmonkey
|
||||||
icon = "briefcase";
|
];
|
||||||
id = 2;
|
commonSearch = {
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
bookmarks = {
|
|
||||||
force = true;
|
force = true;
|
||||||
settings = [
|
default = "Ecosia";
|
||||||
{
|
order = [
|
||||||
name = "NixFox";
|
"Ecosia"
|
||||||
url = "https://www.nixfox.ca";
|
"NixPKGs"
|
||||||
}
|
"MyNixOS"
|
||||||
{
|
"YouTube"
|
||||||
name = "Luna";
|
"Spotify"
|
||||||
url = "https://www.lunamoonlight.xyz";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Freecorn";
|
|
||||||
url = "https://freecorn1854.win";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Bloxelcom";
|
|
||||||
url = "https://www.bloxelcom.net";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "YouTube";
|
|
||||||
url = "https://www.kernel.org";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "NixOS Wiki";
|
|
||||||
url = "https://nixos.wiki";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Kernel";
|
|
||||||
url = "https://www.kernel.org";
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
};
|
|
||||||
|
|
||||||
extensions = {
|
|
||||||
force = true;
|
|
||||||
packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
|
||||||
bitwarden
|
|
||||||
darkreader
|
|
||||||
return-youtube-dislikes
|
|
||||||
simple-tab-groups
|
|
||||||
sponsorblock
|
|
||||||
ublock-origin
|
|
||||||
violentmonkey
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
search = {
|
|
||||||
force = true;
|
|
||||||
default = "ecosia";
|
|
||||||
engines = {
|
engines = {
|
||||||
"ecosia" = {
|
"Ecosia" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://www.ecosia.org/search";
|
template = "https://www.ecosia.org/search";
|
||||||
params = [{
|
params = [{
|
||||||
|
@ -82,8 +64,7 @@
|
||||||
}];
|
}];
|
||||||
definedAliases = [ "@e" ];
|
definedAliases = [ "@e" ];
|
||||||
};
|
};
|
||||||
|
"NixPKGs" = {
|
||||||
"nixpkgs" = {
|
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://search.nixos.org/packages";
|
template = "https://search.nixos.org/packages";
|
||||||
params = [
|
params = [
|
||||||
|
@ -99,8 +80,7 @@
|
||||||
}];
|
}];
|
||||||
definedAliases = [ "@p" ];
|
definedAliases = [ "@p" ];
|
||||||
};
|
};
|
||||||
|
"MyNixOS" = {
|
||||||
"mynixos" = {
|
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://mynixos.com/search";
|
template = "https://mynixos.com/search";
|
||||||
params = [{
|
params = [{
|
||||||
|
@ -110,8 +90,7 @@
|
||||||
}];
|
}];
|
||||||
definedAliases = [ "@my" ];
|
definedAliases = [ "@my" ];
|
||||||
};
|
};
|
||||||
|
"YouTube" = {
|
||||||
"youtube" = {
|
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://www.youtube.com/results";
|
template = "https://www.youtube.com/results";
|
||||||
params = [{
|
params = [{
|
||||||
|
@ -121,17 +100,13 @@
|
||||||
}];
|
}];
|
||||||
definedAliases = [ "@y" ];
|
definedAliases = [ "@y" ];
|
||||||
};
|
};
|
||||||
|
"Spotify" = {
|
||||||
"spotify" = {
|
|
||||||
urls = [{ template = "https://open.spotify.com/search/{searchTerms}"; }];
|
urls = [{ template = "https://open.spotify.com/search/{searchTerms}"; }];
|
||||||
definedAliases = [ "@s" ];
|
definedAliases = [ "@s" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
commonSettings = {
|
||||||
settings = {
|
|
||||||
force = true;
|
|
||||||
|
|
||||||
# Generic
|
# Generic
|
||||||
"browser.download.useDownloadDir" = true;
|
"browser.download.useDownloadDir" = true;
|
||||||
"browser.shell.checkDefaultBrowser" = false;
|
"browser.shell.checkDefaultBrowser" = false;
|
||||||
|
@ -146,9 +121,9 @@
|
||||||
"webgl.disabled" = false;
|
"webgl.disabled" = false;
|
||||||
|
|
||||||
# Fonts
|
# Fonts
|
||||||
"font.name.monospace.x-western" = config.vars.fonts.mono;
|
"font.name.serif.x-western" = config.look.fonts.main;
|
||||||
"font.name.sans-serif.x-western" = config.vars.fonts.main;
|
"font.name.sans-serif.x-western" = config.look.fonts.main;
|
||||||
"font.name.serif.x-western" = config.vars.fonts.main;
|
"font.name.monospace.x-western" = config.look.fonts.mono;
|
||||||
|
|
||||||
# Theming and visibility
|
# Theming and visibility
|
||||||
"browser.aboutConfig.showWarning" = false;
|
"browser.aboutConfig.showWarning" = false;
|
||||||
|
@ -168,45 +143,47 @@
|
||||||
"browser.newtabpage.enabled" = false;
|
"browser.newtabpage.enabled" = false;
|
||||||
|
|
||||||
# Safe browsing
|
# Safe browsing
|
||||||
"browser.safebrowsing.blockedURIs.enabled" = false;
|
|
||||||
"browser.safebrowsing.downloads.enabled" = false;
|
"browser.safebrowsing.downloads.enabled" = false;
|
||||||
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
|
|
||||||
"browser.safebrowsing.downloads.remote.block_uncommon" = false;
|
|
||||||
"browser.safebrowsing.downloads.remote.enabled" = false;
|
"browser.safebrowsing.downloads.remote.enabled" = false;
|
||||||
|
"browser.safebrowsing.downloads.remote.block_uncommon" = false;
|
||||||
|
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
|
||||||
"browser.safebrowsing.malware.enabled" = false;
|
"browser.safebrowsing.malware.enabled" = false;
|
||||||
"browser.safebrowsing.phishing.enabled" = false;
|
"browser.safebrowsing.phishing.enabled" = false;
|
||||||
"browser.safebrowsing.provider.google.gethashURL" = false;
|
"browser.safebrowsing.blockedURIs.enabled" = false;
|
||||||
"browser.safebrowsing.provider.google.updateURL" = false;
|
|
||||||
"browser.safebrowsing.provider.google4.gethashURL" = false;
|
"browser.safebrowsing.provider.google4.gethashURL" = false;
|
||||||
"browser.safebrowsing.provider.google4.updateURL" = false;
|
"browser.safebrowsing.provider.google4.updateURL" = false;
|
||||||
|
"browser.safebrowsing.provider.google.gethashURL" = false;
|
||||||
|
"browser.safebrowsing.provider.google.updateURL" = false;
|
||||||
|
|
||||||
# Extensions
|
# Extensions
|
||||||
|
"extensions.pocket.enabled" = false;
|
||||||
"extensions.formautofill.addresses.enabled" = false;
|
"extensions.formautofill.addresses.enabled" = false;
|
||||||
"extensions.formautofill.creditCards.enabled" = false;
|
"extensions.formautofill.creditCards.enabled" = false;
|
||||||
"extensions.getAddons.showPane" = false;
|
"extensions.getAddons.showPane" = false;
|
||||||
"extensions.htmlaboutaddons.discover.enabled" = false;
|
"extensions.htmlaboutaddons.discover.enabled" = false;
|
||||||
"extensions.htmlaboutaddons.recommendations.enabled" = false;
|
"extensions.htmlaboutaddons.recommendations.enabled" = false;
|
||||||
"extensions.pocket.enabled" = false;
|
|
||||||
|
|
||||||
# Force extensions to work
|
# Force extensions to work
|
||||||
"extensions.autoDisableScopes" = 0;
|
"extensions.autoDisableScopes" = 0;
|
||||||
"extensions.enabledScopes" = 15;
|
"extensions.enabledScopes" = 15;
|
||||||
|
|
||||||
# Privacy
|
# Privacy
|
||||||
"privacy.clearOnShutdown.cookies" = false;
|
"privacy.resistFingerprinting" = true;
|
||||||
"privacy.clearOnShutdown_v2.cookiesAndStorage" = false;
|
"privacy.firstparty.isolate" = true;
|
||||||
"privacy.fingerprintingProtection" = true;
|
"privacy.fingerprintingProtection" = true;
|
||||||
"privacy.globalprivacycontrol.enabled" = true;
|
"privacy.globalprivacycontrol.enabled" = true;
|
||||||
"privacy.globalprivacycontrol.functionality.enabled" = true;
|
"privacy.globalprivacycontrol.functionality.enabled" = true;
|
||||||
"privacy.resistFingerprinting" = true;
|
"privacy.clearOnShutdown.cookies" = false;
|
||||||
|
"privacy.clearOnShutdown_v2.cookiesAndStorage" = false;
|
||||||
|
|
||||||
# Tracking URL blocking
|
# Tracking URL blocking
|
||||||
"urlclassifier.features.socialtracking.skipURLs" = "*.instagram.com, *.twitter.com, *.twimg.com";
|
|
||||||
"urlclassifier.trackingSkipURLs" = "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com";
|
"urlclassifier.trackingSkipURLs" = "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com";
|
||||||
|
"urlclassifier.features.socialtracking.skipURLs" = "*.instagram.com, *.twitter.com, *.twimg.com";
|
||||||
|
|
||||||
# Network tracking
|
# Network tracking
|
||||||
"browser.contentblocking.category" = "strict";
|
"browser.contentblocking.category" = "strict";
|
||||||
"network.cookie.cookieBehavior" = 1;
|
"network.cookie.cookieBehavior" = 1;
|
||||||
|
"network.cookie.sameSite.noneRequiresSecure" = true;
|
||||||
"network.http.referer.XOriginPolicy" = 2;
|
"network.http.referer.XOriginPolicy" = 2;
|
||||||
"network.http.referer.XOriginTrimmingPolicy" = 2;
|
"network.http.referer.XOriginTrimmingPolicy" = 2;
|
||||||
"network.http.referer.trimmingPolicy" = 2;
|
"network.http.referer.trimmingPolicy" = 2;
|
||||||
|
@ -232,28 +209,40 @@
|
||||||
"services.sync.engine.addresses.available" = false;
|
"services.sync.engine.addresses.available" = false;
|
||||||
"svg.context-properties.content.enabled" = true;
|
"svg.context-properties.content.enabled" = true;
|
||||||
};
|
};
|
||||||
|
in {
|
||||||
userChrome = ''
|
Main = {
|
||||||
:root {
|
id = 0;
|
||||||
--tab-active-bg-color: #${config.vars.colors.prime};
|
isDefault = true;
|
||||||
--tab-hover-bg-color: #${config.vars.colors.accent};
|
extensions = commonExtensions;
|
||||||
--tab-inactive-bg-color: #${config.vars.colors.dark};
|
search = commonSearch;
|
||||||
--tab-active-fg-fallback-color: #FFFFFF;
|
settings = commonSettings;
|
||||||
--tab-inactive-fg-fallback-color: #${config.vars.colors.text};
|
userChrome = ''
|
||||||
--urlbar-focused-bg-color: #${config.vars.colors.dark};
|
${themeMain}
|
||||||
--urlbar-not-focused-bg-color: #${config.vars.colors.dark};
|
${themeFont}
|
||||||
--toolbar-bgcolor: #${config.vars.colors.dark} !important;
|
|
||||||
--tab-font: '${config.vars.fonts.main}';
|
|
||||||
--urlbar-font: '${config.vars.fonts.main}';
|
|
||||||
${builtins.readFile ./quteFox.css}
|
${builtins.readFile ./quteFox.css}
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
|
Alt = {
|
||||||
|
id = 1;
|
||||||
|
extensions = commonExtensions;
|
||||||
|
search = commonSearch;
|
||||||
|
settings = commonSettings;
|
||||||
|
userChrome = ''
|
||||||
|
${themeAlt}
|
||||||
|
${themeFont}
|
||||||
|
${builtins.readFile ./quteFox.css}
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Symlinks to Librewolf
|
# Symlinks to Librewolf
|
||||||
home = {
|
home = {
|
||||||
file.".librewolf".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.mozilla/firefox";
|
file = {
|
||||||
persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "browser/.mozilla/firefox/default" ];
|
".librewolf".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.mozilla/firefox";
|
||||||
|
".mozilla/librewolf".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.mozilla/firefox";
|
||||||
|
};
|
||||||
|
persistence."/persist${config.home.homeDirectory}".directories = [ ".mozilla" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,8 +12,6 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories =
|
home.persistence."/persist${config.home.homeDirectory}".directories = [ ".config/obs-studio" ];
|
||||||
with lib; with config.home; with config.xdg;
|
|
||||||
[ "data/${removePrefix "${homeDirectory}/" configHome}/obs-studio" ];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,43 +3,62 @@
|
||||||
config = lib.mkIf config.home.desktop.enable {
|
config = lib.mkIf config.home.desktop.enable {
|
||||||
programs.thunderbird = {
|
programs.thunderbird = {
|
||||||
enable = config.home.desktop.enable;
|
enable = config.home.desktop.enable;
|
||||||
profiles.default = {
|
profiles = {
|
||||||
isDefault = true;
|
Main = {
|
||||||
settings = {
|
isDefault = true;
|
||||||
"general.autoScroll" = true;
|
userContent = ''
|
||||||
"browser.download.promptForDownload" = true;
|
*{scrollbar-width:none !important}
|
||||||
|
'';
|
||||||
|
settings = {
|
||||||
|
"general.autoScroll" = true;
|
||||||
|
|
||||||
"security.mixed_content.block_active_content" = true;
|
"security.mixed_content.block_active_content" = true;
|
||||||
"security.mixed_content.block_display_content" = true;
|
"security.mixed_content.block_display_content" = true;
|
||||||
|
|
||||||
"extensions.activeThemeID" = "thunderbird-compact-dark@mozilla.org";
|
"extensions.enabled" = false;
|
||||||
"extensions.allow-non-mpc-extensions" = false;
|
"extensions.autoDisableScopes" = 0;
|
||||||
"extensions.allowRemoteAddons" = false;
|
"extensions.allow-non-mpc-extensions" = false;
|
||||||
"extensions.blocklist.enabled" = true;
|
"extensions.installDistroAddons" = false;
|
||||||
"extensions.checkCompatibility" = false;
|
"extensions.getAddons.cache.enabled" = false;
|
||||||
"extensions.enabled" = false;
|
"extensions.blocklist.enabled" = true;
|
||||||
"extensions.getAddons.cache.enabled" = false;
|
"extensions.webextensions.userSelection" = false;
|
||||||
"extensions.ui.enabled" = false;
|
"extensions.checkCompatibility" = false;
|
||||||
"extensions.webextensions.userSelection" = false;
|
"extensions.allowRemoteAddons" = false;
|
||||||
|
"extensions.ui.enabled" = false;
|
||||||
|
"extensions.ui.useSystemTheme" = true;
|
||||||
|
"extensions.activeThemeID" = "thunderbird-compact-dark@mozilla.org";
|
||||||
|
|
||||||
"privacy.clearOnShutdown.cache" = true;
|
"privacy.clearOnShutdown.cookies" = true;
|
||||||
"privacy.clearOnShutdown.cookies" = true;
|
"privacy.clearOnShutdown.cache" = true;
|
||||||
"privacy.clearOnShutdown.formdata" = true;
|
"privacy.clearOnShutdown.formdata" = true;
|
||||||
"privacy.clearOnShutdown.siteSettings" = true;
|
"privacy.clearOnShutdown.siteSettings" = true;
|
||||||
"privacy.donottrackheader.enabled" = true;
|
"privacy.trackingprotection.enabled" = true;
|
||||||
"privacy.resistFingerprinting" = true;
|
"privacy.firstparty.isolate" = true;
|
||||||
"privacy.trackingprotection.enabled" = true;
|
"privacy.donottrackheader.enabled" = true;
|
||||||
|
"privacy.resistFingerprinting" = true;
|
||||||
|
|
||||||
"network.cookie.cookieBehavior" = 1;
|
"browser.history.enabled" = false;
|
||||||
"network.cookie.lifetimePolicy" = 2;
|
"browser.sessionstore.privacy_level" = 2;
|
||||||
"network.dns.dnsOverHttps.enabled" = true;
|
"browser.tabs.warnOnClose" = false;
|
||||||
"network.http.pipelining" = false;
|
"browser.shell.checkDefaultBrowser" = false;
|
||||||
"network.http.speculative-parallel-limit" = 0;
|
"browser.urlbar.suggest.openpage" = false;
|
||||||
"network.predictor.enabled" = false;
|
"browser.urlbar.suggest.bookmark" = false;
|
||||||
|
"browser.urlbar.suggest.history" = false;
|
||||||
|
"browser.urlbar.suggest.searches" = false;
|
||||||
|
"browser.urlbar.suggest.topsites" = false;
|
||||||
|
"browser.download.promptForDownload" = true;
|
||||||
|
|
||||||
|
"network.cookie.cookieBehavior" = 1;
|
||||||
|
"network.dns.dnsOverHttps.enabled" = true;
|
||||||
|
"network.http.speculative-parallel-limit" = 0;
|
||||||
|
"network.http.pipelining" = false;
|
||||||
|
"network.predictor.enabled" = false;
|
||||||
|
"network.cookie.lifetimePolicy" = 2;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "browser/.thunderbird/default" ];
|
home.persistence."/persist${config.home.homeDirectory}".directories = [ ".thunderbird" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, pkgsUnstable, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.home.desktop.enable {
|
config = lib.mkIf config.home.desktop.enable {
|
||||||
home.packages = with pkgs; [
|
home.packages = (with pkgs; [
|
||||||
ffmpeg
|
ffmpeg
|
||||||
ffmpegthumbnailer
|
ffmpegthumbnailer
|
||||||
playerctl
|
playerctl
|
||||||
puddletag
|
puddletag
|
||||||
pulsemixer
|
pulsemixer
|
||||||
spotdl
|
]) ++ (with pkgsUnstable; [ spotdl ]);
|
||||||
];
|
|
||||||
|
|
||||||
home.shellAliases.spotopus = "spotdl --m3u --format opus";
|
home.shellAliases.spotopus = "spotdl --m3u --format opus";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, pkgsUnstable, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; lib.mkIf config.home.gaming.enable [
|
config = lib.mkIf config.home.gaming.enable {
|
||||||
azahar
|
home.packages = (with pkgs; [
|
||||||
cemu
|
cemu
|
||||||
dolphin-emu-beta
|
dolphin-emu-beta
|
||||||
duckstation
|
duckstation
|
||||||
pcsx2
|
pcsx2
|
||||||
ryubing
|
]) ++ (with pkgsUnstable; [
|
||||||
];
|
azahar
|
||||||
|
ryubing
|
||||||
|
]);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,22 +8,11 @@
|
||||||
steam
|
steam
|
||||||
steam-run-free
|
steam-run-free
|
||||||
];
|
];
|
||||||
persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}" =
|
persistence."/persist${config.home.homeDirectory}".directories = [
|
||||||
with lib; with config.home; with config.xdg; {
|
".config/heroic"
|
||||||
directories = [
|
".local/share/PrismLauncher"
|
||||||
"games/${removePrefix "${homeDirectory}/" "Games"}"
|
".local/share/Steam"
|
||||||
"games/${removePrefix "${homeDirectory}/" configHome}/heroic"
|
];
|
||||||
"games/${removePrefix "${homeDirectory}/" dataHome}/PrismLauncher"
|
|
||||||
{
|
|
||||||
directory = "games/.steam";
|
|
||||||
method = "symlink";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
directory = "games/${removePrefix "${homeDirectory}/" dataHome}/Steam";
|
|
||||||
method = "symlink";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.allowUnfreePackages = [
|
nixpkgs.allowUnfreePackages = [
|
||||||
|
|
|
@ -6,10 +6,9 @@
|
||||||
qbittorrent
|
qbittorrent
|
||||||
vesktop
|
vesktop
|
||||||
];
|
];
|
||||||
persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories =
|
persistence."/persist${config.home.homeDirectory}".directories = [
|
||||||
with lib; with config.home; with config.xdg; [
|
".config/qBittorrent"
|
||||||
"data/${removePrefix "${homeDirectory}/" configHome}/qBittorrent"
|
".config/vesktop"
|
||||||
"data/${removePrefix "${homeDirectory}/" configHome}/vesktop"
|
];
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
bc
|
bc
|
||||||
colmena
|
|
||||||
ncdu
|
ncdu
|
||||||
p7zip
|
p7zip
|
||||||
vimv
|
vimv
|
||||||
|
|
|
@ -8,11 +8,10 @@
|
||||||
blender_4_4
|
blender_4_4
|
||||||
krita
|
krita
|
||||||
];
|
];
|
||||||
persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories =
|
persistence."/persist${config.home.homeDirectory}".directories = [
|
||||||
with lib; with config.home; with config.xdg; [
|
".config/audacity"
|
||||||
"data/${removePrefix "${homeDirectory}/" configHome}/audacity"
|
".config/blender"
|
||||||
"data/${removePrefix "${homeDirectory}/" configHome}/blender"
|
".local/share/krita"
|
||||||
"data/${removePrefix "${homeDirectory}/" dataHome}/krita"
|
];
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,16 +6,13 @@
|
||||||
globalprotect-openconnect
|
globalprotect-openconnect
|
||||||
gpauth
|
gpauth
|
||||||
remmina
|
remmina
|
||||||
|
teams-for-linux
|
||||||
|
];
|
||||||
|
persistence."/persist${config.home.homeDirectory}".directories = [
|
||||||
|
".cache/gpclient"
|
||||||
|
".config/com.yuezk.qt"
|
||||||
|
".config/remmina"
|
||||||
|
".config/teams-for-linux"
|
||||||
];
|
];
|
||||||
|
|
||||||
shellAliases.seneca = "ssh jhampton1@matrix.senecapolytechnic.ca";
|
|
||||||
|
|
||||||
persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories =
|
|
||||||
with lib; with config.home; with config.xdg; [
|
|
||||||
"school/${removePrefix "${homeDirectory}/" cacheHome}/gpclient"
|
|
||||||
"school/${removePrefix "${homeDirectory}/" configHome}/com.yuezk.qt"
|
|
||||||
"school/${removePrefix "${homeDirectory}/" configHome}/remmina"
|
|
||||||
"school/.vmware"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,15 +7,14 @@
|
||||||
./eza
|
./eza
|
||||||
./fastfetch
|
./fastfetch
|
||||||
./git
|
./git
|
||||||
./gpg
|
|
||||||
./lazygit
|
./lazygit
|
||||||
./ncmpcpp
|
./ncmpcpp
|
||||||
./neovim
|
./neovim
|
||||||
|
./nh
|
||||||
./nix-index
|
./nix-index
|
||||||
./ranger
|
./ranger
|
||||||
./ssh
|
./tmux
|
||||||
./yt-dlp
|
./yt-dlp
|
||||||
./zellij
|
|
||||||
./zoxide
|
./zoxide
|
||||||
./zsh
|
./zsh
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,11 +1,7 @@
|
||||||
{ config, lib, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories =
|
|
||||||
with lib; with config.home; with config.xdg;
|
|
||||||
[ "data/${removePrefix "${homeDirectory}/" dataHome}/direnv" ];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,97 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||||
|
"logo": {
|
||||||
|
"source": "xenia",
|
||||||
|
"color": {
|
||||||
|
"1": "1;97",
|
||||||
|
"2": "red",
|
||||||
|
"3": "yellow"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"separator": " \u001b[33m ",
|
||||||
|
"color": "red"
|
||||||
|
},
|
||||||
|
"modules": [
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": "\u001b[1m—————————————————————————————————————"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "host",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cpu",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "gpu",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "disk",
|
||||||
|
"folders": "/",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "memory",
|
||||||
|
"format": "{/1}{-}{/}{/2}{-}{/}{} / {}",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "display",
|
||||||
|
"compactType": "original",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": "\u001b[1m—————————————————————————————————————"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "os",
|
||||||
|
"format": "{3} {12}",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "kernel",
|
||||||
|
"format": "{1} {2}",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wm",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "terminal",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "packages",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "uptime",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"text": "date -d @$(stat -c %W /persist) '+%a %b %d %r %Y'",
|
||||||
|
"key": " "
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": "\u001b[1m—————————————————————————————————————"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom",
|
||||||
|
"format": "\u001b[90m \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,108 +1,8 @@
|
||||||
{ ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
imports = [ ./smallfetch ];
|
programs.fastfetch.enable = true;
|
||||||
|
|
||||||
programs.fastfetch = {
|
home.packages = with pkgs; [ (writeScriptBin "smallfetch" "fastfetch --config ~/.config/fastfetch/small.jsonc") ];
|
||||||
enable = true;
|
|
||||||
settings = with builtins; {
|
|
||||||
logo = {
|
|
||||||
source = "xenia";
|
|
||||||
color = {
|
|
||||||
"1" = "1;97";
|
|
||||||
"2" = "red";
|
|
||||||
"3" = "yellow";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
display = {
|
xdg.configFile."fastfetch".source = ./configs;
|
||||||
separator = fromJSON ''" \u001b[33m "'';
|
|
||||||
color = "red";
|
|
||||||
};
|
|
||||||
|
|
||||||
modules = [
|
|
||||||
{
|
|
||||||
type = "custom";
|
|
||||||
format = fromJSON ''"\u001b[1m—————————————————————————————————————"'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "host";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "cpu";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "gpu";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "disk";
|
|
||||||
folders = "/";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "memory";
|
|
||||||
format = "{/1}{-}{/}{/2}{-}{/}{} / {}";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "display";
|
|
||||||
compactType = "original";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
type = "custom";
|
|
||||||
format = fromJSON ''"\u001b[1m—————————————————————————————————————"'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "os";
|
|
||||||
format = "{3} {12}";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "kernel";
|
|
||||||
format = "{1} {2}";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "wm";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "shell";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "terminal";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "packages";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "uptime";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "command";
|
|
||||||
text = "date -d @$(stat -c %W /persist) '+%a %b %d %r %Y'";
|
|
||||||
key = " ";
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
type = "custom";
|
|
||||||
format = fromJSON ''"\u001b[1m—————————————————————————————————————"'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "custom";
|
|
||||||
format = fromJSON ''"\u001b[90m \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m"'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.shellAliases.ff = "clear && fastfetch";
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; with lib; with config.home; with config.xdg; [
|
|
||||||
(writeScriptBin "smallfetch" ''
|
|
||||||
#!/bin/sh
|
|
||||||
fastfetch --config $HOME/${removePrefix "${homeDirectory}/" configHome}/fastfetch/small.jsonc
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
|
|
||||||
xdg.configFile."fastfetch/small.jsonc".source = ./small.jsonc;
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
services.gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSshSupport = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.gpg.enable = true;
|
|
||||||
|
|
||||||
home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "secure/.gnupg" ];
|
|
||||||
}
|
|
|
@ -1,7 +1,5 @@
|
||||||
{ config, lib, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
programs.lazygit.enable = true;
|
programs.lazygit.enable = true;
|
||||||
home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories =
|
home.persistence."/persist${config.home.homeDirectory}".directories = [ ".local/state/lazygit" ];
|
||||||
with lib; with config.home; with config.xdg;
|
|
||||||
[ "state/${removePrefix "${homeDirectory}/" stateHome}/lazygit" ];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs.neovim = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -92,8 +92,8 @@
|
||||||
let g:airline_theme='onedark'
|
let g:airline_theme='onedark'
|
||||||
let g:airline#extensions#tabline#enabled = 1
|
let g:airline#extensions#tabline#enabled = 1
|
||||||
hi Normal guibg=none
|
hi Normal guibg=none
|
||||||
hi Visual guibg=#${config.vars.colors.mid}
|
hi Visual guibg=#${config.look.colors.mid}
|
||||||
hi Pmenu guibg=#${config.vars.colors.mid}
|
hi Pmenu guibg=#${config.look.colors.mid}
|
||||||
hi EndOfBuffer guibg=none
|
hi EndOfBuffer guibg=none
|
||||||
hi LineNr guibg=none
|
hi LineNr guibg=none
|
||||||
lua require'colorizer'.setup()
|
lua require'colorizer'.setup()
|
||||||
|
@ -103,7 +103,7 @@
|
||||||
set mouse=a
|
set mouse=a
|
||||||
|
|
||||||
set undofile
|
set undofile
|
||||||
set undodir=${config.xdg.dataHome}/nvim/undo
|
set undodir=$HOME/.local/share/nvim/undo
|
||||||
set undolevels=100
|
set undolevels=100
|
||||||
set undoreload=10000
|
set undoreload=10000
|
||||||
|
|
||||||
|
@ -115,8 +115,6 @@
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
sessionVariables.MANPAGER = "nvim +Man!";
|
sessionVariables.MANPAGER = "nvim +Man!";
|
||||||
persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories =
|
persistence."/persist${config.home.homeDirectory}".directories = [ ".local/share/nvim/undo" ];
|
||||||
with lib; with config.home; with config.xdg;
|
|
||||||
[ "state/${removePrefix "${homeDirectory}/" dataHome}/nvim/undo" ];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
7
modules/home/programs/terminal/nh/default.nix
Normal file
7
modules/home/programs/terminal/nh/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
programs.nh = {
|
||||||
|
enable = true;
|
||||||
|
flake = "${config.home.homeDirectory}/Projects/nixos-config";
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,8 +1,6 @@
|
||||||
{ config, lib, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
programs.nix-index.enable = true;
|
programs.nix-index.enable = true;
|
||||||
|
|
||||||
home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories =
|
home.persistence."/persist${config.home.homeDirectory}".directories = [ ".cache/nix-index" ];
|
||||||
with lib; with config.home; with config.xdg;
|
|
||||||
[ "state/${removePrefix "${homeDirectory}/" cacheHome}/nix-index" ];
|
|
||||||
}
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue