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
|
||||
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.
|
||||
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.
|
||||
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": {
|
||||
"blender": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"unstable"
|
||||
]
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"dir": "blender",
|
||||
|
@ -39,12 +37,18 @@
|
|||
}
|
||||
},
|
||||
"crane": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748970125,
|
||||
"narHash": "sha256-UDyigbDGv8fvs9aS95yzFfOKkEjx1LO3PL3DsKopohA=",
|
||||
"lastModified": 1717535930,
|
||||
"narHash": "sha256-1hZ/txnbd/RmiBPNUs7i8UQw2N89uAK3UzrGAWdnFfU=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "323b5746d89e04b22554b061522dfce9e4c49b18",
|
||||
"rev": "55e7754ec31dac78980c8be45f8a28e80e370946",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -60,11 +64,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749436314,
|
||||
"narHash": "sha256-CqmqU5FRg5AadtIkxwu8ulDSOSoIisUMZRLlcED3Q5w=",
|
||||
"lastModified": 1746411114,
|
||||
"narHash": "sha256-mLlkVX1kKbAa/Ns5u26wDYw4YW4ziMFM21fhtRmfirU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "dfa4d1b9c39c0342ef133795127a3af14598017a",
|
||||
"rev": "b5d1320ebc2f34dbea4655f95167f55e2130cdb3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -76,11 +80,11 @@
|
|||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -92,11 +96,11 @@
|
|||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -108,11 +112,11 @@
|
|||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"lastModified": 1733328505,
|
||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -129,11 +133,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749398372,
|
||||
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
||||
"lastModified": 1717285511,
|
||||
"narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
||||
"rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -168,11 +172,11 @@
|
|||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -199,32 +203,6 @@
|
|||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -247,28 +225,6 @@
|
|||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -276,16 +232,16 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749154018,
|
||||
"narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
|
||||
"lastModified": 1746171682,
|
||||
"narHash": "sha256-EyXUNSa+H+YvGVuQJP1nZskXAowxKYp79RNUsNdQTj4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
|
||||
"rev": "50eee705bbdbac942074a8c120e8194185633675",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.05",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -313,11 +269,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749495634,
|
||||
"narHash": "sha256-NPifVq2XZGRCsLBoUt6M5YUTiIh23+ubq57w7mSODt8=",
|
||||
"lastModified": 1746158343,
|
||||
"narHash": "sha256-i/1os9oEq0m/Da4FTdSqKUdI4+wzrvoDTuk1/dHSVDc=",
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"rev": "c40d2f31f92571bf341497884174a132829ef0fc",
|
||||
"rev": "8b45a8efb2829adf2996b51965ada1e4620631ac",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -331,6 +287,7 @@
|
|||
"crane": "crane",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"stable"
|
||||
],
|
||||
|
@ -338,15 +295,16 @@
|
|||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749471908,
|
||||
"narHash": "sha256-uGfPqd43KTomeIVWUzHu3hGLWFsqYibhWLt2OaRic28=",
|
||||
"lastModified": 1718178907,
|
||||
"narHash": "sha256-eSZyrQ9uoPB9iPQ8Y5H7gAmAgAvCw3InStmU3oEjqsE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "lanzaboote",
|
||||
"rev": "00292388ad3b497763b81568d6ee5e1c4a2bcf85",
|
||||
"rev": "b627ccd97d0159214cee5c7db1412b75e4be6086",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "v0.4.1",
|
||||
"repo": "lanzaboote",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -355,23 +313,22 @@
|
|||
"inputs": {
|
||||
"blobs": "blobs",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"git-hooks": "git-hooks",
|
||||
"nixpkgs": [
|
||||
"stable"
|
||||
],
|
||||
"nixpkgs-25_05": "nixpkgs-25_05"
|
||||
"nixpkgs-24_11": "nixpkgs-24_11"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747965231,
|
||||
"narHash": "sha256-BW3ktviEhfCN/z3+kEyzpDKAI8qFTwO7+S0NVA0C90o=",
|
||||
"lastModified": 1746469806,
|
||||
"narHash": "sha256-kL3cc25sc0x+6gBZYjuE4566RT1E3XLQs4V8sl7D+VE=",
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"repo": "nixos-mailserver",
|
||||
"rev": "53007af63fade28853408370c4c600a63dd97f41",
|
||||
"rev": "14857a0309d7bbdf7c51bbfa309d0d13448ae77e",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"ref": "nixos-25.05",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixos-mailserver",
|
||||
"type": "gitlab"
|
||||
}
|
||||
|
@ -380,16 +337,14 @@
|
|||
"inputs": {
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": [
|
||||
"stable"
|
||||
]
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749607590,
|
||||
"narHash": "sha256-vvu9zoaYuuPIGG9YKRBMNqOELGN+x2qHbEK6PrZ/Ky0=",
|
||||
"lastModified": 1746324578,
|
||||
"narHash": "sha256-VUSIQ2W1Q3YgGvX3M4jPwIi3iIApdPHabhdrVjVgnwE=",
|
||||
"owner": "Infinidoge",
|
||||
"repo": "nix-minecraft",
|
||||
"rev": "83aaf9c7e3caa39608992e723cfb997624920a35",
|
||||
"rev": "9e7fd83ba3b25b6f03561a5b7f8ea74b70296816",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -420,18 +375,64 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-25_05": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1747610100,
|
||||
"narHash": "sha256-rpR5ZPMkWzcnCcYYo3lScqfuzEw5Uyfh+R0EKZfroAc=",
|
||||
"lastModified": 1733808091,
|
||||
"narHash": "sha256-KWwINTQelKOoQgrXftxoqxmKFZb9pLVfnRvK270nkVk=",
|
||||
"owner": "NixOS",
|
||||
"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"
|
||||
},
|
||||
"original": {
|
||||
"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",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -445,11 +446,11 @@
|
|||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749614785,
|
||||
"narHash": "sha256-yn6eDwnUr9vZYpneg+XNh0/tC1KA9a+yXxvFMEzOfco=",
|
||||
"lastModified": 1746568792,
|
||||
"narHash": "sha256-e3QkOhtYJUlMLGCVUmQWULtVDokSJqud0VmPZoRj4s0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "14f8439ad1190d3dd09f9fcc6a033d9710d68806",
|
||||
"rev": "29d16321b0f48ad0d24c3eaf5656adfaaf99d19e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -468,14 +469,15 @@
|
|||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
]
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747372754,
|
||||
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
||||
"lastModified": 1717664902,
|
||||
"narHash": "sha256-7XfBuLULizXjXfBYy/VV+SpYMHreNRHk9nKMsm1bgb4=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
||||
"rev": "cc4d466cb1254af050ff7bdf47f6d404a7c646d1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -488,7 +490,6 @@
|
|||
"inputs": {
|
||||
"blender": "blender",
|
||||
"disko": "disko",
|
||||
"flake-utils": "flake-utils",
|
||||
"hm": "hm",
|
||||
"impermanence": "impermanence",
|
||||
"jovian": "jovian",
|
||||
|
@ -502,17 +503,21 @@
|
|||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"lanzaboote",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749436897,
|
||||
"narHash": "sha256-OkDtaCGQQVwVFz5HWfbmrMJR99sFIMXHCHEYXzUJEJY=",
|
||||
"lastModified": 1717813066,
|
||||
"narHash": "sha256-wqbRwq3i7g5EHIui0bIi84mdqZ/It1AXBSLJ5tafD28=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "e7876c387e35dc834838aff254d8e74cf5bd4f19",
|
||||
"rev": "6dc3e45fe4aee36efeed24d64fc68b1f989d5465",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -523,16 +528,16 @@
|
|||
},
|
||||
"stable": {
|
||||
"locked": {
|
||||
"lastModified": 1750005367,
|
||||
"narHash": "sha256-h/aac1dGLhS3qpaD2aZt25NdKY7b+JT0ZIP2WuGsJMU=",
|
||||
"lastModified": 1746422338,
|
||||
"narHash": "sha256-NTtKOTLQv6dPfRe00OGSywg37A1FYqldS6xiNmqBUYc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6c64dabd3aa85e0c02ef1cdcb6e1213de64baee3",
|
||||
"rev": "5b35d248e9206c1f3baf8de6a7683fee126364aa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-25.05",
|
||||
"ref": "nixos-24.11",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
|
@ -589,11 +594,11 @@
|
|||
},
|
||||
"unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1749794982,
|
||||
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
|
||||
"lastModified": 1746461020,
|
||||
"narHash": "sha256-7+pG1I9jvxNlmln4YgnlW4o+w0TZX24k688mibiFDUE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
|
||||
"rev": "3730d8a308f94996a9ba7c7138ede69c1b9ac4ae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
119
flake.nix
119
flake.nix
|
@ -1,12 +1,9 @@
|
|||
{
|
||||
inputs = {
|
||||
# General inputs
|
||||
stable.url = "nixpkgs/nixos-25.05";
|
||||
stable.url = "nixpkgs/nixos-24.11";
|
||||
unstable.url = "nixpkgs/nixos-unstable";
|
||||
|
||||
# Flake helpers
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
|
||||
# System inputs
|
||||
disko = {
|
||||
url = "github:nix-community/disko";
|
||||
|
@ -16,7 +13,7 @@
|
|||
impermanence.url = "github:nix-community/impermanence";
|
||||
|
||||
lanzaboote = {
|
||||
url = "github:nix-community/lanzaboote";
|
||||
url = "github:nix-community/lanzaboote/v0.4.1";
|
||||
inputs.nixpkgs.follows = "stable";
|
||||
};
|
||||
|
||||
|
@ -28,98 +25,72 @@
|
|||
|
||||
# Service inputs
|
||||
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";
|
||||
};
|
||||
|
||||
minecraft = {
|
||||
url = "github:Infinidoge/nix-minecraft";
|
||||
inputs.nixpkgs.follows = "stable";
|
||||
};
|
||||
minecraft.url = "github:Infinidoge/nix-minecraft";
|
||||
|
||||
# Home inputs
|
||||
hm = {
|
||||
url = "github:nix-community/home-manager/release-25.05";
|
||||
url = "github:nix-community/home-manager/release-24.11";
|
||||
inputs.nixpkgs.follows = "stable";
|
||||
};
|
||||
|
||||
nur = {
|
||||
url = "github:nix-community/NUR";
|
||||
inputs.nixpkgs.follows = "unstable";
|
||||
};
|
||||
|
||||
# Specific apps
|
||||
blender = {
|
||||
url = "github:edolstra/nix-warez?dir=blender";
|
||||
inputs.nixpkgs.follows = "unstable";
|
||||
};
|
||||
blender.url = "github:edolstra/nix-warez?dir=blender";
|
||||
};
|
||||
|
||||
outputs = inputs: with inputs;
|
||||
outputs = {
|
||||
stable,
|
||||
unstable,
|
||||
|
||||
{
|
||||
colmena = {
|
||||
meta = {
|
||||
# Info
|
||||
description = "The Bun Systems";
|
||||
name = "bunhive";
|
||||
disko,
|
||||
impermanence,
|
||||
lanzaboote,
|
||||
|
||||
# NixPKGs
|
||||
nixpkgs = import stable {
|
||||
overlays = [
|
||||
blender.overlays.default
|
||||
minecraft.overlay
|
||||
];
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
mailserver,
|
||||
minecraft,
|
||||
|
||||
specialArgs = inputs;
|
||||
jovian,
|
||||
|
||||
# Use a different Nixpkgs import on some systems
|
||||
nodeNixpkgs.jupiter = import unstable { system = "x86_64-linux"; };
|
||||
};
|
||||
hm,
|
||||
nur,
|
||||
blender,
|
||||
...
|
||||
}@inputs:
|
||||
|
||||
# Import the default config to all hosts
|
||||
defaults.imports = [
|
||||
./modules/system
|
||||
disko.nixosModules.disko
|
||||
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 ];
|
||||
let
|
||||
mkNix = modules: channel: channel.lib.nixosSystem {
|
||||
inherit modules;
|
||||
specialArgs = inputs;
|
||||
};
|
||||
}
|
||||
|
||||
// flake-utils.lib.eachDefaultSystemPassThrough (system: let
|
||||
mkHome = extraModules: hm.lib.homeManagerConfiguration {
|
||||
modules = [
|
||||
./modules/home
|
||||
{ targets.genericLinux.enable = true; }
|
||||
] ++ extraModules;
|
||||
mkHome = modules: channel: arch: hm.lib.homeManagerConfiguration {
|
||||
inherit modules;
|
||||
pkgs = builtins.getAttr arch channel.legacyPackages;
|
||||
extraSpecialArgs = inputs;
|
||||
pkgs = builtins.getAttr system stable.legacyPackages;
|
||||
};
|
||||
in {
|
||||
homeConfigurations = {
|
||||
default = mkHome [ ];
|
||||
desktop = mkHome [{ home.guifull.enable = true; }];
|
||||
# nh os switch /path -H host
|
||||
nixosConfigurations = {
|
||||
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 = {
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
lanzaboote.enable = true;
|
||||
plymouth.enable = true;
|
||||
};
|
||||
|
|
|
@ -3,14 +3,16 @@
|
|||
imports = [
|
||||
./boot
|
||||
./disko
|
||||
./filesystems
|
||||
./hardware
|
||||
./user
|
||||
../../modules/system
|
||||
];
|
||||
|
||||
networking.hostName = "intuos";
|
||||
|
||||
system = {
|
||||
nixos.tags = [ "pc" ];
|
||||
desktop.enable = true;
|
||||
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 = {
|
||||
disk = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "disk";
|
||||
device = "/dev/sda";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
boot = {
|
||||
priority = 1;
|
||||
size = "1M";
|
||||
type = "EF02";
|
||||
};
|
||||
|
@ -27,12 +28,12 @@
|
|||
size = "100%";
|
||||
content = {
|
||||
type = "luks";
|
||||
name = "${name}-disk";
|
||||
name = "${config.networking.hostName}-disk";
|
||||
settings.allowDiscards = true;
|
||||
passwordFile = "/tmp/secret.key";
|
||||
content = {
|
||||
type = "lvm_pv";
|
||||
vg = "${name}";
|
||||
vg = "${config.networking.hostName}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -42,7 +43,7 @@
|
|||
};
|
||||
|
||||
lvm_vg = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "lvm_vg";
|
||||
lvs = {
|
||||
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") ];
|
||||
|
||||
|
@ -16,7 +16,6 @@
|
|||
kernelModules = [ "kvm-intel" ];
|
||||
};
|
||||
|
||||
hardware.cpu.intel.updateMicrocode = true;
|
||||
|
||||
nixpkgs.hostPlatform = "x86_64-linux";
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{ config, ... }:
|
||||
{ config, lib, ... }:
|
||||
{
|
||||
home-manager.users."${config.vars.mainUser}".home = {
|
||||
home-manager.users."${config.sysusers.main}".home = {
|
||||
desktop.enable = true;
|
||||
production.enable = true;
|
||||
stateVersion = lib.mkForce config.system.stateVersion;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{ pkgsStable, ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
boot = {
|
||||
kernelPackages = pkgsStable.linuxPackages_6_14;
|
||||
loader.limine.enable = true;
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
loader.systemd-boot.enable = true;
|
||||
plymouth.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -8,14 +8,14 @@
|
|||
./jovian
|
||||
./services
|
||||
./user
|
||||
../../modules/system
|
||||
];
|
||||
|
||||
networking.hostName = "jupiter";
|
||||
|
||||
system = {
|
||||
nixos.tags = [ "pc" ];
|
||||
desktop.enable = true;
|
||||
steamdeck.enable = true;
|
||||
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 = {
|
||||
disk = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "disk";
|
||||
device = "/dev/nvme0n1";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
boot = {
|
||||
priority = 1;
|
||||
size = "1M";
|
||||
type = "EF02";
|
||||
};
|
||||
|
@ -27,7 +28,7 @@
|
|||
size = "100%";
|
||||
content = {
|
||||
type = "lvm_pv";
|
||||
vg = "${name}";
|
||||
vg = "${config.networking.hostName}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -36,7 +37,7 @@
|
|||
};
|
||||
|
||||
lvm_vg = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "lvm_vg";
|
||||
lvs = {
|
||||
root = {
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
fileSystems = {
|
||||
"/mnt/Games" = {
|
||||
device = "/dev/disk/by-uuid/cb109a85-846d-4417-9c50-a2279bd20803";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"nofail"
|
||||
"nosuid"
|
||||
];
|
||||
};
|
||||
fileSystems."/mnt/Games" = {
|
||||
device = "/dev/disk/by-uuid/cb109a85-846d-4417-9c50-a2279bd20803";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"nofail"
|
||||
"nosuid"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ modulesPath, ... }:
|
||||
{ config, lib, modulesPath, ... }:
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
|
||||
|
@ -15,7 +15,6 @@
|
|||
kernelModules = [ "kvm-amd" ];
|
||||
};
|
||||
|
||||
hardware.cpu.amd.updateMicrocode = true;
|
||||
|
||||
nixpkgs.hostPlatform = "x86_64-linux";
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
{ 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 = {
|
||||
steam = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
user = config.vars.mainUser;
|
||||
desktopSession = "gnome";
|
||||
user = config.sysusers.main;
|
||||
};
|
||||
decky-loader = {
|
||||
enable = true;
|
||||
|
@ -18,46 +22,80 @@
|
|||
};
|
||||
};
|
||||
|
||||
# Evil kernel
|
||||
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 = {
|
||||
networkmanager.enable = true;
|
||||
wireless.enable = lib.mkForce false;
|
||||
};
|
||||
|
||||
# Disable conflicting services
|
||||
services = {
|
||||
keyd.enable = lib.mkForce false;
|
||||
tlp.enable = lib.mkForce false;
|
||||
environment = {
|
||||
persistence."/persist" = {
|
||||
directories = [
|
||||
"/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 = [
|
||||
"steam"
|
||||
"steam-jupiter-unwrapped"
|
||||
"steamdeck-firmware"
|
||||
"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.mkIf (!config.jovian.steam.enable) {
|
||||
config = lib.mkIf (!config.system.steamdeck.enable) {
|
||||
networking.useNetworkd = lib.mkForce false;
|
||||
|
||||
services.globalprotect.enable = true;
|
||||
|
@ -9,5 +9,12 @@
|
|||
libvirtd.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 = {
|
||||
guifull.enable = true;
|
||||
home-manager.users."${config.sysusers.main}".home = {
|
||||
desktop.enable = true;
|
||||
gaming.enable = true;
|
||||
production.enable = true;
|
||||
school.enable = true;
|
||||
enableNixpkgsReleaseCheck = false;
|
||||
stateVersion = lib.mkForce config.system.stateVersion;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
{
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_hardened;
|
||||
loader.limine.enable = true;
|
||||
loader.systemd-boot.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6,16 +6,20 @@
|
|||
./filesystems
|
||||
./hardware
|
||||
./network
|
||||
./services
|
||||
./user
|
||||
../../modules/system
|
||||
];
|
||||
|
||||
networking = {
|
||||
hostName = "kitty";
|
||||
hostId = "8745e22e";
|
||||
};
|
||||
|
||||
system = {
|
||||
nixos.tags = [
|
||||
"extra-users"
|
||||
"server"
|
||||
];
|
||||
server.enable = true;
|
||||
extraUsers.enable = true;
|
||||
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 = {
|
||||
disk = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "disk";
|
||||
device = "/dev/disk/by-id/ata-KINGSTON_SA400S37120G_50026B7783DBB232";
|
||||
device = "/dev/sda";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
boot = {
|
||||
priority = 1;
|
||||
size = "1M";
|
||||
type = "EF02";
|
||||
};
|
||||
|
@ -27,7 +28,7 @@
|
|||
size = "100%";
|
||||
content = {
|
||||
type = "lvm_pv";
|
||||
vg = "${name}";
|
||||
vg = "${config.networking.hostName}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -36,7 +37,7 @@
|
|||
};
|
||||
|
||||
lvm_vg = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "lvm_vg";
|
||||
lvs = {
|
||||
root = {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ ... }:
|
||||
{ config, ... }:
|
||||
{
|
||||
fileSystems = {
|
||||
"/persist/storage" = {
|
||||
|
@ -9,5 +9,23 @@
|
|||
"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 = {
|
||||
availableKernelModules = [
|
||||
|
@ -9,7 +9,6 @@
|
|||
kernelModules = [ "dm-snapshot" ];
|
||||
};
|
||||
|
||||
hardware.cpu.intel.updateMicrocode = true;
|
||||
|
||||
nixpkgs.hostPlatform = "x86_64-linux";
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
|
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 = {
|
||||
interfaces."eno1".ipv4.addresses = [{
|
||||
address = "11.2.0.1";
|
||||
address = "10.2.0.2";
|
||||
prefixLength = 8;
|
||||
}];
|
||||
defaultGateway = {
|
||||
address = "11.1.0.1";
|
||||
address = "10.1.0.1";
|
||||
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
|
||||
./network
|
||||
./services
|
||||
./user
|
||||
../../modules/system
|
||||
];
|
||||
|
||||
system = {
|
||||
nixos.tags = [ "server" ];
|
||||
stateVersion = "24.11";
|
||||
networking = {
|
||||
hostName = "midas";
|
||||
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 = {
|
||||
disk = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "disk";
|
||||
device = "/dev/disk/by-id/nvme-eui.00080d03001365cc";
|
||||
device = "/dev/nvme0n1";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
boot = {
|
||||
priority = 1;
|
||||
size = "1M";
|
||||
type = "EF02";
|
||||
};
|
||||
|
@ -27,12 +28,12 @@
|
|||
size = "100%";
|
||||
content = {
|
||||
type = "luks";
|
||||
name = "${name}-disk";
|
||||
name = "${config.networking.hostName}-disk";
|
||||
settings.allowDiscards = true;
|
||||
passwordFile = "/tmp/secret.key";
|
||||
content = {
|
||||
type = "lvm_pv";
|
||||
vg = "${name}";
|
||||
vg = "${config.networking.hostName}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -42,7 +43,7 @@
|
|||
};
|
||||
|
||||
lvm_vg = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "lvm_vg";
|
||||
lvs = {
|
||||
root = {
|
||||
|
|
|
@ -10,5 +10,14 @@
|
|||
"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 = {
|
||||
availableKernelModules = [
|
||||
|
@ -10,7 +10,6 @@
|
|||
kernelModules = [ "dm-snapshot" ];
|
||||
};
|
||||
|
||||
hardware.cpu.intel.updateMicrocode = true;
|
||||
|
||||
nixpkgs.hostPlatform = "x86_64-linux";
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
|
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 = {
|
||||
interfaces."enp0s31f6".ipv4.addresses = [{
|
||||
address = "11.2.0.1";
|
||||
address = "10.2.0.1";
|
||||
prefixLength = 8;
|
||||
}];
|
||||
defaultGateway = {
|
||||
address = "11.1.0.1";
|
||||
address = "10.1.0.1";
|
||||
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 = {
|
||||
cloudflare-dyndns.enable = true;
|
||||
forgejo.enable = true;
|
||||
hedgedoc.enable = true;
|
||||
icecast.enable = true;
|
||||
jellyfin.enable = true;
|
||||
lemmy.enable = true;
|
||||
mastodon.enable = true;
|
||||
matrix-synapse.enable = true;
|
||||
mysql.enable = true;
|
||||
nextcloud.enable = true;
|
||||
nfs.server.enable = true;
|
||||
nginx.enable = true;
|
||||
owncast.enable = true;
|
||||
transmission.enable = true;
|
||||
vaultwarden.enable = true;
|
||||
webserver.enable = true;
|
||||
|
||||
minecraft-servers = {
|
||||
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, ... }:
|
||||
{
|
||||
boot = {
|
||||
binfmt.emulatedSystems = [ "x86_64-linux" ];
|
||||
kernelPackages = pkgs.linuxPackages_hardened;
|
||||
loader.limine.enable = true;
|
||||
loader.systemd-boot.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6,18 +6,18 @@
|
|||
./filesystems
|
||||
./hardware
|
||||
./services
|
||||
./user
|
||||
../../modules/system
|
||||
(modulesPath + "/profiles/headless.nix")
|
||||
];
|
||||
|
||||
networking = {
|
||||
hostName = "prophet";
|
||||
hostId = "97a21a38";
|
||||
};
|
||||
|
||||
system = {
|
||||
nixos.tags = [ "server" ];
|
||||
server.enable = true;
|
||||
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 = {
|
||||
disk = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "disk";
|
||||
device = "/dev/disk/by-id/scsi-3609c958403f14cd29ff94a5a2e405cc2";
|
||||
device = "/dev/nvme0n1";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
boot = {
|
||||
priority = 1;
|
||||
size = "1M";
|
||||
type = "EF02";
|
||||
};
|
||||
|
@ -27,7 +28,7 @@
|
|||
size = "100%";
|
||||
content = {
|
||||
type = "lvm_pv";
|
||||
vg = "${name}";
|
||||
vg = "${config.networking.hostName}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -36,7 +37,7 @@
|
|||
};
|
||||
|
||||
lvm_vg = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "lvm_vg";
|
||||
lvs = {
|
||||
root = {
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
{ ... }:
|
||||
{
|
||||
fileSystems = {
|
||||
"/persist/storage" = {
|
||||
device = "/dev/disk/by-uuid/ef465845-cc56-4db5-9260-8ae515eb025e";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"nofail"
|
||||
"nosuid"
|
||||
];
|
||||
};
|
||||
fileSystems."/persist/storage" = {
|
||||
device = "/dev/disk/by-uuid/ef465845-cc56-4db5-9260-8ae515eb025e";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"nofail"
|
||||
"nosuid"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ ... }:
|
||||
{ lib, ... }:
|
||||
{
|
||||
boot.initrd = {
|
||||
availableKernelModules = [
|
||||
|
@ -8,5 +8,5 @@
|
|||
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 = {
|
||||
cloudflare-dyndns.enable = true;
|
||||
mailserver.enable = true;
|
||||
mysql.enable = true;
|
||||
nfs.server.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 = {
|
||||
disk = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "disk";
|
||||
device = "/dev/sda";
|
||||
device = "/dev/nvme0n1";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
boot = {
|
||||
priority = 1;
|
||||
size = "1M";
|
||||
type = "EF02";
|
||||
};
|
||||
|
@ -27,12 +28,12 @@
|
|||
size = "100%";
|
||||
content = {
|
||||
type = "luks";
|
||||
name = "${name}-disk";
|
||||
name = "${config.networking.hostName}-disk";
|
||||
settings.allowDiscards = true;
|
||||
passwordFile = "/tmp/secret.key";
|
||||
content = {
|
||||
type = "lvm_pv";
|
||||
vg = "${name}";
|
||||
vg = "${config.networking.hostName}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -42,7 +43,7 @@
|
|||
};
|
||||
|
||||
lvm_vg = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "lvm_vg";
|
||||
lvs = {
|
||||
root = {
|
||||
|
@ -53,35 +54,25 @@
|
|||
subvolumes = {
|
||||
"/root" = {
|
||||
mountpoint = "/";
|
||||
mountOptions = [
|
||||
"compress=zstd"
|
||||
"ssd"
|
||||
];
|
||||
mountOptions = [ "compress=zstd" ];
|
||||
};
|
||||
"/prev" = {
|
||||
mountpoint = "/prev";
|
||||
mountOptions = [
|
||||
"compress=zstd"
|
||||
"noexec"
|
||||
"ssd"
|
||||
];
|
||||
};
|
||||
"/nix" = {
|
||||
mountpoint = "/nix";
|
||||
mountOptions = [
|
||||
"compress=zstd"
|
||||
"ssd"
|
||||
];
|
||||
mountOptions = [ "compress=zstd" ];
|
||||
};
|
||||
|
||||
# Impermanence
|
||||
"/persist" = {
|
||||
mountpoint = "/persist";
|
||||
mountOptions = [
|
||||
"compress=zstd"
|
||||
"ssd"
|
||||
];
|
||||
};
|
||||
# Impermanence
|
||||
"/persist" = {
|
||||
mountpoint = "/persist";
|
||||
mountOptions = [ "compress=zstd" ];
|
||||
};
|
||||
"/persist/.snapshots" = { };
|
||||
"/persist/home" = { };
|
||||
"/persist/home/.snapshots" = { };
|
||||
|
@ -89,7 +80,7 @@
|
|||
};
|
||||
};
|
||||
swap = {
|
||||
size = "2G";
|
||||
size = "8G";
|
||||
content = {
|
||||
type = "swap";
|
||||
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
|
||||
commonKernelParams = [
|
||||
# VM/GPU passthrough
|
||||
"amd_iommu=on"
|
||||
"iommu=pt"
|
||||
"nested=1"
|
||||
|
||||
# Isolate devices into IOMMU groups
|
||||
"pcie_acs_override=downstream,multifunction"
|
||||
"pci=routeirq"
|
||||
];
|
||||
in {
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_6_14;
|
||||
# Latest kernel and IOMMU isolation
|
||||
kernelPackages = pkgsUnstable.linuxPackages_latest;
|
||||
kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:1f82,10de:10fa" ];
|
||||
|
||||
# Load into GPU before video driver
|
||||
|
@ -21,5 +28,8 @@ in {
|
|||
};
|
||||
|
||||
# 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
|
||||
./filesystems
|
||||
./hardware
|
||||
./network
|
||||
./user
|
||||
../../modules/system
|
||||
];
|
||||
|
||||
networking.hostName = "tower";
|
||||
|
||||
system = {
|
||||
nixos.tags = [ "pc" ];
|
||||
desktop.enable = true;
|
||||
nvidia.enable = true;
|
||||
stateVersion = "24.05";
|
||||
};
|
||||
|
||||
deployment.targetHost = "4e4:535:9d47:f367:becd:6557:458d:5b1b";
|
||||
|
||||
virtualisation.libvirtd.enable = true;
|
||||
}
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
{ config, name, ... }:
|
||||
{ config, disko, ... }:
|
||||
{
|
||||
imports = [ disko.nixosModules.disko ];
|
||||
|
||||
disko.devices = {
|
||||
disk = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "disk";
|
||||
device = "/dev/disk/by-id/nvme-INTEL_SSDPEKNU512GZ_BTKA20550TKC512A";
|
||||
device = "/dev/nvme0n1";
|
||||
imageSize = "32G";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
boot = {
|
||||
priority = 1;
|
||||
size = "1M";
|
||||
type = "EF02";
|
||||
};
|
||||
|
@ -27,12 +29,12 @@
|
|||
size = "100%";
|
||||
content = {
|
||||
type = "luks";
|
||||
name = "${name}-disk";
|
||||
name = "${config.networking.hostName}-disk";
|
||||
settings.allowDiscards = true;
|
||||
passwordFile = "/tmp/secret.key";
|
||||
content = {
|
||||
type = "lvm_pv";
|
||||
vg = "${name}";
|
||||
vg = "${config.networking.hostName}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -42,7 +44,7 @@
|
|||
};
|
||||
|
||||
lvm_vg = {
|
||||
"${name}" = {
|
||||
"${config.networking.hostName}" = {
|
||||
type = "lvm_vg";
|
||||
lvs = {
|
||||
root = {
|
||||
|
|
|
@ -1,34 +1,26 @@
|
|||
{ ... }:
|
||||
{ config, ... }:
|
||||
{
|
||||
fileSystems = {
|
||||
# Games and such
|
||||
"/mnt/Linux1" = {
|
||||
device = "/dev/disk/by-label/Linux1";
|
||||
fsType = "btrfs";
|
||||
device = "/dev/disk/by-uuid/b2901f8c-ffda-4b88-bb63-a9ea0c96ccb4";
|
||||
fsType = "ext4";
|
||||
options = [
|
||||
"nofail"
|
||||
"nosuid"
|
||||
];
|
||||
};
|
||||
"/mnt/Linux2" = {
|
||||
device = "/dev/disk/by-label/Linux2";
|
||||
fsType = "btrfs";
|
||||
device = "/dev/disk/by-uuid/f08e4f38-162c-402f-ba2a-5925151b78bf";
|
||||
fsType = "ext4";
|
||||
options = [
|
||||
"nofail"
|
||||
"nosuid"
|
||||
];
|
||||
};
|
||||
"/mnt/Linux3" = {
|
||||
device = "/dev/disk/by-label/Linux3";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"nofail"
|
||||
"nosuid"
|
||||
];
|
||||
};
|
||||
"/mnt/Linux4" = {
|
||||
device = "/dev/disk/by-label/Linux4";
|
||||
fsType = "btrfs";
|
||||
device = "/dev/disk/by-uuid/e7bc75bd-c371-4b28-b212-7be9b1fad339";
|
||||
fsType = "ext4";
|
||||
options = [
|
||||
"nofail"
|
||||
"nosuid"
|
||||
|
@ -45,5 +37,34 @@
|
|||
"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") ];
|
||||
|
||||
|
@ -16,9 +16,6 @@
|
|||
kernelModules = [ "kvm-amd" ];
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
hardware.cpu.amd.updateMicrocode = true;
|
||||
|
||||
nixpkgs.hostPlatform = "x86_64-linux";
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
|
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, ... }:
|
||||
{
|
||||
imports = [
|
||||
./profiles
|
||||
./programs
|
||||
./services
|
||||
./settings
|
||||
./user
|
||||
./variables
|
||||
./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 = {
|
||||
main = {
|
||||
term = "xterm-256color";
|
||||
font = "${config.vars.fonts.mono}:size=14.7";
|
||||
font = "${config.look.fonts.mono}:size=14.7";
|
||||
};
|
||||
colors = {
|
||||
alpha = "0.85";
|
||||
background = config.vars.colors.dark;
|
||||
background = config.look.colors.dark;
|
||||
regular0 = "3f3f3f";
|
||||
regular1 = "cc0000";
|
||||
regular2 = "4e9a06";
|
||||
|
@ -29,10 +29,7 @@
|
|||
bright7 = "ffffff";
|
||||
};
|
||||
cursor.style = "beam";
|
||||
key-bindings = {
|
||||
search-start = "Control+f";
|
||||
show-urls-launch = "Control+s";
|
||||
};
|
||||
key-bindings.search-start = "Control+f";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,78 +1,60 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, pkgs, nur, ... }:
|
||||
{
|
||||
config = lib.mkIf config.home.desktop.enable {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
package = pkgs.librewolf;
|
||||
profiles.default = {
|
||||
isDefault = true;
|
||||
profiles = let
|
||||
# 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;
|
||||
containers = {
|
||||
home = {
|
||||
color = "purple";
|
||||
icon = "fruit";
|
||||
id = 1;
|
||||
};
|
||||
school = {
|
||||
color = "red";
|
||||
icon = "briefcase";
|
||||
id = 2;
|
||||
};
|
||||
};
|
||||
|
||||
bookmarks = {
|
||||
# Profile settings
|
||||
commonExtensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
bitwarden
|
||||
darkreader
|
||||
return-youtube-dislikes
|
||||
simple-tab-groups
|
||||
sponsorblock
|
||||
ublock-origin
|
||||
violentmonkey
|
||||
];
|
||||
commonSearch = {
|
||||
force = true;
|
||||
settings = [
|
||||
{
|
||||
name = "NixFox";
|
||||
url = "https://www.nixfox.ca";
|
||||
}
|
||||
{
|
||||
name = "Luna";
|
||||
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";
|
||||
}
|
||||
default = "Ecosia";
|
||||
order = [
|
||||
"Ecosia"
|
||||
"NixPKGs"
|
||||
"MyNixOS"
|
||||
"YouTube"
|
||||
"Spotify"
|
||||
];
|
||||
};
|
||||
|
||||
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 = {
|
||||
"ecosia" = {
|
||||
"Ecosia" = {
|
||||
urls = [{
|
||||
template = "https://www.ecosia.org/search";
|
||||
params = [{
|
||||
|
@ -82,8 +64,7 @@
|
|||
}];
|
||||
definedAliases = [ "@e" ];
|
||||
};
|
||||
|
||||
"nixpkgs" = {
|
||||
"NixPKGs" = {
|
||||
urls = [{
|
||||
template = "https://search.nixos.org/packages";
|
||||
params = [
|
||||
|
@ -99,8 +80,7 @@
|
|||
}];
|
||||
definedAliases = [ "@p" ];
|
||||
};
|
||||
|
||||
"mynixos" = {
|
||||
"MyNixOS" = {
|
||||
urls = [{
|
||||
template = "https://mynixos.com/search";
|
||||
params = [{
|
||||
|
@ -110,8 +90,7 @@
|
|||
}];
|
||||
definedAliases = [ "@my" ];
|
||||
};
|
||||
|
||||
"youtube" = {
|
||||
"YouTube" = {
|
||||
urls = [{
|
||||
template = "https://www.youtube.com/results";
|
||||
params = [{
|
||||
|
@ -121,17 +100,13 @@
|
|||
}];
|
||||
definedAliases = [ "@y" ];
|
||||
};
|
||||
|
||||
"spotify" = {
|
||||
"Spotify" = {
|
||||
urls = [{ template = "https://open.spotify.com/search/{searchTerms}"; }];
|
||||
definedAliases = [ "@s" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
settings = {
|
||||
force = true;
|
||||
|
||||
commonSettings = {
|
||||
# Generic
|
||||
"browser.download.useDownloadDir" = true;
|
||||
"browser.shell.checkDefaultBrowser" = false;
|
||||
|
@ -146,9 +121,9 @@
|
|||
"webgl.disabled" = false;
|
||||
|
||||
# Fonts
|
||||
"font.name.monospace.x-western" = config.vars.fonts.mono;
|
||||
"font.name.sans-serif.x-western" = config.vars.fonts.main;
|
||||
"font.name.serif.x-western" = config.vars.fonts.main;
|
||||
"font.name.serif.x-western" = config.look.fonts.main;
|
||||
"font.name.sans-serif.x-western" = config.look.fonts.main;
|
||||
"font.name.monospace.x-western" = config.look.fonts.mono;
|
||||
|
||||
# Theming and visibility
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
|
@ -168,45 +143,47 @@
|
|||
"browser.newtabpage.enabled" = false;
|
||||
|
||||
# Safe browsing
|
||||
"browser.safebrowsing.blockedURIs.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.block_uncommon" = false;
|
||||
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
|
||||
"browser.safebrowsing.malware.enabled" = false;
|
||||
"browser.safebrowsing.phishing.enabled" = false;
|
||||
"browser.safebrowsing.provider.google.gethashURL" = false;
|
||||
"browser.safebrowsing.provider.google.updateURL" = false;
|
||||
"browser.safebrowsing.blockedURIs.enabled" = false;
|
||||
"browser.safebrowsing.provider.google4.gethashURL" = false;
|
||||
"browser.safebrowsing.provider.google4.updateURL" = false;
|
||||
"browser.safebrowsing.provider.google.gethashURL" = false;
|
||||
"browser.safebrowsing.provider.google.updateURL" = false;
|
||||
|
||||
# Extensions
|
||||
"extensions.pocket.enabled" = false;
|
||||
"extensions.formautofill.addresses.enabled" = false;
|
||||
"extensions.formautofill.creditCards.enabled" = false;
|
||||
"extensions.getAddons.showPane" = false;
|
||||
"extensions.htmlaboutaddons.discover.enabled" = false;
|
||||
"extensions.htmlaboutaddons.recommendations.enabled" = false;
|
||||
"extensions.pocket.enabled" = false;
|
||||
|
||||
# Force extensions to work
|
||||
"extensions.autoDisableScopes" = 0;
|
||||
"extensions.enabledScopes" = 15;
|
||||
|
||||
# Privacy
|
||||
"privacy.clearOnShutdown.cookies" = false;
|
||||
"privacy.clearOnShutdown_v2.cookiesAndStorage" = false;
|
||||
"privacy.resistFingerprinting" = true;
|
||||
"privacy.firstparty.isolate" = true;
|
||||
"privacy.fingerprintingProtection" = true;
|
||||
"privacy.globalprivacycontrol.enabled" = true;
|
||||
"privacy.globalprivacycontrol.functionality.enabled" = true;
|
||||
"privacy.resistFingerprinting" = true;
|
||||
"privacy.clearOnShutdown.cookies" = false;
|
||||
"privacy.clearOnShutdown_v2.cookiesAndStorage" = false;
|
||||
|
||||
# Tracking URL blocking
|
||||
"urlclassifier.features.socialtracking.skipURLs" = "*.instagram.com, *.twitter.com, *.twimg.com";
|
||||
"urlclassifier.trackingSkipURLs" = "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com";
|
||||
"urlclassifier.features.socialtracking.skipURLs" = "*.instagram.com, *.twitter.com, *.twimg.com";
|
||||
|
||||
# Network tracking
|
||||
"browser.contentblocking.category" = "strict";
|
||||
"network.cookie.cookieBehavior" = 1;
|
||||
"network.cookie.sameSite.noneRequiresSecure" = true;
|
||||
"network.http.referer.XOriginPolicy" = 2;
|
||||
"network.http.referer.XOriginTrimmingPolicy" = 2;
|
||||
"network.http.referer.trimmingPolicy" = 2;
|
||||
|
@ -232,28 +209,40 @@
|
|||
"services.sync.engine.addresses.available" = false;
|
||||
"svg.context-properties.content.enabled" = true;
|
||||
};
|
||||
|
||||
userChrome = ''
|
||||
:root {
|
||||
--tab-active-bg-color: #${config.vars.colors.prime};
|
||||
--tab-hover-bg-color: #${config.vars.colors.accent};
|
||||
--tab-inactive-bg-color: #${config.vars.colors.dark};
|
||||
--tab-active-fg-fallback-color: #FFFFFF;
|
||||
--tab-inactive-fg-fallback-color: #${config.vars.colors.text};
|
||||
--urlbar-focused-bg-color: #${config.vars.colors.dark};
|
||||
--urlbar-not-focused-bg-color: #${config.vars.colors.dark};
|
||||
--toolbar-bgcolor: #${config.vars.colors.dark} !important;
|
||||
--tab-font: '${config.vars.fonts.main}';
|
||||
--urlbar-font: '${config.vars.fonts.main}';
|
||||
in {
|
||||
Main = {
|
||||
id = 0;
|
||||
isDefault = true;
|
||||
extensions = commonExtensions;
|
||||
search = commonSearch;
|
||||
settings = commonSettings;
|
||||
userChrome = ''
|
||||
${themeMain}
|
||||
${themeFont}
|
||||
${builtins.readFile ./quteFox.css}
|
||||
'';
|
||||
'';
|
||||
};
|
||||
Alt = {
|
||||
id = 1;
|
||||
extensions = commonExtensions;
|
||||
search = commonSearch;
|
||||
settings = commonSettings;
|
||||
userChrome = ''
|
||||
${themeAlt}
|
||||
${themeFont}
|
||||
${builtins.readFile ./quteFox.css}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Symlinks to Librewolf
|
||||
home = {
|
||||
file.".librewolf".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.mozilla/firefox";
|
||||
persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "browser/.mozilla/firefox/default" ];
|
||||
file = {
|
||||
".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 =
|
||||
with lib; with config.home; with config.xdg;
|
||||
[ "data/${removePrefix "${homeDirectory}/" configHome}/obs-studio" ];
|
||||
home.persistence."/persist${config.home.homeDirectory}".directories = [ ".config/obs-studio" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -3,43 +3,62 @@
|
|||
config = lib.mkIf config.home.desktop.enable {
|
||||
programs.thunderbird = {
|
||||
enable = config.home.desktop.enable;
|
||||
profiles.default = {
|
||||
isDefault = true;
|
||||
settings = {
|
||||
"general.autoScroll" = true;
|
||||
"browser.download.promptForDownload" = true;
|
||||
profiles = {
|
||||
Main = {
|
||||
isDefault = true;
|
||||
userContent = ''
|
||||
*{scrollbar-width:none !important}
|
||||
'';
|
||||
settings = {
|
||||
"general.autoScroll" = true;
|
||||
|
||||
"security.mixed_content.block_active_content" = true;
|
||||
"security.mixed_content.block_display_content" = true;
|
||||
"security.mixed_content.block_active_content" = true;
|
||||
"security.mixed_content.block_display_content" = true;
|
||||
|
||||
"extensions.activeThemeID" = "thunderbird-compact-dark@mozilla.org";
|
||||
"extensions.allow-non-mpc-extensions" = false;
|
||||
"extensions.allowRemoteAddons" = false;
|
||||
"extensions.blocklist.enabled" = true;
|
||||
"extensions.checkCompatibility" = false;
|
||||
"extensions.enabled" = false;
|
||||
"extensions.getAddons.cache.enabled" = false;
|
||||
"extensions.ui.enabled" = false;
|
||||
"extensions.webextensions.userSelection" = false;
|
||||
"extensions.enabled" = false;
|
||||
"extensions.autoDisableScopes" = 0;
|
||||
"extensions.allow-non-mpc-extensions" = false;
|
||||
"extensions.installDistroAddons" = false;
|
||||
"extensions.getAddons.cache.enabled" = false;
|
||||
"extensions.blocklist.enabled" = true;
|
||||
"extensions.webextensions.userSelection" = false;
|
||||
"extensions.checkCompatibility" = 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.formdata" = true;
|
||||
"privacy.clearOnShutdown.siteSettings" = true;
|
||||
"privacy.donottrackheader.enabled" = true;
|
||||
"privacy.resistFingerprinting" = true;
|
||||
"privacy.trackingprotection.enabled" = true;
|
||||
"privacy.clearOnShutdown.cookies" = true;
|
||||
"privacy.clearOnShutdown.cache" = true;
|
||||
"privacy.clearOnShutdown.formdata" = true;
|
||||
"privacy.clearOnShutdown.siteSettings" = true;
|
||||
"privacy.trackingprotection.enabled" = true;
|
||||
"privacy.firstparty.isolate" = true;
|
||||
"privacy.donottrackheader.enabled" = true;
|
||||
"privacy.resistFingerprinting" = true;
|
||||
|
||||
"network.cookie.cookieBehavior" = 1;
|
||||
"network.cookie.lifetimePolicy" = 2;
|
||||
"network.dns.dnsOverHttps.enabled" = true;
|
||||
"network.http.pipelining" = false;
|
||||
"network.http.speculative-parallel-limit" = 0;
|
||||
"network.predictor.enabled" = false;
|
||||
"browser.history.enabled" = false;
|
||||
"browser.sessionstore.privacy_level" = 2;
|
||||
"browser.tabs.warnOnClose" = false;
|
||||
"browser.shell.checkDefaultBrowser" = false;
|
||||
"browser.urlbar.suggest.openpage" = 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 {
|
||||
home.packages = with pkgs; [
|
||||
home.packages = (with pkgs; [
|
||||
ffmpeg
|
||||
ffmpegthumbnailer
|
||||
playerctl
|
||||
puddletag
|
||||
pulsemixer
|
||||
spotdl
|
||||
];
|
||||
]) ++ (with pkgsUnstable; [ spotdl ]);
|
||||
|
||||
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 [
|
||||
azahar
|
||||
cemu
|
||||
dolphin-emu-beta
|
||||
duckstation
|
||||
pcsx2
|
||||
ryubing
|
||||
];
|
||||
config = lib.mkIf config.home.gaming.enable {
|
||||
home.packages = (with pkgs; [
|
||||
cemu
|
||||
dolphin-emu-beta
|
||||
duckstation
|
||||
pcsx2
|
||||
]) ++ (with pkgsUnstable; [
|
||||
azahar
|
||||
ryubing
|
||||
]);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -8,22 +8,11 @@
|
|||
steam
|
||||
steam-run-free
|
||||
];
|
||||
persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}" =
|
||||
with lib; with config.home; with config.xdg; {
|
||||
directories = [
|
||||
"games/${removePrefix "${homeDirectory}/" "Games"}"
|
||||
"games/${removePrefix "${homeDirectory}/" configHome}/heroic"
|
||||
"games/${removePrefix "${homeDirectory}/" dataHome}/PrismLauncher"
|
||||
{
|
||||
directory = "games/.steam";
|
||||
method = "symlink";
|
||||
}
|
||||
{
|
||||
directory = "games/${removePrefix "${homeDirectory}/" dataHome}/Steam";
|
||||
method = "symlink";
|
||||
}
|
||||
];
|
||||
};
|
||||
persistence."/persist${config.home.homeDirectory}".directories = [
|
||||
".config/heroic"
|
||||
".local/share/PrismLauncher"
|
||||
".local/share/Steam"
|
||||
];
|
||||
};
|
||||
|
||||
nixpkgs.allowUnfreePackages = [
|
||||
|
|
|
@ -6,10 +6,9 @@
|
|||
qbittorrent
|
||||
vesktop
|
||||
];
|
||||
persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories =
|
||||
with lib; with config.home; with config.xdg; [
|
||||
"data/${removePrefix "${homeDirectory}/" configHome}/qBittorrent"
|
||||
"data/${removePrefix "${homeDirectory}/" configHome}/vesktop"
|
||||
];
|
||||
persistence."/persist${config.home.homeDirectory}".directories = [
|
||||
".config/qBittorrent"
|
||||
".config/vesktop"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
{
|
||||
home.packages = with pkgs; [
|
||||
bc
|
||||
colmena
|
||||
ncdu
|
||||
p7zip
|
||||
vimv
|
||||
|
|
|
@ -8,11 +8,10 @@
|
|||
blender_4_4
|
||||
krita
|
||||
];
|
||||
persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories =
|
||||
with lib; with config.home; with config.xdg; [
|
||||
"data/${removePrefix "${homeDirectory}/" configHome}/audacity"
|
||||
"data/${removePrefix "${homeDirectory}/" configHome}/blender"
|
||||
"data/${removePrefix "${homeDirectory}/" dataHome}/krita"
|
||||
];
|
||||
persistence."/persist${config.home.homeDirectory}".directories = [
|
||||
".config/audacity"
|
||||
".config/blender"
|
||||
".local/share/krita"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6,16 +6,13 @@
|
|||
globalprotect-openconnect
|
||||
gpauth
|
||||
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
|
||||
./fastfetch
|
||||
./git
|
||||
./gpg
|
||||
./lazygit
|
||||
./ncmpcpp
|
||||
./neovim
|
||||
./nh
|
||||
./nix-index
|
||||
./ranger
|
||||
./ssh
|
||||
./tmux
|
||||
./yt-dlp
|
||||
./zellij
|
||||
./zoxide
|
||||
./zsh
|
||||
];
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
{ config, lib, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
programs.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 = {
|
||||
enable = true;
|
||||
settings = with builtins; {
|
||||
logo = {
|
||||
source = "xenia";
|
||||
color = {
|
||||
"1" = "1;97";
|
||||
"2" = "red";
|
||||
"3" = "yellow";
|
||||
};
|
||||
};
|
||||
home.packages = with pkgs; [ (writeScriptBin "smallfetch" "fastfetch --config ~/.config/fastfetch/small.jsonc") ];
|
||||
|
||||
display = {
|
||||
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";
|
||||
xdg.configFile."fastfetch".source = ./configs;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories =
|
||||
with lib; with config.home; with config.xdg;
|
||||
[ "state/${removePrefix "${homeDirectory}/" stateHome}/lazygit" ];
|
||||
home.persistence."/persist${config.home.homeDirectory}".directories = [ ".local/state/lazygit" ];
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
|
@ -92,8 +92,8 @@
|
|||
let g:airline_theme='onedark'
|
||||
let g:airline#extensions#tabline#enabled = 1
|
||||
hi Normal guibg=none
|
||||
hi Visual guibg=#${config.vars.colors.mid}
|
||||
hi Pmenu guibg=#${config.vars.colors.mid}
|
||||
hi Visual guibg=#${config.look.colors.mid}
|
||||
hi Pmenu guibg=#${config.look.colors.mid}
|
||||
hi EndOfBuffer guibg=none
|
||||
hi LineNr guibg=none
|
||||
lua require'colorizer'.setup()
|
||||
|
@ -103,7 +103,7 @@
|
|||
set mouse=a
|
||||
|
||||
set undofile
|
||||
set undodir=${config.xdg.dataHome}/nvim/undo
|
||||
set undodir=$HOME/.local/share/nvim/undo
|
||||
set undolevels=100
|
||||
set undoreload=10000
|
||||
|
||||
|
@ -115,8 +115,6 @@
|
|||
|
||||
home = {
|
||||
sessionVariables.MANPAGER = "nvim +Man!";
|
||||
persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories =
|
||||
with lib; with config.home; with config.xdg;
|
||||
[ "state/${removePrefix "${homeDirectory}/" dataHome}/nvim/undo" ];
|
||||
persistence."/persist${config.home.homeDirectory}".directories = [ ".local/share/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;
|
||||
|
||||
home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories =
|
||||
with lib; with config.home; with config.xdg;
|
||||
[ "state/${removePrefix "${homeDirectory}/" cacheHome}/nix-index" ];
|
||||
home.persistence."/persist${config.home.homeDirectory}".directories = [ ".cache/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