Compare commits
185 Commits
3fad8fcf16
...
kde-x11-br
| Author | SHA1 | Date | |
|---|---|---|---|
| 2a543c6e93 | |||
| 89e04df44a | |||
| d0546b20ea | |||
| a652234c7c | |||
| b867dd12c4 | |||
| 2fc09a965a | |||
| e3d7538fa3 | |||
| d64b2f8d6d | |||
| 093623dad7 | |||
| f6c2c48c7d | |||
| b7c6a2fce5 | |||
| a692c1353d | |||
| 589eefd527 | |||
| 981d351744 | |||
| 0fae6cfc06 | |||
| 0b47961483 | |||
| 01a512e3fd | |||
| 631b28d399 | |||
| 96045f57c4 | |||
| 86d717fad1 | |||
| a7392b3c30 | |||
| e72154ab65 | |||
| 47acfb12ff | |||
| 8a7229cea8 | |||
| 123b55cdf1 | |||
| e4cd967f06 | |||
| 715c3c07b5 | |||
| 64a464af49 | |||
| 5c710e0cb6 | |||
| 26554b8261 | |||
| 75cecb0386 | |||
| 3d8f717c7a | |||
| 5807e0076a | |||
| f80b6295ac | |||
| eb90b797df | |||
| ed06b07960 | |||
| bf7f6a1218 | |||
| 6d0f92fad6 | |||
| 164ed80931 | |||
| 4a9a71bad1 | |||
| b9da82b956 | |||
| bb596a794e | |||
| 476cab8c9d | |||
| d57aeb9ef3 | |||
| aaba57ee2f | |||
| 2332cc1e9d | |||
| df06c641c2 | |||
| 2880272e2a | |||
| d3896b5817 | |||
| 522d87f51d | |||
| 578f246519 | |||
| 271658bf4d | |||
| fbe9f8b3ec | |||
| 149641c87b | |||
| 21782c109e | |||
| 8ee971cbf8 | |||
| 1ed2b9c130 | |||
| 31102ae362 | |||
| 33893cafd8 | |||
| 61e41fca0a | |||
| b90bfdaed8 | |||
| 9eff6a3a6a | |||
| fbbd74bfae | |||
| fcf8efe577 | |||
| ec3d963494 | |||
| 82b9b48493 | |||
| e03b3d229d | |||
| 06a3b10079 | |||
| 613a9c5540 | |||
| 0c754590f1 | |||
| 5474251a64 | |||
| dd1aa0957e | |||
| ddce79071d | |||
| fd8f18eeec | |||
| 501e35ae45 | |||
| 65fc0ace0e | |||
| dc8f70b344 | |||
| 5cc90d85f7 | |||
| 75491e90e7 | |||
| 819b81d8d2 | |||
| fe4f291ef8 | |||
| da46fc7eca | |||
| 58206b4c80 | |||
| 1e02adf3cf | |||
| 15b75b0010 | |||
| 6d34c7dbd0 | |||
| 8681424692 | |||
| 0956fccdc6 | |||
| 1e187a7cee | |||
| 9dab3f0608 | |||
| 26d59c7ca6 | |||
| 9bc5922e49 | |||
| 2e3ef5fd47 | |||
| 415f3bb057 | |||
| bcc2ca5cf0 | |||
| c202dbcdec | |||
| f3b6a5cddd | |||
| 191733ec51 | |||
| 881a047c75 | |||
| 95c1b53699 | |||
| aecc12a945 | |||
| b5afdc5817 | |||
| ab9acedf49 | |||
| 0e31504687 | |||
| 85147137b0 | |||
| 914b88ac82 | |||
| 646f35e5d4 | |||
| 3ed8d601a2 | |||
| 02a99d31fa | |||
| 2be93bd323 | |||
| 6a43859425 | |||
| 439cb8200f | |||
| a812e53f06 | |||
| 8ccc4d65a9 | |||
| 581a701151 | |||
| 5fc4b9e0f3 | |||
| 80e89c531d | |||
| f607c99ec4 | |||
| c92ea31991 | |||
| e60e6bc8c0 | |||
| 3ca9b0533b | |||
| 55b5521518 | |||
| 39f1253900 | |||
| 4ff1acc318 | |||
| 261b704d31 | |||
| 48b7079b32 | |||
| 480a1598a6 | |||
| beb1c9eb75 | |||
| 12fccea34f | |||
| c0c37d5fca | |||
| df73e98b85 | |||
| e95ab8bd3e | |||
| c6104a7a9e | |||
| f9b40222a0 | |||
| 866efb4718 | |||
| 6463a9e869 | |||
| 105c9737f6 | |||
| 089bf927e0 | |||
| b4bc7490fc | |||
| 0dd087f4b8 | |||
| f60718619f | |||
| c47509ef99 | |||
| c5767b775b | |||
| ef4869d2cc | |||
| 0207f790ef | |||
| b4500a59c1 | |||
| e6f20d1d69 | |||
| 51e5e00ab6 | |||
| 31e86618c3 | |||
| e28a22ec11 | |||
| 93c3ae48c5 | |||
| 1abec387cd | |||
| 081ffed1e1 | |||
| 583a1a1905 | |||
| 48e9ae18ef | |||
| 793b7e1a30 | |||
| 051b48d3ba | |||
| 47ff5618e9 | |||
| ad7fb01791 | |||
| 1e6daa09f6 | |||
| 1557caba8b | |||
| 47d716c2de | |||
| d3ebbadc27 | |||
| 02aa649bb1 | |||
| 41321a5364 | |||
| 95388efbc8 | |||
| 5e0036e591 | |||
| 37309cd66e | |||
| 1354042094 | |||
| bd75aecb14 | |||
| 3a59ef19f6 | |||
| 499260d83f | |||
| b78ba76cd3 | |||
| 093feba49d | |||
| afd823c23e | |||
| b1e3fa601d | |||
| 2f07912f1b | |||
| 8701b72258 | |||
| 8c305e3703 | |||
| 86f61e9547 | |||
| ce387ab5db | |||
| 7d07de663d | |||
| f19a3d129c | |||
| 89fde794b8 | |||
| f451095a92 |
480
flake.lock
generated
480
flake.lock
generated
@@ -1,17 +1,107 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"flake-compat": {
|
"aagl": {
|
||||||
"flake": false,
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717312683,
|
"lastModified": 1779903856,
|
||||||
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
|
"narHash": "sha256-uRShMtD6xW3ZKZbCQ6sDzKWEnbBXUg3IGfOARYogKhg=",
|
||||||
"owner": "nix-community",
|
"owner": "ezKEa",
|
||||||
"repo": "flake-compat",
|
"repo": "aagl-gtk-on-nix",
|
||||||
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea",
|
"rev": "50671fc7f29d686f63ef34b603320d44ad7f2d29",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "ezKEa",
|
||||||
|
"repo": "aagl-gtk-on-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"anikki": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1766470910,
|
||||||
|
"narHash": "sha256-iY0vJAAjY5ZveB6JIAQDHq7lFrkAVGnO0tC7YOYDFsg=",
|
||||||
|
"owner": "Hion-V",
|
||||||
|
"repo": "Anikki-flake",
|
||||||
|
"rev": "95d15448466142126c7fc13ac1dbdaf58a36a3a5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Hion-V",
|
||||||
|
"repo": "Anikki-flake",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cachyos-kernel": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1779781360,
|
||||||
|
"narHash": "sha256-02SR7VL4wc57NCVMhyVgz6/SVfyGv7mc4h+SmgR2I8g=",
|
||||||
|
"owner": "CachyOS",
|
||||||
|
"repo": "linux-cachyos",
|
||||||
|
"rev": "c7cb822e8ee91d993052becf2661b6f26f98eaa2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "CachyOS",
|
||||||
|
"repo": "linux-cachyos",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cachyos-kernel-patches": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1779618819,
|
||||||
|
"narHash": "sha256-/cGZZCyJZS1QATHi+/2Q32NkjrYN2N2PpgFP8Ak4FJc=",
|
||||||
|
"owner": "CachyOS",
|
||||||
|
"repo": "kernel-patches",
|
||||||
|
"rev": "668b466fb461409329425b50c4a9d8d2c022a739",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "CachyOS",
|
||||||
|
"repo": "kernel-patches",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"crane": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1754269165,
|
||||||
|
"narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=",
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"rev": "444e81206df3f7d92780680e45858e31d2f07a08",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767039857,
|
||||||
|
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -19,11 +109,11 @@
|
|||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733328505,
|
"lastModified": 1747046372,
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -33,6 +123,38 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_3": {
|
"flake-compat_3": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767039857,
|
||||||
|
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_4": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767039857,
|
||||||
|
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_5": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1650374568,
|
"lastModified": 1650374568,
|
||||||
@@ -48,6 +170,45 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"lanzaboote",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1754091436,
|
||||||
|
"narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1778716662,
|
||||||
|
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
@@ -105,14 +266,16 @@
|
|||||||
},
|
},
|
||||||
"game-of-life": {
|
"game-of-life": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728511087,
|
"lastModified": 1771895942,
|
||||||
"narHash": "sha256-CvO74jwMjUUPySy0QCt7sPImbxKlhWcSAet93Fkt6iU=",
|
"narHash": "sha256-2G212O6uoBCjmyIBux/Kfy/FVlsAY+3mTT4JRstYRZ0=",
|
||||||
"owner": "local-interloper",
|
"owner": "local-interloper",
|
||||||
"repo": "game-of-life",
|
"repo": "game-of-life",
|
||||||
"rev": "c39d37e394f5da79a6a7d198e1d7e505aa5298a7",
|
"rev": "dd5cba5d873ece0ca5c8a7d74243b3b0199a2194",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -121,6 +284,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"gitignore": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"lanzaboote",
|
||||||
|
"pre-commit-hooks-nix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709087332,
|
||||||
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -128,11 +313,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735381016,
|
"lastModified": 1779969295,
|
||||||
"narHash": "sha256-CyCZFhMUkuYbSD6bxB/r43EdmDE7hYeZZPTCv0GudO4=",
|
"narHash": "sha256-HwIJ3tOcwSMiV75L7KqJXciXR9UfT+d7rwOZMX7cTnA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "10e99c43cdf4a0713b4e81d90691d22c6a58bdf2",
|
"rev": "61e2c9659324181e0f0ed911958c536333b1d4f6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -141,39 +326,89 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-cosmic": {
|
"home-manager_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"nixpkgs": [
|
||||||
"nixpkgs": "nixpkgs_2",
|
"zen-browser",
|
||||||
"nixpkgs-stable": "nixpkgs-stable",
|
"nixpkgs"
|
||||||
"rust-overlay": "rust-overlay"
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735608992,
|
"lastModified": 1778805320,
|
||||||
"narHash": "sha256-NkzMjar9Sz0pLJxVfp9Hchf48YCuQQ1AnGVYGNfzwVA=",
|
"narHash": "sha256-nGFJ01m2CTBKD4ABtcY4vLhHrRN91LKr/pn41PcU78A=",
|
||||||
"owner": "lilyinstarlight",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-cosmic",
|
"repo": "home-manager",
|
||||||
"rev": "af6900c2f6e68439c5f4aaaa8bb1a6d54bf04025",
|
"rev": "9846abe15e7d0d36b8acbd4d05f2b87461744c92",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "lilyinstarlight",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-cosmic",
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lanzaboote": {
|
||||||
|
"inputs": {
|
||||||
|
"crane": "crane",
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
|
||||||
|
"rust-overlay": "rust-overlay_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1762205063,
|
||||||
|
"narHash": "sha256-If6vQ+KvtKs3ARBO9G3l+4wFSCYtRBrwX1z+I+B61wQ=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "lanzaboote",
|
||||||
|
"rev": "88b8a563ff5704f4e8d8e5118fb911fa2110ca05",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "v0.4.3",
|
||||||
|
"repo": "lanzaboote",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-cachyos-kernel": {
|
||||||
|
"inputs": {
|
||||||
|
"cachyos-kernel": "cachyos-kernel",
|
||||||
|
"cachyos-kernel-patches": "cachyos-kernel-patches",
|
||||||
|
"flake-compat": "flake-compat_3",
|
||||||
|
"flake-parts": "flake-parts_2",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1779910731,
|
||||||
|
"narHash": "sha256-BSu/X9EyAyAPOjXsuwED4j4IeduP/5KVjTwiQSLkdik=",
|
||||||
|
"owner": "xddxdd",
|
||||||
|
"repo": "nix-cachyos-kernel",
|
||||||
|
"rev": "a2cdbecf6abb1a1180bf9fe5c3028125416621f1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "xddxdd",
|
||||||
|
"ref": "release",
|
||||||
|
"repo": "nix-cachyos-kernel",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-wsl": {
|
"nixos-wsl": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_4",
|
||||||
"flake-utils": "flake-utils",
|
"nixpkgs": [
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733854371,
|
"lastModified": 1777732699,
|
||||||
"narHash": "sha256-K9qGHniYBbjqVcEiwXyiofj/IFf78L5F0/FCf+CKyr0=",
|
"narHash": "sha256-2uX/XtOWZ/oy2rerRynVhqVA//ZXZ3Fo60PikLHEPQc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NixOS-WSL",
|
"repo": "NixOS-WSL",
|
||||||
"rev": "dee4425dcee3149475ead0cb6a616b8a028c5888",
|
"rev": "5482f113fd31ebac131d1ebeb2ae90bf0d5e41f5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -185,43 +420,42 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717179513,
|
"lastModified": 1779894193,
|
||||||
"narHash": "sha256-vboIEwIQojofItm2xGCdZCzW96U85l9nDW3ifMuAIdM=",
|
"narHash": "sha256-2PixoQSj9hdtoXTu0ZxdI0cmAE6GUUjCODG+rtC1wDc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "63dacb46bf939521bdc93981b4cbb7ecb58427a0",
|
"rev": "a09ffe51cfdc37950f14286593605ce64f76cc93",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "24.05",
|
"ref": "nixos-unstable-small",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735531152,
|
"lastModified": 1777168982,
|
||||||
"narHash": "sha256-As8I+ebItDKtboWgDXYZSIjGlKeqiLBvjxsQHUmAf1Q=",
|
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "3ffbbdbac0566a0977da3d2657b89cbcfe9a173b",
|
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"ref": "nixos-24.11",
|
"repo": "nixpkgs.lib",
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735471104,
|
"lastModified": 1779560665,
|
||||||
"narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=",
|
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4",
|
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -231,80 +465,81 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"pre-commit-hooks-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"lanzaboote",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"gitignore": "gitignore",
|
||||||
|
"nixpkgs": [
|
||||||
|
"lanzaboote",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733384649,
|
"lastModified": 1750779888,
|
||||||
"narHash": "sha256-K5DJ2LpPqht7K76bsxetI+YHhGGRyVteTPRQaIIKJpw=",
|
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
||||||
"owner": "NixOS",
|
"owner": "cachix",
|
||||||
"repo": "nixpkgs",
|
"repo": "pre-commit-hooks.nix",
|
||||||
"rev": "190c31a89e5eec80dd6604d7f9e5af3802a58a13",
|
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "cachix",
|
||||||
"ref": "nixos-24.05",
|
"repo": "pre-commit-hooks.nix",
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1735471104,
|
|
||||||
"narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_5": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1727348695,
|
|
||||||
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"aagl": "aagl",
|
||||||
|
"anikki": "anikki",
|
||||||
"game-of-life": "game-of-life",
|
"game-of-life": "game-of-life",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixos-cosmic": "nixos-cosmic",
|
"lanzaboote": "lanzaboote",
|
||||||
|
"nix-cachyos-kernel": "nix-cachyos-kernel",
|
||||||
"nixos-wsl": "nixos-wsl",
|
"nixos-wsl": "nixos-wsl",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"snowfall-lib": "snowfall-lib",
|
"snowfall-lib": "snowfall-lib",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"trilium-next-pr": "trilium-next-pr",
|
|
||||||
"zen-browser": "zen-browser"
|
"zen-browser": "zen-browser"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixos-cosmic",
|
"aagl",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735525800,
|
"lastModified": 1777605393,
|
||||||
"narHash": "sha256-pcN8LAL021zdC99a9F7iEiFCI1wmrE4DpIYUgKpB/jY=",
|
"narHash": "sha256-Hjp0VOOHgHcTrX23iVvnfAudPcuCmfkfpQNFwv2v/ks=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "10faa81b4c0135a04716cbd1649260d82b2890cd",
|
"rev": "ff88db34cfa486fc4964a6991cab1678d82eee8c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"lanzaboote",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1761791894,
|
||||||
|
"narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "59c45eb69d9222a4362673141e00ff77842cd219",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -315,18 +550,18 @@
|
|||||||
},
|
},
|
||||||
"snowfall-lib": {
|
"snowfall-lib": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_5",
|
||||||
"flake-utils-plus": "flake-utils-plus",
|
"flake-utils-plus": "flake-utils-plus",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732544274,
|
"lastModified": 1765361626,
|
||||||
"narHash": "sha256-qvzLIxuqukl0nxpXHEh5+iw1BLeLxYOwRC0+7cFUbPo=",
|
"narHash": "sha256-kX0Dp/kYSRbQ+yd9e3lmmUWdNbipufvKfL2IzbrSpnY=",
|
||||||
"owner": "snowfallorg",
|
"owner": "snowfallorg",
|
||||||
"repo": "lib",
|
"repo": "lib",
|
||||||
"rev": "cfeacd055545ab5de0ecfd41e09324dcd8fb2bbb",
|
"rev": "c566ad8b7352c30ec3763435de7c8f1c46ebb357",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -342,11 +577,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735468296,
|
"lastModified": 1777944972,
|
||||||
"narHash": "sha256-ZjUjbvS06jf4fElOF4ve8EHjbpbRVHHypStoY8HGzk8=",
|
"narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
|
||||||
"owner": "mic92",
|
"owner": "mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "bcb8b65aa596866eb7e5c3e1a6cccbf5d1560b27",
|
"rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -385,36 +620,23 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"trilium-next-pr": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733744893,
|
|
||||||
"narHash": "sha256-CufsQ+I/s7TsPd6Rq62WAQZQDtoeC8nw+ExuXeWnDRk=",
|
|
||||||
"owner": "FliegendeWurst",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "6000de6a3f96f729ef031cbd4ecb04898cb38780",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "FliegendeWurst",
|
|
||||||
"ref": "trilium-next",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"zen-browser": {
|
"zen-browser": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_5"
|
"home-manager": "home-manager_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727721329,
|
"lastModified": 1779955179,
|
||||||
"narHash": "sha256-QYlWZwUSwrM7BuO+dXclZIwoPvBIuJr6GpFKv9XKFPI=",
|
"narHash": "sha256-cHrbJ8pZrsFWUTJVk7AxWiEg5eiZptPQxtT0YXMIENo=",
|
||||||
"owner": "MarceColl",
|
"owner": "0xc000022070",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "e6ab73f405e9a2896cce5956c549a9cc359e5fcc",
|
"rev": "c341e3f6516fb1286d25b99d34b111f93028ae87",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "MarceColl",
|
"owner": "0xc000022070",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|||||||
68
flake.nix
68
flake.nix
@@ -3,26 +3,50 @@
|
|||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
# nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
# nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; # Use nixos-unstable for latest kernel and packages
|
||||||
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
nixos-wsl = {
|
||||||
|
url = "github:nix-community/NixOS-WSL/main";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
# Snowfallorg's Flake utility
|
# Snowfallorg's Flake utility
|
||||||
snowfall-lib = {
|
snowfall-lib = {
|
||||||
url = "github:snowfallorg/lib";
|
url = "github:snowfallorg/lib";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
game-of-life.url = "github:local-interloper/game-of-life";
|
game-of-life = {
|
||||||
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
|
url = "github:local-interloper/game-of-life";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
# Add sops-nix for secrets management
|
# Add sops-nix for secrets management
|
||||||
sops-nix = {
|
sops-nix = {
|
||||||
url = "github:mic92/sops-nix";
|
url = "github:mic92/sops-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
zen-browser.url = "github:MarceColl/zen-browser-flake";
|
zen-browser = {
|
||||||
|
url = "github:0xc000022070/zen-browser-flake";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
trilium-next-pr.url = "github:FliegendeWurst/nixpkgs/trilium-next";
|
anikki = {
|
||||||
|
url = "github:Hion-V/Anikki-flake";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
lanzaboote = {
|
||||||
|
url = "github:nix-community/lanzaboote/v0.4.3";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
# kwin-effects-forceblur = { Archived.
|
||||||
|
# url = "github:taj-ny/kwin-effects-forceblur";
|
||||||
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
# };
|
||||||
|
aagl = {
|
||||||
|
url = "github:ezKEa/aagl-gtk-on-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs:
|
outputs = inputs:
|
||||||
@@ -62,13 +86,20 @@
|
|||||||
inherit inputs;
|
inherit inputs;
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
|
overlays = with inputs; [
|
||||||
|
# Use the exact kernel versions as defined in this repo.
|
||||||
|
# Guarantees you have binary cache.
|
||||||
|
nix-cachyos-kernel.overlays.pinned
|
||||||
|
];
|
||||||
|
|
||||||
nixos = with inputs; [
|
nixos = with inputs; [
|
||||||
|
|
||||||
# disko.nixosModules.disko
|
# disko.nixosModules.disko
|
||||||
# impermanence.nixosModules.impermanence
|
# impermanence.nixosModules.impermanence
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = false; # Disabled to allow system-level overlays to work
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -79,6 +110,25 @@
|
|||||||
|
|
||||||
systems.modules.nixos = with inputs; [
|
systems.modules.nixos = with inputs; [
|
||||||
# my-input.nixosModules.my-module
|
# my-input.nixosModules.my-module
|
||||||
|
lanzaboote.nixosModules.lanzaboote ({ pkgs, lib, ... }: {
|
||||||
|
environment.systemPackages = [
|
||||||
|
# For debugging and troubleshooting Secure Boot.
|
||||||
|
pkgs.sbctl
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.configurationLimit = 4;
|
||||||
|
# Lanzaboote currently replaces the systemd-boot module.
|
||||||
|
# This setting is usually set to true in configuration.nix
|
||||||
|
# generated at installation time. So we force it to false
|
||||||
|
# for now.
|
||||||
|
boot.loader.systemd-boot.enable = lib.mkForce false;
|
||||||
|
|
||||||
|
boot.lanzaboote = {
|
||||||
|
enable = true;
|
||||||
|
pkiBundle = "/var/lib/sbctl";
|
||||||
|
};
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
# The attribute set specified here will be passed directly to NixPkgs when
|
# The attribute set specified here will be passed directly to NixPkgs when
|
||||||
@@ -86,7 +136,9 @@
|
|||||||
channels-config = {
|
channels-config = {
|
||||||
# Allow unfree packages.
|
# Allow unfree packages.
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
|
permittedInsecurePackages = [
|
||||||
|
"mbedtls-2.28.10" # needed for haxe 4.3.6
|
||||||
|
];
|
||||||
# # Allow certain insecure packages
|
# # Allow certain insecure packages
|
||||||
# permittedInsecurePackages = [
|
# permittedInsecurePackages = [
|
||||||
# "firefox-100.0.0"
|
# "firefox-100.0.0"
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ in
|
|||||||
my-namespace.home = {
|
my-namespace.home = {
|
||||||
stream-tools = enabled;
|
stream-tools = enabled;
|
||||||
gnome-customizations = enabled;
|
gnome-customizations = enabled;
|
||||||
|
vesktop-appimage = enabled;
|
||||||
# networking = enabled;
|
# networking = enabled;
|
||||||
# personal-apps = enabled;
|
# personal-apps = enabled;
|
||||||
# suites.laptop = enabled;
|
# suites.laptop = enabled;
|
||||||
@@ -21,12 +22,27 @@ in
|
|||||||
home = {
|
home = {
|
||||||
packages = [
|
packages = [
|
||||||
pkgs.nil
|
pkgs.nil
|
||||||
pkgs.gamemode
|
|
||||||
pkgs.beeper
|
pkgs.beeper
|
||||||
|
pkgs.mpv
|
||||||
pkgs.my-namespace.udev-steelseries
|
pkgs.my-namespace.udev-steelseries
|
||||||
pkgs.qbittorrent
|
pkgs.qbittorrent
|
||||||
pkgs.vesktop
|
pkgs.hyfetch
|
||||||
|
pkgs.libreoffice
|
||||||
|
pkgs.localsend
|
||||||
|
# pkgs.vesktop
|
||||||
pkgs.obsidian
|
pkgs.obsidian
|
||||||
inputs.zen-browser.packages.x86_64-linux.default ];
|
inputs.zen-browser.packages.x86_64-linux.default
|
||||||
|
# inputs.kwin-effects-forceblur.packages.${pkgs.stdenv.hostPlatform.system}.default # Archived.
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Auto-start linux-wallpaperengine for dual monitors via XDG autostart
|
||||||
|
xdg.configFile."autostart/linux-wallpaperengine.desktop".text = ''
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Name=Wallpaper Engine
|
||||||
|
Exec=${pkgs.my-namespace.linux-wallpaperengine}/bin/linux-wallpaperengine --screen-root DP-1 --bg 2935872330 --screen-root DP-2 --bg 2935872330 -f 12
|
||||||
|
X-KDE-autostart-after=panel
|
||||||
|
X-KDE-StartupNotify=false
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
{ config
|
|
||||||
, lib
|
|
||||||
, pkgs
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (lib.my-namespace) enabled;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# ../modules.nix
|
|
||||||
];
|
|
||||||
my-namespace.home = {
|
|
||||||
stream-tools = enabled;
|
|
||||||
# networking = enabled;
|
|
||||||
# personal-apps = enabled;
|
|
||||||
# suites.laptop = enabled;
|
|
||||||
};
|
|
||||||
home = {
|
|
||||||
packages = [
|
|
||||||
pkgs.nil
|
|
||||||
pkgs.beeper
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -20,11 +20,10 @@ in
|
|||||||
home = {
|
home = {
|
||||||
packages = [
|
packages = [
|
||||||
pkgs.nil
|
pkgs.nil
|
||||||
pkgs.gamemode
|
|
||||||
pkgs.beeper
|
pkgs.beeper
|
||||||
pkgs.my-namespace.udev-steelseries
|
pkgs.my-namespace.udev-steelseries
|
||||||
pkgs.qbittorrent
|
pkgs.qbittorrent
|
||||||
pkgs.vesktop
|
#pkgs.vesktop
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
{ pkgs
|
{ config
|
||||||
, config
|
|
||||||
, lib
|
, lib
|
||||||
, ...
|
, ...
|
||||||
}:
|
}:
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ in
|
|||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
inetutils
|
inetutils
|
||||||
neofetch
|
hyfetch
|
||||||
tmux
|
tmux
|
||||||
# nerdfonts
|
# nerdfonts
|
||||||
p7zip
|
p7zip
|
||||||
|
|||||||
@@ -16,11 +16,19 @@ in {
|
|||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.obs-studio = {
|
programs.obs-studio = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = [ pkgs.obs-studio-plugins.droidcam-obs ];
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
|
wlrobs
|
||||||
|
obs-backgroundremoval
|
||||||
|
obs-pipewire-audio-capture
|
||||||
|
obs-vaapi #optional AMD hardware acceleration
|
||||||
|
obs-gstreamer
|
||||||
|
obs-vkcapture
|
||||||
|
pkgs.my-namespace.droidcam-obs # Custom override with FFmpeg 6
|
||||||
|
];
|
||||||
};
|
};
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
# obs-studio
|
config.programs.obs-studio.finalPackage
|
||||||
droidcam
|
droidcam
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
49
modules/home/vesktop-appimage/default.nix
Normal file
49
modules/home/vesktop-appimage/default.nix
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
cfg = config.my-namespace.home.vesktop-appimage;
|
||||||
|
vesktopVersion = "1.6.4";
|
||||||
|
|
||||||
|
vesktopAppImage = pkgs.runCommand "vesktop-appimage" { } ''
|
||||||
|
cp ${pkgs.fetchurl {
|
||||||
|
url = "https://github.com/Vencord/Vesktop/releases/download/v${vesktopVersion}/Vesktop-${vesktopVersion}.AppImage";
|
||||||
|
sha256 = "sha256-o7A8DBQyutONeLp5rstq9hQko2xxbvYZvGGM8/YOQ8s=";
|
||||||
|
}} $out
|
||||||
|
chmod +x $out
|
||||||
|
'';
|
||||||
|
|
||||||
|
vesktopWrapped = pkgs.writeShellScriptBin "vesktop" ''
|
||||||
|
exec ${pkgs.appimage-run}/bin/appimage-run ${vesktopAppImage} "$@"
|
||||||
|
'';
|
||||||
|
|
||||||
|
vesktopIcon = pkgs.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/Vencord/Vesktop/main/build/icon.svg";
|
||||||
|
sha256 = "sha256-fQ+dvbPIb4AFd9f7JqIt7+twJdEMQF9jTTwrk5p1vn8=";
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my-namespace.home.vesktop-appimage = {
|
||||||
|
enable = mkEnableOption "Install Vesktop (AppImage) with Vencord support";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
xdg.dataFile."icons/hicolor/scalable/apps/vesktop.svg".source = vesktopIcon;
|
||||||
|
|
||||||
|
home.packages = [
|
||||||
|
pkgs.appimage-run
|
||||||
|
vesktopWrapped
|
||||||
|
];
|
||||||
|
|
||||||
|
xdg.desktopEntries.vesktop = {
|
||||||
|
name = "Vesktop";
|
||||||
|
comment = "Discord client with Vencord (AppImage)";
|
||||||
|
exec = "${vesktopWrapped}/bin/vesktop";
|
||||||
|
icon = "vesktop";
|
||||||
|
terminal = false;
|
||||||
|
type = "Application";
|
||||||
|
categories = [ "Network" "Chat" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
{ config
|
|
||||||
, lib
|
|
||||||
, inputs
|
|
||||||
, pkgs
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (lib) mkEnableOption mkIf;
|
|
||||||
inherit (lib.my-namespace) disabled enabled;
|
|
||||||
|
|
||||||
cfg = config.my-namespace.cosmic-desktop;
|
|
||||||
# moduleImports = {
|
|
||||||
# "enabled" = [inputs.nixos-cosmic.nixosModules.default];
|
|
||||||
# "disabled" = [];
|
|
||||||
# };
|
|
||||||
# optionalImports = { imports = []; };
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.my-namespace.cosmic-desktop = {
|
|
||||||
enable = mkEnableOption "Enable nvidia";
|
|
||||||
};
|
|
||||||
imports = [ inputs.nixos-cosmic.nixosModules.default ];
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [ "https://cosmic.cachix.org/" ];
|
|
||||||
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.desktopManager.cosmic.enable = true;
|
|
||||||
services.displayManager.cosmic-greeter.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
24
modules/nixos/cs-tools/default.nix
Normal file
24
modules/nixos/cs-tools/default.nix
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{ lib, pkgs, config, namespace, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.${namespace}.cs-tools;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.cs-tools = {
|
||||||
|
enable = lib.mkEnableOption "CS tools including CS Demo Manager and PostgreSQL";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
services.postgresql = {
|
||||||
|
enable = true;
|
||||||
|
ensureDatabases = [ "csdm" ];
|
||||||
|
ensureUsers = [{
|
||||||
|
name = "csdm";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
my-namespace.cs-demo-manager
|
||||||
|
postgresql
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
145
modules/nixos/desktop-environment/default.nix
Normal file
145
modules/nixos/desktop-environment/default.nix
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.${namespace}.desktop-environment;
|
||||||
|
in {
|
||||||
|
|
||||||
|
options.${namespace}.desktop-environment = {
|
||||||
|
xfce = {
|
||||||
|
enable = lib.mkEnableOption "XFCE desktop environment";
|
||||||
|
};
|
||||||
|
gnome = {
|
||||||
|
enable = lib.mkEnableOption "GNOME desktop environment";
|
||||||
|
};
|
||||||
|
kde = {
|
||||||
|
enable = lib.mkEnableOption "KDE Plasma desktop environment";
|
||||||
|
};
|
||||||
|
cosmic = {
|
||||||
|
enable = lib.mkEnableOption "Cosmic desktop environment";
|
||||||
|
};
|
||||||
|
hyprland = {
|
||||||
|
enable = lib.mkEnableOption "hyprland Wayland shell";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkMerge [
|
||||||
|
(lib.mkIf cfg.xfce.enable {
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
desktopManager = {
|
||||||
|
xfce.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
xfce4-pulseaudio-plugin
|
||||||
|
xfce4-clipman-plugin
|
||||||
|
xfce4-screenshooter
|
||||||
|
xfce4-whiskermenu-plugin
|
||||||
|
thunar-archive-plugin
|
||||||
|
thunar-volman
|
||||||
|
gvfs
|
||||||
|
gnome-keyring
|
||||||
|
libgnome-keyring
|
||||||
|
];
|
||||||
|
})
|
||||||
|
|
||||||
|
(lib.mkIf cfg.gnome.enable {
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
services.desktopManager.gnome.enable = true;
|
||||||
|
services.gnome.gnome-remote-desktop.enable = true;
|
||||||
|
systemd.services.gnome-remote-desktop = {
|
||||||
|
wantedBy = [ "graphical.target" ]; # for starting the unit automatically at boot
|
||||||
|
};
|
||||||
|
services.displayManager.autoLogin.enable = false;
|
||||||
|
networking.firewall.allowedTCPPorts = [
|
||||||
|
3389
|
||||||
|
3390
|
||||||
|
];
|
||||||
|
|
||||||
|
# users.users.andreas.extraGroups = [ "sambashare" ];
|
||||||
|
# Enable Avahi (mDNS/DNS-SD) for discovery
|
||||||
|
services.avahi = {
|
||||||
|
enable = true;
|
||||||
|
nssmdns4 = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
# Enable GNOME sharing services
|
||||||
|
services.gnome.gnome-user-share.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
gnome-tweaks
|
||||||
|
gnome-software
|
||||||
|
gnomeExtensions.pop-shell
|
||||||
|
gnome-remote-desktop
|
||||||
|
glib-networking # Required gnome-remote-desktop dependency
|
||||||
|
];
|
||||||
|
systemd.user.services.gnome-remote-desktop.environment = {
|
||||||
|
VK_ICD_FILENAMES = "/dev/null";
|
||||||
|
LIBGL_ALWAYS_SOFTWARE = "1";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.gnome-remote-desktop.environment = {
|
||||||
|
VK_ICD_FILENAMES = "/dev/null";
|
||||||
|
LIBGL_ALWAYS_SOFTWARE = "1";
|
||||||
|
};
|
||||||
|
environment.sessionVariables.XDG_DATA_DIRS = lib.mkAfter [
|
||||||
|
"${pkgs.gnome-remote-desktop}/share"
|
||||||
|
];
|
||||||
|
environment.pathsToLink = [
|
||||||
|
"/share/gsettings-schemas"
|
||||||
|
"/share"
|
||||||
|
];
|
||||||
|
})
|
||||||
|
|
||||||
|
(lib.mkIf cfg.kde.enable {
|
||||||
|
services.xserver.enable = true;
|
||||||
|
services.desktopManager.plasma6.enable = true;
|
||||||
|
environment.sessionVariables = {
|
||||||
|
# Forces KWin to use the legacy DRM interface so "Allow Tearing" actually works
|
||||||
|
# KWIN_DRM_NO_AMS = "1";
|
||||||
|
# Disables the new triple buffering in Plasma 6.1+ to reduce latency
|
||||||
|
# KWIN_DRM_DISABLE_TRIPLE_BUFFERING = "1";
|
||||||
|
# KWIN_USE_HWCURSOR = "0";
|
||||||
|
# KWIN_DRM_USE_EGL_STREAMS = "0";
|
||||||
|
# MESA_VK_WSI_PRESENT_MODE = "immediate";
|
||||||
|
# vblank_mode = "0";
|
||||||
|
};
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
kdePackages.qtwebsockets
|
||||||
|
kdePackages.qtwebchannel
|
||||||
|
kdePackages.korganizer
|
||||||
|
kdePackages.akonadi
|
||||||
|
kdePackages.akonadi-calendar
|
||||||
|
kdePackages.akonadi-contacts
|
||||||
|
kdePackages.kaddressbook
|
||||||
|
kdePackages.kmail
|
||||||
|
kdePackages.kdepim-runtime
|
||||||
|
kdePackages.kontact
|
||||||
|
kdePackages.kidentitymanagement
|
||||||
|
kdePackages.libkdepim
|
||||||
|
kdePackages.kwin
|
||||||
|
kdePackages.plasma-workspace
|
||||||
|
gnome-keyring
|
||||||
|
libgnome-keyring
|
||||||
|
];
|
||||||
|
})
|
||||||
|
(lib.mkIf cfg.cosmic.enable {
|
||||||
|
services.desktopManager.cosmic.enable = true;
|
||||||
|
services.desktopManager.cosmic.xwayland.enable = true;
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
|
||||||
|
gnome-keyring
|
||||||
|
libgnome-keyring
|
||||||
|
];
|
||||||
|
})
|
||||||
|
(lib.mkIf cfg.hyprland.enable {
|
||||||
|
programs.hyprland.enable = true; # enable Hyprland
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
pkgs.kitty # required for the default Hyprland config
|
||||||
|
];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
23
modules/nixos/file-organization/default.nix
Normal file
23
modules/nixos/file-organization/default.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
namespace,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.${namespace}.file-organization;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.file-organization = {
|
||||||
|
enable = lib.mkEnableOption "file organization software";
|
||||||
|
};
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
ranger
|
||||||
|
fsearch
|
||||||
|
qdirstat
|
||||||
|
veracrypt
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
30
modules/nixos/gnome-keyring/default.nix
Normal file
30
modules/nixos/gnome-keyring/default.nix
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{ config, lib, pkgs, namespace, options, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.${namespace}.gnome-keyring;
|
||||||
|
in {
|
||||||
|
options.${namespace}.gnome-keyring = {
|
||||||
|
enable = lib.mkEnableOption "Enable GNOME Keyring integration";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
|
# PAM configuration for automatic keyring unlock
|
||||||
|
security.pam.services.sddm.enableGnomeKeyring = true;
|
||||||
|
security.pam.services.login.enableGnomeKeyring = true;
|
||||||
|
security.pam.services.gdm.enableGnomeKeyring = true;
|
||||||
|
|
||||||
|
# Make KDE apps use GNOME Keyring as the Secret Service backend
|
||||||
|
environment.variables = {
|
||||||
|
# Set GNOME Keyring as the SSH agent
|
||||||
|
SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/keyring/ssh";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
seahorse # GUI for managing the keyring
|
||||||
|
gcr # Keyring integration
|
||||||
|
libsecret # Secret Service API library for KDE apps
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
{ config
|
|
||||||
, lib
|
|
||||||
, pkgs
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (lib) mkEnableOption mkIf;
|
|
||||||
inherit (lib.my-namespace) disabled enabled;
|
|
||||||
|
|
||||||
cfg = config.my-namespace.hardware.graphics-amd-igpu-only;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.my-namespace.hardware.graphics-amd-igpu-only = {
|
|
||||||
enable = mkEnableOption "Enable nvidia";
|
|
||||||
};
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
|
|
||||||
# Enable NVIDIA driver for X11 and Wayland
|
|
||||||
# without modesetting, x server will be run by nvidia
|
|
||||||
services.xserver.videoDrivers = [
|
|
||||||
"amdgpu"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enable OpenGL
|
|
||||||
hardware.graphics = {
|
|
||||||
enable = true;
|
|
||||||
# extraPackages = with pkgs; [ nvidia-vaapi-driver ];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.graphics.enable32Bit = true; # For 32 bit applications
|
|
||||||
|
|
||||||
boot.loader.systemd-boot.consoleMode = "max";
|
|
||||||
|
|
||||||
# Enable required Kernel Modules
|
|
||||||
boot.initrd.kernelModules = [
|
|
||||||
"amdgpu"
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
boot.kernelParams = [
|
|
||||||
"amdgpu.modeset=1"
|
|
||||||
"amd_iommu=on"
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
# Blacklist intel and nouveau
|
|
||||||
boot.blacklistedKernelModules = [
|
|
||||||
"nouveau"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Modesetting is required.
|
|
||||||
# Add user to extra groups
|
|
||||||
users.users.andreas = {
|
|
||||||
extraGroups = [ "video" "render" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,176 +0,0 @@
|
|||||||
{ config
|
|
||||||
, lib
|
|
||||||
, pkgs
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (lib) mkEnableOption mkIf;
|
|
||||||
inherit (lib.my-namespace) disabled enabled;
|
|
||||||
|
|
||||||
cfg = config.my-namespace.hardware.graphics-nvidia-prime-amd-testing;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.my-namespace.hardware.graphics-nvidia-prime-amd-testing = {
|
|
||||||
enable = mkEnableOption "Enable nvidia";
|
|
||||||
};
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
|
|
||||||
# Enable NVIDIA driver for X11 and Wayland
|
|
||||||
# without modesetting, x server will be run by nvidia
|
|
||||||
services.xserver.videoDrivers = [
|
|
||||||
"nvidia"
|
|
||||||
# "nvidia-drm"
|
|
||||||
# "nvidia-uvm"
|
|
||||||
# "nvidia-modeset"
|
|
||||||
# "nvidiafb"
|
|
||||||
"amdgpu"
|
|
||||||
# "modesetting"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enable OpenGL
|
|
||||||
hardware.graphics = {
|
|
||||||
enable = true;
|
|
||||||
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.graphics.enable32Bit = true; # For 32 bit applications
|
|
||||||
|
|
||||||
# Enable Switcheroo
|
|
||||||
services.switcherooControl.enable = true;
|
|
||||||
|
|
||||||
# Use Beta Driver Package
|
|
||||||
boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11_beta ];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
boot.loader.systemd-boot.consoleMode = "max";
|
|
||||||
|
|
||||||
# Enable required Kernel Modules
|
|
||||||
boot.initrd.kernelModules = [
|
|
||||||
"nvidia"
|
|
||||||
"nvidia-drm"
|
|
||||||
"nvidia-uvm"
|
|
||||||
"nvidia-modeset"
|
|
||||||
"nvidiafb"
|
|
||||||
"amdgpu"
|
|
||||||
# # "i2c-nvidia_gpu"
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
boot.kernelParams = [
|
|
||||||
# "amdgpu.modeset=1"
|
|
||||||
# "nvidia-drm.fbdev=1"
|
|
||||||
# "nvidia-drm.modeset=1"
|
|
||||||
# # "nvidia.NVreg_PreserveVideoMemoryAllocations=0"
|
|
||||||
"amd_iommu=on"
|
|
||||||
# "vfio-pci.ids=\"10de:2489,10de:228b\""
|
|
||||||
# "nomodeset"
|
|
||||||
# "nvidia_drm.modeset=1"
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
# Blacklist intel and nouveau
|
|
||||||
boot.blacklistedKernelModules = [
|
|
||||||
# "i915"
|
|
||||||
"nouveau"
|
|
||||||
# "nvidia"
|
|
||||||
# "nvidia-drm"
|
|
||||||
# "nvidia-uvm"
|
|
||||||
# "nvidiafb"
|
|
||||||
# "nvidia_drm"
|
|
||||||
# "nvidia_modeset"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Extra blacklist nouveau
|
|
||||||
# boot.extraModprobeConfig = ''
|
|
||||||
# blacklist nouveau
|
|
||||||
# options nouveau modeset=0
|
|
||||||
# '';
|
|
||||||
|
|
||||||
# services.xserver.config = lib.mkForce ''
|
|
||||||
# Section "ServerLayout"
|
|
||||||
# Identifier "layout"
|
|
||||||
# Screen 0 "amdgpu"
|
|
||||||
# Inactive "nvidia"
|
|
||||||
# Option "AllowNVIDIAGPUScreens"
|
|
||||||
# EndSection
|
|
||||||
|
|
||||||
# Section "Device"
|
|
||||||
# Identifier "nvidia"
|
|
||||||
# Driver "nvidia"
|
|
||||||
# BusID "PCI:01:0:0"
|
|
||||||
# EndSection
|
|
||||||
|
|
||||||
# Section "Screen"
|
|
||||||
# Identifier "nvidia"
|
|
||||||
# Device "nvidia"
|
|
||||||
# EndSection
|
|
||||||
|
|
||||||
# Section "Device"
|
|
||||||
# Identifier "amdgpu"
|
|
||||||
# Driver "amdgpu"
|
|
||||||
# BusID "PCI:50:0:0"
|
|
||||||
# EndSection
|
|
||||||
|
|
||||||
# Section "Screen"
|
|
||||||
# Identifier "amdgpu"
|
|
||||||
# Device "amdgpu"
|
|
||||||
# EndSection
|
|
||||||
# '';
|
|
||||||
|
|
||||||
# Configure NVIDIA driver
|
|
||||||
hardware.nvidia = {
|
|
||||||
# Modesetting is required.
|
|
||||||
modesetting.enable = true;
|
|
||||||
|
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
|
||||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
|
||||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
|
||||||
# of just the bare essentials.
|
|
||||||
powerManagement.enable = true;
|
|
||||||
|
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
|
||||||
powerManagement.finegrained = false;
|
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
|
||||||
# independent third-party "nouveau" open source driver).
|
|
||||||
# Support is limited to the Turing and later architectures. Full list of
|
|
||||||
# supported GPUs is at:
|
|
||||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
|
||||||
# Only available from driver 515.43.04+
|
|
||||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
|
||||||
open = false;
|
|
||||||
|
|
||||||
# Enable the Nvidia settings menu,
|
|
||||||
# accessible via `nvidia-settings`.
|
|
||||||
nvidiaSettings = true;
|
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
|
||||||
# package = config.boot.kernelPackages.nvidiaPackages.none;
|
|
||||||
# package = config.boot.kernelPackages.nvidiaPackages.production;
|
|
||||||
nvidiaPersistenced = true;
|
|
||||||
forceFullCompositionPipeline = true;
|
|
||||||
|
|
||||||
prime = {
|
|
||||||
offload = {
|
|
||||||
enable = true;
|
|
||||||
enableOffloadCmd = true;
|
|
||||||
};
|
|
||||||
# sync.enable=true;
|
|
||||||
# reverseSync.enable = false;
|
|
||||||
# Make sure to use the correct Bus ID values for your system!
|
|
||||||
# intelBusId = "PCI:0:2:0";
|
|
||||||
nvidiaBusId = "PCI:1:0:0";
|
|
||||||
amdgpuBusId = "PCI:50:0:0"; #For AMD GPU
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
# Add user to extra groups
|
|
||||||
users.users.andreas = {
|
|
||||||
extraGroups = [ "video" "render" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,131 +0,0 @@
|
|||||||
{ config
|
|
||||||
, lib
|
|
||||||
, pkgs
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (lib) mkEnableOption mkIf;
|
|
||||||
inherit (lib.my-namespace) disabled enabled;
|
|
||||||
|
|
||||||
cfg = config.my-namespace.hardware.graphics-nvidia-prime-amd;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.my-namespace.hardware.graphics-nvidia-prime-amd = {
|
|
||||||
enable = mkEnableOption "Enable nvidia";
|
|
||||||
};
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
|
|
||||||
# Enable NVIDIA driver for X11 and Wayland
|
|
||||||
services.xserver.videoDrivers = [ "amdgpu" "nvidia" ];
|
|
||||||
|
|
||||||
# Enable OpenGL
|
|
||||||
hardware.graphics = {
|
|
||||||
enable = true;
|
|
||||||
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Use Beta Driver Package
|
|
||||||
boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11_beta ];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
boot.loader.systemd-boot.consoleMode = "max";
|
|
||||||
|
|
||||||
# Enable required Kernel Modules
|
|
||||||
boot.initrd.kernelModules = [
|
|
||||||
"amdgpu"
|
|
||||||
"nvidia"
|
|
||||||
# "nvidia-drm"
|
|
||||||
"nvidiafb"
|
|
||||||
# "nvidia-uvm"
|
|
||||||
# "nvidia-modeset"
|
|
||||||
# "i2c-nvidia_gpu"
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
boot.kernelParams = [
|
|
||||||
"amdgpu.modeset=1"
|
|
||||||
"nvidia-drm.fbdev=1"
|
|
||||||
"nvidia-drm.modeset=0"
|
|
||||||
# "nvidia.NVreg_PreserveVideoMemoryAllocations=0"
|
|
||||||
"amd_iommu=on"
|
|
||||||
# "vfio-pci.ids=\"10de:2489,10de:228b\""
|
|
||||||
# "nomodeset"
|
|
||||||
# "nvidia_drm.modeset=1"
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
# Blacklist intel and nouveau
|
|
||||||
boot.blacklistedKernelModules = [
|
|
||||||
"i915"
|
|
||||||
"nouveau"
|
|
||||||
# "nvidia"
|
|
||||||
# "nvidia-drm"
|
|
||||||
# "nvidia-uvm"
|
|
||||||
# "nvidiafb"
|
|
||||||
# "nvidia_drm"
|
|
||||||
# "nvidia_modeset"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Extra blacklist nouveau
|
|
||||||
boot.extraModprobeConfig = ''
|
|
||||||
blacklist nouveau
|
|
||||||
options nouveau modeset=0
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Configure NVIDIA driver
|
|
||||||
hardware.nvidia = {
|
|
||||||
# Modesetting is required.
|
|
||||||
modesetting.enable = true;
|
|
||||||
|
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
|
||||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
|
||||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
|
||||||
# of just the bare essentials.
|
|
||||||
powerManagement.enable = true;
|
|
||||||
|
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
|
||||||
powerManagement.finegrained = false;
|
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
|
||||||
# independent third-party "nouveau" open source driver).
|
|
||||||
# Support is limited to the Turing and later architectures. Full list of
|
|
||||||
# supported GPUs is at:
|
|
||||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
|
||||||
# Only available from driver 515.43.04+
|
|
||||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
|
||||||
open = false;
|
|
||||||
|
|
||||||
# Enable the Nvidia settings menu,
|
|
||||||
# accessible via `nvidia-settings`.
|
|
||||||
nvidiaSettings = true;
|
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
|
||||||
# package = config.boot.kernelPackages.nvidiaPackages.none;
|
|
||||||
# package = config.boot.kernelPackages.nvidiaPackages.production;
|
|
||||||
|
|
||||||
forceFullCompositionPipeline = false;
|
|
||||||
|
|
||||||
prime = {
|
|
||||||
offload = {
|
|
||||||
enable = true;
|
|
||||||
enableOffloadCmd = true;
|
|
||||||
};
|
|
||||||
reverseSync.enable = false;
|
|
||||||
# Make sure to use the correct Bus ID values for your system!
|
|
||||||
# intelBusId = "PCI:0:2:0";
|
|
||||||
nvidiaBusId = "PCI:01:0:0";
|
|
||||||
amdgpuBusId = "PCI:50:0:0"; #For AMD GPU
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Add user to extra groups
|
|
||||||
users.users.andreas = {
|
|
||||||
extraGroups = [ "video" "render" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
120
modules/nixos/keychron-keyboard/default.nix
Normal file
120
modules/nixos/keychron-keyboard/default.nix
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.${namespace}.keychron-keyboard;
|
||||||
|
in {
|
||||||
|
options.${namespace}.keychron-keyboard = {
|
||||||
|
enable = lib.mkEnableOption "Enable Keychron keyboard configuration";
|
||||||
|
# Add additional options here, e.g. vendor/product IDs, keymaps, etc.
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
||||||
|
# Create the plugdev group and ensure users can access HID devices
|
||||||
|
users.groups.plugdev = {};
|
||||||
|
|
||||||
|
hardware.keyboard.qmk.keychronSupport = true;
|
||||||
|
services.udev.packages = with pkgs; [ qmk qmk-udev-rules ];
|
||||||
|
|
||||||
|
|
||||||
|
# Example udev rule or keychron-specific settings
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
# Atmel DFU
|
||||||
|
### ATmega16U2
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2fef", TAG+="uaccess"
|
||||||
|
### ATmega32U2
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess"
|
||||||
|
### ATmega16U4
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", TAG+="uaccess"
|
||||||
|
### ATmega32U4
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess"
|
||||||
|
### AT90USB64
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", TAG+="uaccess"
|
||||||
|
### AT90USB162
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", TAG+="uaccess"
|
||||||
|
### AT90USB128
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess"
|
||||||
|
|
||||||
|
# Input Club
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess"
|
||||||
|
|
||||||
|
# STM32duino
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess"
|
||||||
|
# STM32 DFU
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
|
||||||
|
|
||||||
|
# BootloadHID
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess"
|
||||||
|
|
||||||
|
# USBAspLoader
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", TAG+="uaccess"
|
||||||
|
|
||||||
|
# USBtinyISP
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1782", ATTRS{idProduct}=="0c9f", TAG+="uaccess"
|
||||||
|
|
||||||
|
# ModemManager should ignore the following devices
|
||||||
|
# Atmel SAM-BA (Massdrop)
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
|
||||||
|
# Caterina (Pro Micro)
|
||||||
|
## pid.codes shared PID
|
||||||
|
### Keyboardio Atreus 2 Bootloader
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2302", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
## Spark Fun Electronics
|
||||||
|
### Pro Micro 3V3/8MHz
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
### Pro Micro 5V/16MHz
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
### LilyPad 3V3/8MHz (and some Pro Micro clones)
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
## Pololu Electronics
|
||||||
|
### A-Star 32U4
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="0101", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
## Arduino SA
|
||||||
|
### Leonardo
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
### Micro
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
## Adafruit Industries LLC
|
||||||
|
### Feather 32U4
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000c", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
### ItsyBitsy 32U4 3V3/8MHz
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000d", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
### ItsyBitsy 32U4 5V/16MHz
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000e", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
## dog hunter AG
|
||||||
|
### Leonardo
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
### Micro
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
|
||||||
|
# hid_listen
|
||||||
|
KERNEL=="hidraw*", MODE="0666", TAG+="uaccess", TAG+="udev-acl"
|
||||||
|
|
||||||
|
# hidraw devices for WebHID (Keychron Launcher, VIA)
|
||||||
|
SUBSYSTEM=="hidraw", MODE="0666", TAG+="uaccess", TAG+="udev-acl"
|
||||||
|
|
||||||
|
# hid bootloaders
|
||||||
|
## QMK HID
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2067", TAG+="uaccess"
|
||||||
|
## PJRC's HalfKay
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0478", TAG+="uaccess"
|
||||||
|
|
||||||
|
# APM32 DFU
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="314b", ATTRS{idProduct}=="0106", TAG+="uaccess"
|
||||||
|
|
||||||
|
# GD32V DFU
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", TAG+="uaccess"
|
||||||
|
|
||||||
|
# WB32 DFU
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess"
|
||||||
|
|
||||||
|
# AT32 DFU
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", TAG+="uaccess"
|
||||||
|
'';
|
||||||
|
#
|
||||||
|
# home.file.".config/some-config".text = ''
|
||||||
|
# # keyboard-related configuration
|
||||||
|
# '';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -43,7 +43,7 @@ in
|
|||||||
age
|
age
|
||||||
wget
|
wget
|
||||||
sops
|
sops
|
||||||
bitwarden
|
# bitwarden-desktop #replaced bitwarden
|
||||||
bitwarden-cli
|
bitwarden-cli
|
||||||
cowsay
|
cowsay
|
||||||
remmina
|
remmina
|
||||||
|
|||||||
23
modules/nixos/performance-tuning/default.nix
Normal file
23
modules/nixos/performance-tuning/default.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.${namespace}.performance-tuning;
|
||||||
|
in {
|
||||||
|
options.${namespace}.performance-tuning.enable = lib.mkEnableOption "performance tuning settings for gaming and general use";
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
boot.kernelParams = [
|
||||||
|
"nvme_core.default_ps_max_latency_us=0"
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.kernel.sysctl = {
|
||||||
|
"vm.swappiness" = 10;
|
||||||
|
"vm.dirty_ratio" = 10;
|
||||||
|
"vm.dirty_background_ratio" = 5;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.pipewire.extraConfig.pipewire."context.properties" = {
|
||||||
|
"default.clock.quantum" = 256;
|
||||||
|
"default.clock.min-quantum" = 128;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -28,48 +28,57 @@
|
|||||||
# enable = true;
|
# enable = true;
|
||||||
# capSysNice = true;
|
# capSysNice = true;
|
||||||
# };
|
# };
|
||||||
programs.steam = {
|
environment.systemPackages = with pkgs; [
|
||||||
enable = true;
|
protonup-ng # Tool to install and manage Proton-GE
|
||||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
lutris
|
||||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
vkd3d
|
||||||
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
dxvk
|
||||||
|
protontricks
|
||||||
|
mangohud
|
||||||
|
vkbasalt
|
||||||
|
gamescope
|
||||||
|
corefonts
|
||||||
|
];
|
||||||
|
|
||||||
# gamescopeSession = {
|
hardware.uinput.enable = true;
|
||||||
# enable = true;
|
users.users.andreas.extraGroups = [ "input" ];
|
||||||
# env = {
|
|
||||||
|
programs.gamescope.enable = true;
|
||||||
|
programs.steam.gamescopeSession = {
|
||||||
|
enable = true;
|
||||||
|
args = [
|
||||||
|
"-w" "1920"
|
||||||
|
"-h" "1080"
|
||||||
|
"-r" "172"
|
||||||
|
"-e" # Enable steam integration
|
||||||
|
"--steam"
|
||||||
|
"--prefer-outpout DP-4"
|
||||||
|
"--prefer-vk-device 8086:e20b" # lspci -nn | grep VGA
|
||||||
|
];
|
||||||
|
env = {
|
||||||
# WLR_RENDERER = "vulkan";
|
# WLR_RENDERER = "vulkan";
|
||||||
# DXVK_HDR = "0 ";
|
# DXVK_HDR = "0 ";
|
||||||
# ENABLE_GAMESCOPE_WSI = "0";
|
# ENABLE_GAMESCOPE_WSI = "0";
|
||||||
# WINE_FULLSCREEN_FSR = "1";
|
# WINE_FULLSCREEN_FSR = "1";
|
||||||
# # Games allegedly prefer X11
|
# SDL_VIDEODRIVER = "wayland,x11"; # Games allegedly prefer X11
|
||||||
# SDL_VIDEODRIVER = "x11";
|
};
|
||||||
# };
|
};
|
||||||
# args = [
|
|
||||||
# "--xwayland-count 1"
|
|
||||||
# "--expose-wayland"
|
|
||||||
|
|
||||||
# "-e" # Enable steam integration
|
programs.steam = {
|
||||||
# "--steam"
|
enable = true;
|
||||||
|
package = pkgs.steam.override {
|
||||||
# # "--adaptive-sync"
|
extraPkgs = pkgs: with pkgs; [
|
||||||
# # "--hdr-enabled"
|
gamemode
|
||||||
# # "--hdr-itm-enable"
|
noto-fonts-color-emoji
|
||||||
|
];
|
||||||
# # External monitor
|
extraEnv = {
|
||||||
# "--prefer-output DP-3"
|
# SDL_VIDEODRIVER = "wayland,x11";
|
||||||
# "--output-width 1920"
|
# SDL_VIDEODRIVER = "x11,wayland";
|
||||||
# "--output-height 1080"
|
};
|
||||||
# "-r 172"
|
};
|
||||||
|
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||||
# # Laptop display
|
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||||
# # "--prefer-output eDP-1"
|
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
||||||
# # "--output-width 2560"
|
|
||||||
# # "--output-height 1600"
|
|
||||||
# # "-r 120"
|
|
||||||
|
|
||||||
# # "--prefer-vk-device 10de:1b81" # lspci -nn | grep VGA
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
71
modules/nixos/wallpaper-engine-kde-plugin/default.nix
Normal file
71
modules/nixos/wallpaper-engine-kde-plugin/default.nix
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
{ lib, pkgs, inputs, config, namespace, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
# Import the plugin as a package derivation from your local repo
|
||||||
|
# Pass the 'inputs' parameter explicitly to make wallpaper-engine-plugin-src available
|
||||||
|
wallpaperEnginePkg = pkgs.callPackage ../../../packages/wallpaper-engine-kde-plugin/default.nix { inherit inputs; };
|
||||||
|
in {
|
||||||
|
options.${namespace}.wallpaper-engine-kde-plugin.enable =
|
||||||
|
lib.mkEnableOption "Enable Wallpaper Engine KDE plugin";
|
||||||
|
|
||||||
|
config = lib.mkIf config.${namespace}.wallpaper-engine-kde-plugin.enable {
|
||||||
|
# Add the imported package and helper script to systemPackages
|
||||||
|
environment.systemPackages = [
|
||||||
|
wallpaperEnginePkg
|
||||||
|
(pkgs.writeShellScriptBin "wallpaper-engine-kde-setup" ''
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
STEAM_DIR="$HOME/.local/share/Steam"
|
||||||
|
WORKSHOP_PATH="$STEAM_DIR/steamapps/workshop/content/431960"
|
||||||
|
|
||||||
|
echo "Wallpaper Engine KDE Plugin Setup Helper"
|
||||||
|
echo "========================================"
|
||||||
|
|
||||||
|
# Check if Steam directory exists
|
||||||
|
if [ -d "$STEAM_DIR" ]; then
|
||||||
|
echo "✅ Steam directory found at: $STEAM_DIR"
|
||||||
|
|
||||||
|
if [ -d "$WORKSHOP_PATH" ]; then
|
||||||
|
echo "✅ Workshop content directory found at: $WORKSHOP_PATH"
|
||||||
|
echo " You can use this path in the wallpaper settings."
|
||||||
|
else
|
||||||
|
echo "⚠️ Workshop content directory not found at the expected location."
|
||||||
|
echo " Please locate your Steam workshop content for Wallpaper Engine (app ID 431960)"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "⚠️ Steam directory not found at: $STEAM_DIR"
|
||||||
|
echo " Please install Steam and Wallpaper Engine first."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check symlinks
|
||||||
|
if [ -L "$HOME/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde" ]; then
|
||||||
|
echo "✅ Plugin symlink is correctly set up"
|
||||||
|
else
|
||||||
|
echo "⚠️ Plugin symlink not found, attempting to create it..."
|
||||||
|
mkdir -p "$HOME/.local/share/plasma/wallpapers"
|
||||||
|
ln -sf /run/current-system/sw/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde \
|
||||||
|
"$HOME/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde"
|
||||||
|
echo " Done! Symlink created."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "To use Wallpaper Engine wallpapers in KDE:"
|
||||||
|
echo "1. Right-click on desktop → Configure Desktop and Wallpaper"
|
||||||
|
echo "2. Select 'Wallpaper Engine' from the wallpaper type list"
|
||||||
|
echo "3. Set the path to your workshop content directory"
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.user.services.wallpaperEngineSymlink = {
|
||||||
|
description = "Symlink Wallpaper Engine plugin for Plasma";
|
||||||
|
wantedBy = [ "graphical-session.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p %h/.local/share/plasma/wallpapers";
|
||||||
|
ExecStart = "${pkgs.coreutils}/bin/ln -sfn /run/current-system/sw/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde %h/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
38
overlays/mesa-gcc/default.nix
Normal file
38
overlays/mesa-gcc/default.nix
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
final: prev: {
|
||||||
|
mesa = (prev.mesa.overrideAttrs (old: rec {
|
||||||
|
version = "git-unstable-2026-05-07";
|
||||||
|
src = prev.fetchFromGitLab {
|
||||||
|
domain = "gitlab.freedesktop.org";
|
||||||
|
owner = "mesa";
|
||||||
|
repo = "mesa";
|
||||||
|
rev = "0f75fa5bfd29770128a412f1fcf5c4121f95e1bb";
|
||||||
|
hash = "sha256-9sqgro3Y+yctcueHEO0hNmySLNn9F1HP3lPqcIow0+k=";
|
||||||
|
};
|
||||||
|
patches = [];
|
||||||
|
buildInputs = old.buildInputs ++ (with prev.llvmPackages_21; [
|
||||||
|
clang-unwrapped
|
||||||
|
libclang
|
||||||
|
]);
|
||||||
|
|
||||||
|
# Create symlinks to clang libraries so meson can find them
|
||||||
|
preConfigure = (old.preConfigure or "") + ''
|
||||||
|
mkdir -p $NIX_BUILD_TOP/clang-libs
|
||||||
|
for lib in ${prev.llvmPackages_21.clang-unwrapped.lib}/lib/*.a; do
|
||||||
|
ln -sf "$lib" "$NIX_BUILD_TOP/clang-libs/"
|
||||||
|
done
|
||||||
|
export LIBRARY_PATH="$NIX_BUILD_TOP/clang-libs:''${LIBRARY_PATH:-}"
|
||||||
|
export CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
|
||||||
|
'';
|
||||||
|
|
||||||
|
mesonFlags =
|
||||||
|
(builtins.filter (flag:
|
||||||
|
!(prev.lib.hasPrefix "-Dclang-libdir=" flag) &&
|
||||||
|
flag != "--sysconfdir=/etc"
|
||||||
|
) old.mesonFlags) ++ [
|
||||||
|
"-Dsysconfdir=${placeholder "out"}/etc"
|
||||||
|
] ++ (if prev.stdenv.hostPlatform.is64bit then [ "-Dintel-rt=enabled" ] else [ "-Dintel-rt=disabled" ]);
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
7
overlays/openldap-testfailure-fix/default.nix
Normal file
7
overlays/openldap-testfailure-fix/default.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
final: prev: {
|
||||||
|
openldap = prev.openldap.overrideAttrs {
|
||||||
|
doCheck = !prev.stdenv.hostPlatform.isi686;
|
||||||
|
};
|
||||||
|
}
|
||||||
43
packages/cs-demo-manager/default.nix
Normal file
43
packages/cs-demo-manager/default.nix
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchurl
|
||||||
|
, appimageTools
|
||||||
|
, postgresql
|
||||||
|
, procps
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
pname = "cs-demo-manager";
|
||||||
|
version = "3.18.2";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/akiver/cs-demo-manager/releases/download/v${version}/CS-Demo-Manager-${version}.AppImage";
|
||||||
|
hash = "sha256-REEhqvfYSKD7EyIYJVlbkQu0h5FZcofc8X7Zhu1xZnA="; # You need to add the hash after first build attempt
|
||||||
|
};
|
||||||
|
|
||||||
|
appimageContents = appimageTools.extractType2 {
|
||||||
|
inherit pname version src;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
appimageTools.wrapType2 {
|
||||||
|
inherit pname version src;
|
||||||
|
|
||||||
|
extraPkgs = pkgs: [ postgresql procps ];
|
||||||
|
|
||||||
|
extraInstallCommands = ''
|
||||||
|
install -m 444 -D ${appimageContents}/cs-demo-manager.desktop $out/share/applications/cs-demo-manager.desktop
|
||||||
|
install -m 444 -D ${appimageContents}/cs-demo-manager.png $out/share/icons/hicolor/512x512/apps/cs-demo-manager.png
|
||||||
|
|
||||||
|
substituteInPlace $out/share/applications/cs-demo-manager.desktop \
|
||||||
|
--replace 'Exec=AppRun' 'Exec=${pname}'
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "An application to manage Counter-Strike demos";
|
||||||
|
homepage = "https://github.com/akiver/cs-demo-manager";
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
|
platforms = [ "x86_64-linux" ];
|
||||||
|
maintainers = [ ];
|
||||||
|
};
|
||||||
|
}
|
||||||
46
packages/droidcam-obs/default.nix
Normal file
46
packages/droidcam-obs/default.nix
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
stdenv,
|
||||||
|
fetchurl,
|
||||||
|
autoPatchelfHook,
|
||||||
|
namespace,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "droidcam-obs";
|
||||||
|
version = "2.4.1";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/dev47apps/droidcam-obs-plugin/releases/download/${version}/droidcam_obs_${version}_linux_x86_64.zip";
|
||||||
|
sha256 = "sha256-18IjC3+WR5XLo464RuwAtWRNSpQcsnarXu56CrxCMhM=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgs.unzip autoPatchelfHook ];
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
stdenv.cc.cc.lib
|
||||||
|
obs-studio
|
||||||
|
];
|
||||||
|
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
mkdir -p $out/lib/obs-plugins
|
||||||
|
mkdir -p $out/share/obs/obs-plugins/droidcam-obs
|
||||||
|
|
||||||
|
cp bin/64bit/*.so $out/lib/obs-plugins/
|
||||||
|
cp -r data/* $out/share/obs/obs-plugins/droidcam-obs/
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "DroidCam OBS Plugin - Use your phone as a camera in OBS (FFmpeg 7 compatible)";
|
||||||
|
homepage = "https://www.dev47apps.com/obs/";
|
||||||
|
license = licenses.unfree;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
135
packages/linux-wallpaperengine/default.nix
Normal file
135
packages/linux-wallpaperengine/default.nix
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
fetchFromGitHub,
|
||||||
|
autoPatchelfHook,
|
||||||
|
cmake,
|
||||||
|
file,
|
||||||
|
pkg-config,
|
||||||
|
python3,
|
||||||
|
SDL2,
|
||||||
|
SDL2_mixer,
|
||||||
|
cef-binary,
|
||||||
|
egl-wayland,
|
||||||
|
ffmpeg,
|
||||||
|
fftw,
|
||||||
|
glew,
|
||||||
|
glfw,
|
||||||
|
glm,
|
||||||
|
gmp,
|
||||||
|
kissfftFloat,
|
||||||
|
libxau,
|
||||||
|
libxdmcp,
|
||||||
|
libxpm,
|
||||||
|
libxrandr,
|
||||||
|
libxxf86vm,
|
||||||
|
libdecor,
|
||||||
|
libffi,
|
||||||
|
libglut,
|
||||||
|
libpng,
|
||||||
|
libpulseaudio,
|
||||||
|
lz4,
|
||||||
|
mpv,
|
||||||
|
wayland,
|
||||||
|
wayland-protocols,
|
||||||
|
wayland-scanner,
|
||||||
|
zlib,
|
||||||
|
nix-update-script,
|
||||||
|
inputs,
|
||||||
|
namespace, ...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
cef = cef-binary.override {
|
||||||
|
version = "135.0.17"; # follow upstream. https://github.com/Almamu/linux-wallpaperengine/blob/b39f12757908eda9f4c1039613b914606568bb84/CMakeLists.txt#L47
|
||||||
|
gitRevision = "cbc1c5b";
|
||||||
|
chromiumVersion = "135.0.7049.52";
|
||||||
|
|
||||||
|
srcHashes = {
|
||||||
|
aarch64-linux = "sha256-LK5JvtcmuwCavK7LnWmMF2UDpM5iIZOmsuZS/t9koDs=";
|
||||||
|
x86_64-linux = "sha256-JKwZgOYr57GuosM31r1Lx3DczYs35HxtuUs5fxPsTcY=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "linux-wallpaperengine";
|
||||||
|
version = "0-unstable-2025-12-19";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "Almamu";
|
||||||
|
repo = "linux-wallpaperengine";
|
||||||
|
rev = "f79c29f067b2613895419e351033582464577154";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
hash = "sha256-AISdouVqMXTYErQoT7oM5H+vlrw03NtpI9FqDwZ0J9A=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
autoPatchelfHook
|
||||||
|
cmake
|
||||||
|
file
|
||||||
|
pkg-config
|
||||||
|
python3
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
SDL2
|
||||||
|
SDL2_mixer
|
||||||
|
egl-wayland
|
||||||
|
ffmpeg
|
||||||
|
fftw
|
||||||
|
glew
|
||||||
|
glfw
|
||||||
|
glm
|
||||||
|
gmp
|
||||||
|
kissfftFloat
|
||||||
|
libxau
|
||||||
|
libxdmcp
|
||||||
|
libxpm
|
||||||
|
libxrandr
|
||||||
|
libxxf86vm
|
||||||
|
libdecor
|
||||||
|
libffi
|
||||||
|
libglut
|
||||||
|
libpng
|
||||||
|
libpulseaudio
|
||||||
|
lz4
|
||||||
|
mpv
|
||||||
|
wayland
|
||||||
|
wayland-protocols
|
||||||
|
wayland-scanner
|
||||||
|
zlib
|
||||||
|
];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DCEF_ROOT=${cef}"
|
||||||
|
"-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/share/linux-wallpaperengine"
|
||||||
|
];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
rm -rf $out/bin $out/lib $out/include
|
||||||
|
chmod 755 $out/share/linux-wallpaperengine/linux-wallpaperengine
|
||||||
|
mkdir $out/bin
|
||||||
|
ln -s $out/share/linux-wallpaperengine/linux-wallpaperengine $out/bin/linux-wallpaperengine
|
||||||
|
'';
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
find $out/share/linux-wallpaperengine -type f -exec file {} \; | grep 'ELF' | cut -d: -f1 | while read -r elf_file; do
|
||||||
|
patchelf --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE" "$elf_file"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Wallpaper Engine backgrounds for Linux";
|
||||||
|
homepage = "https://github.com/Almamu/linux-wallpaperengine";
|
||||||
|
license = lib.licenses.gpl3Plus;
|
||||||
|
mainProgram = "linux-wallpaperengine";
|
||||||
|
maintainers = [ ];
|
||||||
|
platforms = [
|
||||||
|
"x86_64-linux"
|
||||||
|
"aarch64-linux"
|
||||||
|
];
|
||||||
|
hydraPlatforms = [ "x86_64-linux" ]; # Hydra "aarch64-linux" fails with "Output limit exceeded"
|
||||||
|
};
|
||||||
|
})
|
||||||
@@ -7,7 +7,7 @@ pkgs.mkShellNoCC {
|
|||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
cowsay
|
cowsay
|
||||||
lolcat
|
lolcat
|
||||||
bitwarden
|
# bitwarden-desktop #replaced bitwarden
|
||||||
bitwarden-cli
|
bitwarden-cli
|
||||||
sops
|
sops
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -2,16 +2,19 @@
|
|||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{
|
||||||
|
# config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [
|
||||||
[
|
|
||||||
./hardware/hardware-configuration.nix
|
./hardware/hardware-configuration.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
# boot.loader.systemd-boot.enable = true; # managed by lanzaboote
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
networking.hostName = "drivebystation-nix"; # Define your hostname.
|
networking.hostName = "drivebystation-nix"; # Define your hostname.
|
||||||
@@ -43,63 +46,17 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
displayManager.sddm.enable = false;
|
# Enable Gnome Session
|
||||||
|
displayManager.gdm.enable = false;
|
||||||
|
displayManager.sddm.enable = true;
|
||||||
|
displayManager.sddm.wayland.enable = true;
|
||||||
|
displayManager.cosmic-greeter.enable = false;
|
||||||
displayManager.defaultSession = "gnome";
|
displayManager.defaultSession = "gnome";
|
||||||
desktopManager.plasma6.enable = true;
|
|
||||||
xserver = {
|
xserver = {
|
||||||
enable = true; # Enable the deprecated X11 teletype terminal connection system.
|
enable = true; # Enable the deprecated X11 teletype terminal connection system.
|
||||||
# Specify first device section to use nvidia GPU
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# services.xserver.config = lib.mkForce ''
|
|
||||||
# Section "ServerLayout"
|
|
||||||
# Identifier "layout"
|
|
||||||
# Screen 0 "amdgpu"
|
|
||||||
# Inactive "nvidia"
|
|
||||||
# Option "AllowNVIDIAGPUScreens"
|
|
||||||
# EndSection
|
|
||||||
|
|
||||||
# Section "Device"
|
|
||||||
# Identifier "nvidia"
|
|
||||||
# Driver "nvidia"
|
|
||||||
# BusID "PCI:01:0:0"
|
|
||||||
# EndSection
|
|
||||||
|
|
||||||
# Section "Screen"
|
|
||||||
# Identifier "nvidia"
|
|
||||||
# Device "nvidia"
|
|
||||||
# EndSection
|
|
||||||
|
|
||||||
# Section "Device"
|
|
||||||
# Identifier "amdgpu"
|
|
||||||
# Driver "amdgpu"
|
|
||||||
# BusID "PCI:50:0:0"
|
|
||||||
# EndSection
|
|
||||||
|
|
||||||
# Section "Screen"
|
|
||||||
# Identifier "amdgpu"
|
|
||||||
# Device "amdgpu"
|
|
||||||
# EndSection
|
|
||||||
# '';
|
|
||||||
|
|
||||||
desktopManager = {
|
|
||||||
# Disable xterm
|
|
||||||
xterm.enable = false;
|
|
||||||
# Enable xfce session
|
|
||||||
xfce = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
# Enable Gnome Session
|
|
||||||
gnome.enable = true;
|
|
||||||
# Disable fuckshit plasma
|
|
||||||
};
|
|
||||||
# Configure Display Manager
|
# Configure Display Manager
|
||||||
displayManager = {
|
displayManager = {
|
||||||
gdm.enable = true;
|
|
||||||
# Enable lightdm
|
|
||||||
lightdm.enable = false;
|
lightdm.enable = false;
|
||||||
};
|
};
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
@@ -107,6 +64,9 @@
|
|||||||
layout = "us";
|
layout = "us";
|
||||||
variant = "intl";
|
variant = "intl";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Specify first device section to use nvidia GPU
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# services.xserver.displayManager.defaultSession = "gnome-x11"; # services.xserver.displayManager.autoLogin.enable = true;
|
# services.xserver.displayManager.defaultSession = "gnome-x11"; # services.xserver.displayManager.autoLogin.enable = true;
|
||||||
@@ -123,7 +83,7 @@
|
|||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
|
|
||||||
# Enable sound with pipewire.
|
# Enable sound with pipewire.
|
||||||
hardware.pulseaudio.enable = false;
|
services.pulseaudio.enable = false;
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -131,31 +91,96 @@
|
|||||||
alsa.support32Bit = true;
|
alsa.support32Bit = true;
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
# If you want to use JACK applications, uncomment this
|
# If you want to use JACK applications, uncomment this
|
||||||
#jack.enable = true;
|
jack.enable = true;
|
||||||
|
|
||||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||||
# no need to redefine it in your config for now)
|
# no need to redefine it in your config for now)
|
||||||
#media-session.enable = true;
|
#media-session.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Enable gamemode for game optimization
|
||||||
|
programs.gamemode.enable = true;
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
# services.xserver.libinput.enable = true;
|
# services.xserver.libinput.enable = true;
|
||||||
|
|
||||||
# Install firefox.
|
# Install firefox.
|
||||||
programs.firefox.enable = true;
|
programs.firefox.enable = true;
|
||||||
|
|
||||||
|
# Enable XWayland for X11 application compatibility
|
||||||
|
programs.xwayland.enable = true;
|
||||||
|
|
||||||
|
# docker
|
||||||
|
virtualisation.docker = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
# Allow unfree packages
|
# Allow unfree packages
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
# Enable --Akonadi--/ kde-pim for calendar backend
|
||||||
|
programs.kde-pim.enable = true;
|
||||||
|
services.dbus.enable = true;
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
# List packages installed in system profile. To search, run:
|
||||||
# $ nix search wget
|
# $ nix search wget
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||||
# wget
|
# wget
|
||||||
xfce.xfce4-whiskermenu-plugin
|
(python3.withPackages (ps: with ps; [ websockets ]))
|
||||||
gnome-tweaks
|
sqlite
|
||||||
|
javaPackages.compiler.openjdk25
|
||||||
|
javaPackages.compiler.openjdk21
|
||||||
|
qt6.qtwebengine
|
||||||
|
qemu
|
||||||
|
mpv
|
||||||
|
krita
|
||||||
|
ntfs3g
|
||||||
|
htop
|
||||||
|
rivalcfg
|
||||||
|
blender
|
||||||
|
reaper
|
||||||
|
discord
|
||||||
|
betterdiscordctl
|
||||||
];
|
];
|
||||||
|
environment.etc."xdg/autostart/xwaylandvideobridge.desktop".text = ''
|
||||||
|
[Desktop Entry]
|
||||||
|
Hidden=true
|
||||||
|
'';
|
||||||
|
|
||||||
|
services.udisks2.settings = { # Should fix mounting ntfs system partition - Did not work
|
||||||
|
"udisks2.conf" = {
|
||||||
|
defaults = {
|
||||||
|
allow_mount_internal = true;
|
||||||
|
allow_mount_system = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.gvfs.enable = true; # For file manager integration
|
||||||
|
|
||||||
|
# Enable udev rules for SteelSeries devices (rivalcfg)
|
||||||
|
services.udev.packages = [ pkgs.rivalcfg ];
|
||||||
|
|
||||||
|
# Disable iBus (not needed unless using Asian input methods)
|
||||||
|
i18n.inputMethod = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.libvirtd = {
|
||||||
|
enable = true;
|
||||||
|
qemu = {
|
||||||
|
package = pkgs.qemu;
|
||||||
|
runAsRoot = true;
|
||||||
|
swtpm.enable = true;
|
||||||
|
vhostUserPackages = [ pkgs.virtiofsd ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
# started in user sessions.
|
# started in user sessions.
|
||||||
# programs.mtr.enable = true;
|
# programs.mtr.enable = true;
|
||||||
@@ -167,18 +192,69 @@
|
|||||||
# List services that you want to enable:
|
# List services that you want to enable:
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
# Enable the OpenSSH daemon.
|
||||||
# services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
|
||||||
# Open ports in the firewall.
|
# Open ports in the .
|
||||||
networking.firewall.allowedTCPPorts = [
|
networking.firewall.allowedTCPPorts = [
|
||||||
24800 #Synergy
|
24800 #Synergy
|
||||||
|
53317 #localsend
|
||||||
|
3390 #rdp
|
||||||
|
9090
|
||||||
|
8000
|
||||||
|
40122
|
||||||
];
|
];
|
||||||
networking.firewall.allowedUDPPorts = [
|
networking.firewall.allowedUDPPorts = [
|
||||||
24800 #Synergy
|
24800 #Synergy
|
||||||
|
53317 #localsend
|
||||||
|
3390 #rdp
|
||||||
|
9090
|
||||||
|
8000
|
||||||
|
40122
|
||||||
];
|
];
|
||||||
|
networking.firewall.trustedInterfaces = [ "virbr0" ];
|
||||||
|
networking.nat = {
|
||||||
|
enable = true;
|
||||||
|
internalInterfaces = [ "virbr0" ];
|
||||||
|
externalInterface = "enp75s0";
|
||||||
|
extraCommands = ''
|
||||||
|
# MASQUERADE forwarded traffic to VM so it knows how to route back
|
||||||
|
iptables -t nat -A nixos-nat-post -o virbr0 -j MASQUERADE
|
||||||
|
'';
|
||||||
|
forwardPorts = [
|
||||||
|
{
|
||||||
|
sourcePort = 9090;
|
||||||
|
proto = "tcp";
|
||||||
|
destination = "192.168.122.113:9090";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
sourcePort = 9090;
|
||||||
|
proto = "udp";
|
||||||
|
destination = "192.168.122.113:9090";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
services.mullvad-vpn.enable = true;
|
||||||
|
services.mullvad-vpn.package = pkgs.mullvad-vpn;
|
||||||
# Or disable the firewall altogether.
|
# Or disable the firewall altogether.
|
||||||
# networking.firewall.enable = false;
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
|
fonts = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-color-emoji
|
||||||
|
];
|
||||||
|
fontconfig = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
defaultFonts = {
|
||||||
|
sansSerif = [ "DejaVu Sans" "Noto Color Emoji" ];
|
||||||
|
serif = [ "DejaVu Serif" "Noto Color Emoji" ];
|
||||||
|
monospace = [ "DejaVu Sans Mono" "Noto Color Emoji" ];
|
||||||
|
emoji = [ "Noto Color Emoji" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
|||||||
@@ -10,23 +10,23 @@
|
|||||||
inputs,
|
inputs,
|
||||||
# Additional metadata is provided by Snowfall Lib.
|
# Additional metadata is provided by Snowfall Lib.
|
||||||
# The namespace used for your flake, defaulting to "internal" if not set.
|
# The namespace used for your flake, defaulting to "internal" if not set.
|
||||||
namespace,
|
# namespace,
|
||||||
# The system architecture for this host (eg. `x86_64-linux`).
|
# The system architecture for this host (eg. `x86_64-linux`).
|
||||||
system,
|
# system,
|
||||||
# The Snowfall Lib target for this system (eg. `x86_64-iso`).
|
# The Snowfall Lib target for this system (eg. `x86_64-iso`).
|
||||||
target,
|
# target,
|
||||||
# A normalized name for the system target (eg. `iso`).
|
# A normalized name for the system target (eg. `iso`).
|
||||||
format,
|
# format,
|
||||||
# A boolean to determine whether this system is a virtual target using nixos-generators.
|
# A boolean to determine whether this system is a virtual target using nixos-generators.
|
||||||
virtual,
|
# virtual,
|
||||||
# An attribute map of your defined hosts.
|
# An attribute map of your defined hosts.
|
||||||
systems,
|
# systems,
|
||||||
# All other arguments come from the system system.
|
# All other arguments come from the system system.
|
||||||
config
|
# config,
|
||||||
, ...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (lib.my-namespace) enabled;
|
# inherit (lib.my-namespace) systemPackages;
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
installedPackages = lib.my-namespace.mkPackages pkgs;
|
installedPackages = lib.my-namespace.mkPackages pkgs;
|
||||||
in
|
in
|
||||||
@@ -35,60 +35,90 @@ in
|
|||||||
imports = [
|
imports = [
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
./video.nix
|
./video.nix
|
||||||
|
inputs.aagl.nixosModules.default
|
||||||
];
|
];
|
||||||
config = {
|
config = {
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
|
# Desktops
|
||||||
|
my-namespace.desktop-environment.xfce.enable = true;
|
||||||
|
my-namespace.desktop-environment.gnome.enable = true;
|
||||||
|
my-namespace.desktop-environment.kde.enable = true;
|
||||||
|
my-namespace.desktop-environment.hyprland.enable = true;
|
||||||
|
my-namespace.desktop-environment.cosmic.enable = true;
|
||||||
|
my-namespace.performance-tuning.enable = true;
|
||||||
|
my-namespace.file-organization.enable = true;
|
||||||
|
# GNOME-keyring
|
||||||
|
my-namespace.gnome-keyring.enable = true;
|
||||||
|
# CS Tools
|
||||||
|
my-namespace.cs-tools.enable = true;
|
||||||
|
|
||||||
users.users.andreas = {
|
users.users.andreas = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "Andreas Schaafsma";
|
description = "Andreas Schaafsma";
|
||||||
extraGroups = [ "networkmanager" "wheel" ] ;
|
extraGroups = [
|
||||||
|
"networkmanager"
|
||||||
|
"wheel"
|
||||||
|
"libvirtd"
|
||||||
|
"plugdev"
|
||||||
|
"docker"
|
||||||
|
"gamemode"
|
||||||
|
];
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
# Packages from inputs
|
# Packages from inputsq
|
||||||
inputs.game-of-life.packages.x86_64-linux.default
|
inputs.game-of-life.packages.x86_64-linux.default
|
||||||
inputs.zen-browser.packages.x86_64-linux.default
|
inputs.zen-browser.packages.x86_64-linux.default
|
||||||
inputs.nixos-cosmic
|
inputs.anikki.packages.x86_64-linux.default
|
||||||
inputs.trilium-next-pr.legacyPackages.x86_64-linux.trilium-next-desktop
|
|
||||||
# We want flatpak support
|
# We want flatpak support
|
||||||
flatpak
|
flatpak
|
||||||
# GNOME shit
|
# GNOME shit
|
||||||
gnome-software
|
thunderbird
|
||||||
gnomeExtensions.pop-shell
|
|
||||||
gnome-remote-desktop
|
|
||||||
|
|
||||||
soundwireserver
|
soundwireserver
|
||||||
vscode
|
vscode
|
||||||
spotify
|
spotify
|
||||||
appimage-run
|
appimage-run
|
||||||
minecraft
|
prismlauncher #replaces broken minecraft package
|
||||||
trilium-desktop
|
trilium-desktop
|
||||||
terraform
|
terraform
|
||||||
|
virt-manager
|
||||||
|
nil
|
||||||
# thunderbird
|
# thunderbird
|
||||||
];
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.anime-game-launcher.enable = true; # Adds launcher and /etc/hosts rules
|
||||||
|
programs.anime-games-launcher.enable = true;
|
||||||
|
|
||||||
services.gnome.gnome-remote-desktop.enable = true;
|
services.gnome.gnome-remote-desktop.enable = true;
|
||||||
my-namespace.cosmic-desktop.enable = false;
|
my-namespace.keychron-keyboard.enable = true;
|
||||||
|
|
||||||
# lib.my-namespace.home.stream-tools.enable = true;
|
# lib.my-namespace.home.stream-tools.enable = true;
|
||||||
|
|
||||||
# Open ports in the firewall.
|
# Open ports in the firewall.
|
||||||
networking.firewall.allowedTCPPorts = [
|
networking.firewall.allowedTCPPorts = [
|
||||||
59010 #SoundWireServer
|
59010 #SoundWireServer
|
||||||
|
5001
|
||||||
|
11434
|
||||||
3389 #RDP
|
3389 #RDP
|
||||||
22 #ssh
|
22 #ssh
|
||||||
];
|
];
|
||||||
networking.firewall.allowedUDPPorts = [
|
networking.firewall.allowedUDPPorts = [
|
||||||
59010 #SoundWireServer
|
59010 #SoundWireServer
|
||||||
|
5001
|
||||||
|
11434
|
||||||
3389 #RDP
|
3389 #RDP
|
||||||
22 #ssh
|
22 #ssh
|
||||||
];
|
];
|
||||||
# Or disable the firewall altogether.
|
# Or disable the firewall altogether.
|
||||||
# networking.firewall.enable = false;
|
networking.firewall.enable = false;
|
||||||
|
|
||||||
|
|
||||||
# Install firefox.
|
# Install firefox.
|
||||||
programs.firefox.enable = true;
|
programs.firefox.enable = true;
|
||||||
nixpkgs.config.allowBroken = true;
|
nixpkgs.config.allowBroken = true;
|
||||||
|
powerManagement.cpuFreqGovernor = "performance";
|
||||||
# Set up system Packages
|
# Set up system Packages
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
git
|
git
|
||||||
@@ -98,24 +128,43 @@ in
|
|||||||
ntfs3g
|
ntfs3g
|
||||||
ntfsprogs
|
ntfsprogs
|
||||||
synergy
|
synergy
|
||||||
|
mangohud
|
||||||
my-namespace.udev-steelseries
|
my-namespace.udev-steelseries
|
||||||
my-namespace.hello
|
my-namespace.hello
|
||||||
# stuff I installed to try to get gamescope to work to no avail Gamescope is just broken it seems.
|
my-namespace.linux-wallpaperengine
|
||||||
# pkgs.mesa
|
|
||||||
# pkgs.vulkan-loader
|
(pkgs.writeShellScriptBin "switch-to-desktop" ''
|
||||||
# pkgs.vulkan-validation-layers
|
#!/bin/sh
|
||||||
# pkgs.vulkan-extension-layer
|
# Kill Steam and return to display manager
|
||||||
# pkgs.vulkan-tools
|
pkill steam || true
|
||||||
# pkgs.libva
|
pkill gamescope || true
|
||||||
# pkgs.libva-utils
|
# End the session cleanly
|
||||||
|
loginctl terminate-session "$XDG_SESSION_ID"
|
||||||
|
'')
|
||||||
|
|
||||||
|
(pkgs.writeShellScriptBin "steamos-session-select" ''
|
||||||
|
#!/bin/sh
|
||||||
|
exec switch-to-desktop
|
||||||
|
'')
|
||||||
|
|
||||||
|
# Vulkan packages for Steam
|
||||||
|
mesa
|
||||||
|
vulkan-loader
|
||||||
|
vulkan-validation-layers
|
||||||
|
vulkan-extension-layer
|
||||||
|
vulkan-tools
|
||||||
|
libva
|
||||||
|
libva-utils
|
||||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||||
# wget
|
# wget
|
||||||
]
|
]
|
||||||
++ installedPackages.packages;
|
++ installedPackages.packages;
|
||||||
|
|
||||||
programs.nix-ld = {
|
programs.nix-ld = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nix-ld-rs;
|
package = pkgs.nix-ld; #replaces nix-ld-rs
|
||||||
};
|
};
|
||||||
|
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
systemd.services.flatpak-repo = {
|
systemd.services.flatpak-repo = {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
@@ -136,14 +185,17 @@ in
|
|||||||
|
|
||||||
# services.xrdp.enable = true;
|
# services.xrdp.enable = true;
|
||||||
# services.xrdp.defaultWindowManager = "${pkgs.gnome-session}/bin/gnome-session";
|
# services.xrdp.defaultWindowManager = "${pkgs.gnome-session}/bin/gnome-session";
|
||||||
|
# services.xrdp.defaultWindowManager = "startxfce4";
|
||||||
# services.xrdp.openFirewall = true;
|
# services.xrdp.openFirewall = true;
|
||||||
|
# services.xrdp.audio.enable = false;
|
||||||
|
|
||||||
|
|
||||||
# Disable the GNOME3/GDM auto-suspend feature that cannot be disabled in GUI!
|
# Disable the GNOME3/GDM auto-suspend feature that cannot be disabled in GUI!
|
||||||
# If no user is logged in, the machine will power down after 20 minutes.
|
# If no user is logged in, the machine will power down after 20 minutes.
|
||||||
systemd.targets.sleep.enable = true;
|
|
||||||
systemd.targets.suspend.enable = true;
|
systemd.targets.sleep.enable = false;
|
||||||
systemd.targets.hibernate.enable = true;
|
systemd.targets.suspend.enable = false;
|
||||||
systemd.targets.hybrid-sleep.enable = true;
|
systemd.targets.hibernate.enable = false;
|
||||||
|
systemd.targets.hybrid-sleep.enable = false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,10 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
{
|
{
|
||||||
boot.kernelParams = [ "drm.edid_firmware=DP-1:edid/edid.bin" ];
|
# boot.kernelParams = [ "drm.edid_firmware=DP-1:edid/edid.bin,DP-2:edid/edid.bin,DP-3:edid/edid.bin,DP-4:edid/edid.bin" ];
|
||||||
|
boot.kernelParams = [
|
||||||
|
"drm.edid_firmware=DP-2:edid/edid.bin,DP-4:edid/edid.bin"
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
hardware.firmware = [
|
hardware.firmware = [
|
||||||
(
|
(
|
||||||
|
|||||||
Binary file not shown.
BIN
systems/x86_64-linux/drivebystation-nix/hardware/firmware/U32J59x-edid.bin
Executable file
BIN
systems/x86_64-linux/drivebystation-nix/hardware/firmware/U32J59x-edid.bin
Executable file
Binary file not shown.
@@ -0,0 +1,133 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
############################
|
||||||
|
## Display + Mesa Settings
|
||||||
|
############################
|
||||||
|
|
||||||
|
# hardware.enableRedistributableFirmware = true;
|
||||||
|
|
||||||
|
hardware.firmware = [
|
||||||
|
pkgs.linux-firmware
|
||||||
|
# pkgs.firmwareLinuxNonfree
|
||||||
|
# pkgs.firmwareLinuxStrict
|
||||||
|
# pkgs.firmwareLinuxLatest
|
||||||
|
];
|
||||||
|
|
||||||
|
# boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
boot.kernelParams = [
|
||||||
|
"console=tty0"
|
||||||
|
# "efifb=off"
|
||||||
|
"xe.force_probe=e20b"
|
||||||
|
# Xe stability improvements for B580
|
||||||
|
"xe.guc_log_level=0" # Reduce GuC logging overhead
|
||||||
|
"xe.enable_display=1" # Ensure display is enabled
|
||||||
|
# Memory/performance parameters
|
||||||
|
"mitigations=off" # Disable CPU mitigations for better performance
|
||||||
|
"module_blacklist=nouveau,nvidia,nvidia_drm,nvidia_modeset,nvidia_uvm"
|
||||||
|
];
|
||||||
|
services.switcherooControl.enable = true;
|
||||||
|
# environment.variables.VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/intel_icd.x86_64.json";
|
||||||
|
hardware.intel-gpu-tools.enable = true;
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
enable32Bit = true;
|
||||||
|
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
intel-media-driver # Intel VAAPI
|
||||||
|
vpl-gpu-rt # oneVPL runtime
|
||||||
|
intel-vaapi-driver # fallback
|
||||||
|
intel-compute-runtime # OpenCL/Level Zero
|
||||||
|
level-zero # Level Zero API for compute
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Ensure Arc driver is available (usually auto-loaded)
|
||||||
|
boot.kernelModules = [ "xe" "i915" ];
|
||||||
|
# Blacklist everything for nvidia
|
||||||
|
boot.blacklistedKernelModules = [
|
||||||
|
"nouveau"
|
||||||
|
"nvidia"
|
||||||
|
"nvidia_drm"
|
||||||
|
"nvidia_modeset"
|
||||||
|
"nvidia_uvm"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Mark Arc B580 as a discrete Intel GPU for switcheroo-control and
|
||||||
|
# keep runtime PCI power management enabled for the device.
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
ACTION=="add|bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{device}=="0xe20b", TEST=="power/control", ATTR{power/control}="auto"
|
||||||
|
SUBSYSTEM=="drm", DRIVERS=="xe", ATTRS{vendor}=="0x8086", ATTRS{device}=="0xe20b", TAG+="switcheroo-discrete-gpu"
|
||||||
|
'';
|
||||||
|
|
||||||
|
environment.variables = {
|
||||||
|
# Force Intel GPU for all graphics operations
|
||||||
|
KWIN_DRM_DEVICES = "/dev/dri/card0";
|
||||||
|
|
||||||
|
# Vulkan/DXVK optimizations for B580
|
||||||
|
ANV_ENABLE_PIPELINE_CACHE = "1";
|
||||||
|
|
||||||
|
# Shader cache settings
|
||||||
|
MESA_SHADER_CACHE_DISABLE = "false";
|
||||||
|
MESA_SHADER_CACHE_MAX_SIZE = "10G";
|
||||||
|
|
||||||
|
# DXVK optimizations
|
||||||
|
DXVK_HUD = "compiler"; # Monitor shader compilation
|
||||||
|
# DXVK_ASYNC = "1"; # Enable if you want async shader compilation (may cause issues)
|
||||||
|
|
||||||
|
# Intel IPEX / PyTorch settings
|
||||||
|
ZE_ENABLE_ALT_DRIVERS = "libze_intel_gpu.so.1"; # Enable Intel GPU driver for Level Zero
|
||||||
|
SYCL_CACHE_PERSISTENT = "1"; # Enable persistent SYCL cache
|
||||||
|
SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS = "1"; # Performance optimization
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
############################
|
||||||
|
## LACT Settings for Overclocking
|
||||||
|
############################
|
||||||
|
|
||||||
|
services.lact.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
############################
|
||||||
|
## X / Wayland GPU Drivers
|
||||||
|
############################
|
||||||
|
|
||||||
|
# Enable modesetting driver for X11 (required for Intel Xe)
|
||||||
|
services.xserver.videoDrivers = [
|
||||||
|
"modesetting"
|
||||||
|
#"intel"
|
||||||
|
];
|
||||||
|
|
||||||
|
services.xserver.enable = true;
|
||||||
|
services.xserver.autorun = false;
|
||||||
|
services.xserver.displayManager.startx.enable = true;
|
||||||
|
|
||||||
|
# Xorg configuration for Intel Arc Battlemage (xe driver)
|
||||||
|
# Based on: https://www.reddit.com/r/crtgaming/comments/1knom2t/guide_intel_arc_b580_arch_linux_xorg/
|
||||||
|
# Intel Arc B-series at PCI 0000:03:00.0
|
||||||
|
#services.xserver.deviceSection = ''
|
||||||
|
# Option "AccelMethod" "glamor"
|
||||||
|
# BusID "PCI:3:0:0"
|
||||||
|
#'';
|
||||||
|
|
||||||
|
############################
|
||||||
|
## User Access
|
||||||
|
############################
|
||||||
|
users.users.andreas.extraGroups = [ "video" "render" ];
|
||||||
|
|
||||||
|
############################
|
||||||
|
## System Packages for AI/ML
|
||||||
|
############################
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
intel-compute-runtime
|
||||||
|
level-zero
|
||||||
|
# For checking GPU compute capabilities
|
||||||
|
clinfo
|
||||||
|
vulkan-tools
|
||||||
|
];
|
||||||
|
services.xserver.deviceSection = ''
|
||||||
|
Option "TearFree" "false"
|
||||||
|
'';
|
||||||
|
}
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
############################
|
||||||
|
## Display + Mesa Settings
|
||||||
|
############################
|
||||||
|
|
||||||
|
# hardware.enableRedistributableFirmware = true;
|
||||||
|
|
||||||
|
hardware.firmware = [
|
||||||
|
pkgs.linux-firmware
|
||||||
|
# pkgs.firmwareLinuxNonfree
|
||||||
|
# pkgs.firmwareLinuxStrict
|
||||||
|
# pkgs.firmwareLinuxLatest
|
||||||
|
];
|
||||||
|
|
||||||
|
# boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
boot.kernelParams = [
|
||||||
|
"console=tty0"
|
||||||
|
# "efifb=off"
|
||||||
|
# "xe.force_probe=*"
|
||||||
|
"module_blacklist=nouveau,nvidia,nvidia_drm,nvidia_modeset,nvidia_uvm"
|
||||||
|
];
|
||||||
|
|
||||||
|
# environment.variables.VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/intel_icd.x86_64.json";
|
||||||
|
hardware.intel-gpu-tools.enable = true;
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
enable32Bit = true;
|
||||||
|
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
intel-media-driver # Intel VAAPI
|
||||||
|
vpl-gpu-rt # oneVPL runtime
|
||||||
|
intel-vaapi-driver # fallback
|
||||||
|
intel-compute-runtime # OpenCL/Level Zero
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Ensure Arc driver is available (usually auto-loaded)
|
||||||
|
boot.kernelModules = [ "i915" ];
|
||||||
|
# Blacklist everything for nvidia
|
||||||
|
boot.blacklistedKernelModules = [
|
||||||
|
"nouveau"
|
||||||
|
"nvidia"
|
||||||
|
"nvidia_drm"
|
||||||
|
"nvidia_modeset"
|
||||||
|
"nvidia_uvm"
|
||||||
|
"xe"
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.variables = {
|
||||||
|
KWIN_DRM_DEVICES = "/dev/dri/card0";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
############################
|
||||||
|
## LACT Settings for Overclocking
|
||||||
|
############################
|
||||||
|
|
||||||
|
services.lact.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
############################
|
||||||
|
## X / Wayland GPU Drivers
|
||||||
|
############################
|
||||||
|
|
||||||
|
# Enable modesetting driver for X11 (required for Intel Xe)
|
||||||
|
services.xserver.videoDrivers = [
|
||||||
|
"modesetting"
|
||||||
|
#"intel"
|
||||||
|
];
|
||||||
|
|
||||||
|
services.xserver.enable = true;
|
||||||
|
services.xserver.autorun = false;
|
||||||
|
services.xserver.displayManager.startx.enable = true;
|
||||||
|
|
||||||
|
# Xorg configuration for Intel Arc Battlemage (xe driver)
|
||||||
|
# Based on: https://www.reddit.com/r/crtgaming/comments/1knom2t/guide_intel_arc_b580_arch_linux_xorg/
|
||||||
|
# Intel Arc B-series at PCI 0000:03:00.0
|
||||||
|
#services.xserver.deviceSection = ''
|
||||||
|
# Option "AccelMethod" "glamor"
|
||||||
|
# BusID "PCI:3:0:0"
|
||||||
|
#'';
|
||||||
|
|
||||||
|
############################
|
||||||
|
## User Access
|
||||||
|
############################
|
||||||
|
users.users.andreas.extraGroups = [ "video" "render" ];
|
||||||
|
}
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
############################
|
||||||
|
## Display + Mesa Settings
|
||||||
|
############################
|
||||||
|
|
||||||
|
# hardware.enableRedistributableFirmware = true;
|
||||||
|
|
||||||
|
hardware.firmware = [
|
||||||
|
pkgs.linux-firmware
|
||||||
|
# pkgs.firmwareLinuxNonfree
|
||||||
|
# pkgs.firmwareLinuxStrict
|
||||||
|
# pkgs.firmwareLinuxLatest
|
||||||
|
];
|
||||||
|
|
||||||
|
# boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
boot.kernelParams = [
|
||||||
|
"console=tty0"
|
||||||
|
"efifb=off"
|
||||||
|
"xe.force_probe=*"
|
||||||
|
"nvidia-drm.modeset=1"
|
||||||
|
];
|
||||||
|
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
intel-media-driver # Intel VAAPI
|
||||||
|
vpl-gpu-rt # oneVPL runtime
|
||||||
|
intel-vaapi-driver # fallback
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Ensure Arc driver is available (usually auto-loaded)
|
||||||
|
boot.kernelModules = [ "xe" ];
|
||||||
|
boot.blacklistedKernelModules = [ "nouveau" ];
|
||||||
|
|
||||||
|
############################
|
||||||
|
## X / Wayland GPU Drivers
|
||||||
|
############################
|
||||||
|
# Only specify NVIDIA. Intel Arc uses the modesetting driver automatically.
|
||||||
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
|
||||||
|
############################
|
||||||
|
## NVIDIA Configuration
|
||||||
|
############################
|
||||||
|
hardware.nvidia = {
|
||||||
|
modesetting.enable = true; # REQUIRED if any displays are on NVIDIA
|
||||||
|
|
||||||
|
open = false; # GTX 1070 → must be the proprietary driver
|
||||||
|
nvidiaSettings = true;
|
||||||
|
|
||||||
|
powerManagement.enable = false;
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
|
||||||
|
prime = {
|
||||||
|
offload.enable = false; # not a laptop, must be disabled
|
||||||
|
sync.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Correct way to pick the driver
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.production;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Remove → hardware.nvidia handles module packages
|
||||||
|
# boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
|
||||||
|
|
||||||
|
############################
|
||||||
|
## User Access
|
||||||
|
############################
|
||||||
|
users.users.andreas.extraGroups = [ "video" "render" ];
|
||||||
|
}
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.my-namespace) enabled;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
my-namespace.hardware = {
|
|
||||||
# graphics-nvidia-prime-amd = enabled;
|
|
||||||
# graphics-nvidia-prime-amd-testing = enabled;
|
|
||||||
graphics-amd-igpu-only = enabled;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,126 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
{
|
|
||||||
|
|
||||||
# Enable OpenGL
|
|
||||||
hardware.graphics = {
|
|
||||||
enable = true;
|
|
||||||
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Load nvidia driver for Xorg and Wayland
|
|
||||||
# boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
|
|
||||||
boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11_beta ];
|
|
||||||
# boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
|
|
||||||
|
|
||||||
|
|
||||||
boot.loader.systemd-boot.consoleMode = "max";
|
|
||||||
|
|
||||||
boot.kernelParams = [
|
|
||||||
"amdgpu.modeset=1"
|
|
||||||
"nvidia-drm.fbdev=1"
|
|
||||||
"nvidia-drm.modeset=0"
|
|
||||||
# "nvidia.NVreg_PreserveVideoMemoryAllocations=0"
|
|
||||||
"amd_iommu=on"
|
|
||||||
# "vfio-pci.ids=\"10de:2489,10de:228b\""
|
|
||||||
# "nomodeset"
|
|
||||||
# "nvidia_drm.modeset=1"
|
|
||||||
];
|
|
||||||
boot.blacklistedKernelModules = [
|
|
||||||
"i915"
|
|
||||||
"nouveau"
|
|
||||||
# "nvidia"
|
|
||||||
# "nvidia-drm"
|
|
||||||
# "nvidia-uvm"
|
|
||||||
# "nvidiafb"
|
|
||||||
# "nvidia_drm"
|
|
||||||
# "nvidia_modeset"
|
|
||||||
];
|
|
||||||
# boot.extraModprobeConfig = ''
|
|
||||||
# blacklist nvidia
|
|
||||||
# blacklist nvidia-drm
|
|
||||||
# blacklist nvidia_drm
|
|
||||||
# blacklist nvidia-uvm
|
|
||||||
# blacklist nvidia_uvm
|
|
||||||
# blacklist nvidia_modeset
|
|
||||||
# blacklist nvidiafb
|
|
||||||
# blacklist nouveau
|
|
||||||
# options nouveau modeset=0
|
|
||||||
# '';
|
|
||||||
boot.extraModprobeConfig = ''
|
|
||||||
blacklist nouveau
|
|
||||||
options nouveau modeset=0
|
|
||||||
'';
|
|
||||||
# services.xserver.videoDrivers = [ "nvidia" ];
|
|
||||||
services.xserver.videoDrivers = [ "amdgpu" "nvidia" ];
|
|
||||||
|
|
||||||
# services.udev.extraRules = ''
|
|
||||||
# # Remove NVIDIA USB xHCI Host Controller devices, if present
|
|
||||||
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1"
|
|
||||||
# # Remove NVIDIA USB Type-C UCSI devices, if present
|
|
||||||
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{power/control}="auto", ATTR{remove}="1"
|
|
||||||
# # Remove NVIDIA Audio devices, if present
|
|
||||||
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1"
|
|
||||||
# # Remove NVIDIA VGA/3D controller devices
|
|
||||||
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1"
|
|
||||||
# '';
|
|
||||||
|
|
||||||
boot.initrd.kernelModules = [
|
|
||||||
"amdgpu"
|
|
||||||
"nvidia"
|
|
||||||
# "nvidia-drm"
|
|
||||||
"nvidiafb"
|
|
||||||
# "nvidia-uvm"
|
|
||||||
# "nvidia-modeset"
|
|
||||||
# "i2c-nvidia_gpu"
|
|
||||||
];
|
|
||||||
hardware.nvidia = {
|
|
||||||
# Modesetting is required.
|
|
||||||
modesetting.enable = true;
|
|
||||||
|
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
|
||||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
|
||||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
|
||||||
# of just the bare essentials.
|
|
||||||
powerManagement.enable = true;
|
|
||||||
|
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
|
||||||
powerManagement.finegrained = false;
|
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
|
||||||
# independent third-party "nouveau" open source driver).
|
|
||||||
# Support is limited to the Turing and later architectures. Full list of
|
|
||||||
# supported GPUs is at:
|
|
||||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
|
||||||
# Only available from driver 515.43.04+
|
|
||||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
|
||||||
open = false;
|
|
||||||
|
|
||||||
# Enable the Nvidia settings menu,
|
|
||||||
# accessible via `nvidia-settings`.
|
|
||||||
nvidiaSettings = true;
|
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
|
||||||
# package = config.boot.kernelPackages.nvidiaPackages.none;
|
|
||||||
# package = config.boot.kernelPackages.nvidiaPackages.production;
|
|
||||||
|
|
||||||
forceFullCompositionPipeline = false;
|
|
||||||
|
|
||||||
prime = {
|
|
||||||
offload = {
|
|
||||||
enable = true;
|
|
||||||
enableOffloadCmd = true;
|
|
||||||
};
|
|
||||||
reverseSync.enable = false;
|
|
||||||
# Make sure to use the correct Bus ID values for your system!
|
|
||||||
# intelBusId = "PCI:0:2:0";
|
|
||||||
nvidiaBusId = "PCI:01:0:0";
|
|
||||||
amdgpuBusId = "PCI:50:0:0"; #For AMD GPU
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
users.users.andreas = {
|
|
||||||
extraGroups = [ "video" "render" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
{ config, lib, system, pkgs, ... }:
|
||||||
|
{
|
||||||
|
boot.kernelModules = [
|
||||||
|
"vfio"
|
||||||
|
"vfio-pci"
|
||||||
|
"vfio_iommu_type1"
|
||||||
|
];
|
||||||
|
boot.kernelParams = [
|
||||||
|
"amd_iommu=on"
|
||||||
|
"iommu=pt"
|
||||||
|
];
|
||||||
|
# Make sure vfio is available inside initrd
|
||||||
|
boot.initrd.availableKernelModules = [
|
||||||
|
"vfio_pci"
|
||||||
|
];
|
||||||
|
# Bind by IDs (cleaner via modprobe instead of kernel param)
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
options vfio-pci ids=10de:1b81,10de:10f0
|
||||||
|
'';
|
||||||
|
boot.initrd.systemd = {
|
||||||
|
enable = true;
|
||||||
|
services.initrd-vfio-pci-nvidia = {
|
||||||
|
description = "vfio-pci predevice init";
|
||||||
|
wantedBy = [ "initrd.target" ];
|
||||||
|
# Match 'preDeviceCommands' by running early
|
||||||
|
before = [ "sysroot.mount" ];
|
||||||
|
|
||||||
|
unitConfig.DefaultDependencies = "no";
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
|
||||||
|
# Place your original shell commands here
|
||||||
|
script = ''
|
||||||
|
modprobe vfio-pci
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# # EARLY and deterministic binding
|
||||||
|
# boot.initrd.preDeviceCommands = ''
|
||||||
|
# echo 0000:05:00.0 > /sys/bus/pci/drivers/vfio-pci/bind
|
||||||
|
# echo 0000:05:00.1 > /sys/bus/pci/drivers/vfio-pci/bind
|
||||||
|
# '';
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
pciutils
|
||||||
|
virtiofsd
|
||||||
|
config.virtualisation.libvirtd.qemu.package
|
||||||
|
looking-glass-client
|
||||||
|
virt-manager
|
||||||
|
libguestfs-with-appliance
|
||||||
|
];
|
||||||
|
users.extraUsers.andreas.extraGroups = [ "libvirtd" ];
|
||||||
|
}
|
||||||
@@ -7,30 +7,71 @@
|
|||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
./graphics/nvidia-stable.nix
|
./graphics/intel.nix
|
||||||
|
./graphics/passthrough_nvidia.nix
|
||||||
|
# ./graphics/intel_i915.nix
|
||||||
# ./graphics/nvidia.nix
|
# ./graphics/nvidia.nix
|
||||||
./acer-monitor-edid.nix
|
./acer-monitor-edid.nix
|
||||||
|
./samsung-monitor-edid.nix
|
||||||
];
|
];
|
||||||
#boot.kernelPackages = pkgs.linuxPackages_latest;
|
# boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-latest;
|
||||||
|
hardware.enableRedistributableFirmware = true;
|
||||||
# boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest;
|
# boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest;
|
||||||
boot.kernelPackages = pkgs.linuxPackages;
|
# boot.kernelPackages = pkgs.linuxPackages;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||||
boot.kernelModules = [ "kvm-amd" "4vl2loopback" ];
|
boot.kernelModules = [ "kvm-amd" "r8125" "4vl2loopback" ];
|
||||||
boot.extraModulePackages = [ pkgs.linuxPackages.v4l2loopback ];
|
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback r8125 ];
|
||||||
|
boot.supportedFilesystems = [ "ntfs" ];
|
||||||
|
boot.blacklistedKernelModules = [ "r8169" ];
|
||||||
|
|
||||||
boot.blacklistedKernelModules = [ ];
|
systemd.services.disable-realtek-eee = {
|
||||||
fileSystems."/" =
|
description = "Disable Realtek Energy Efficient Ethernet";
|
||||||
{ device = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76";
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "${pkgs.ethtool}/bin/ethtool --set-eee enp10s0 eee off";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" = {
|
||||||
{ device = "/dev/disk/by-uuid/E846-D998";
|
#device = "/dev/disk/by-uuid/E846-D998";
|
||||||
|
device = "/dev/disk/by-uuid/19BE-8BAA";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Mount ntfs partition
|
||||||
|
# fileSystems."/run/media/627C3BDF7C3BAD23" = {
|
||||||
|
# device = "/dev/disk/by-uuid/627C3BDF7C3BAD23";
|
||||||
|
# fsType = "ntfs-3g";
|
||||||
|
# options = [ "rw" "uid=1000"];
|
||||||
|
# };
|
||||||
|
|
||||||
|
# # Mount ntfs oldfiles drive partition
|
||||||
|
# fileSystems."/run/media/oldfiles" = {
|
||||||
|
# device = "/dev/disk/by-uuid/E2E26FFFE26FD677";
|
||||||
|
# fsType = "ntfs-3g";
|
||||||
|
# options = [ "rw" "uid=1000"];
|
||||||
|
# };
|
||||||
|
|
||||||
|
# # Mount The Vault
|
||||||
|
# fileSystems."/run/media/vault" = {
|
||||||
|
# device = "/dev/disk/by-uuid/3470646370642DB4";
|
||||||
|
# fsType = "ntfs-3g";
|
||||||
|
# options = [ "rw" "uid=1000"];
|
||||||
|
# };
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Try to fix hibernation
|
# Try to fix hibernation
|
||||||
@@ -43,6 +84,7 @@
|
|||||||
boot.resumeDevice = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76"; # the unlocked drive mapping
|
boot.resumeDevice = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76"; # the unlocked drive mapping
|
||||||
boot.kernelParams = [
|
boot.kernelParams = [
|
||||||
"resume_offset=78399488" #sudo filefrag -v /var/lib/swapfile|awk 'NR==4{gsub(/\./,"");print $4;}'
|
"resume_offset=78399488" #sudo filefrag -v /var/lib/swapfile|awk 'NR==4{gsub(/\./,"");print $4;}'
|
||||||
|
"r8125.aspm=0" # realtek network adapter fix
|
||||||
];
|
];
|
||||||
security.protectKernelImage = false;
|
security.protectKernelImage = false;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
# boot.kernelParams = [ "drm.edid_firmware=DP-1:edid/edid.bin,DP-2:edid/edid.bin,DP-3:edid/edid.bin,DP-4:edid/edid.bin" ];
|
||||||
|
boot.kernelParams = [ "drm.edid_firmware=DP-1:edid/edid2.bin" ];
|
||||||
|
|
||||||
|
|
||||||
|
hardware.firmware = [
|
||||||
|
(
|
||||||
|
pkgs.runCommand "edid2.bin" { } ''
|
||||||
|
mkdir -p $out/lib/firmware/edid
|
||||||
|
cp ${./firmware/U32J59x-edid.bin} $out/lib/firmware/edid/edid2.bin
|
||||||
|
''
|
||||||
|
)];
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
boot.extraModulePackages = [
|
boot.extraModulePackages = [
|
||||||
pkgs.linuxPackages.v4l2loopback # Webcam loopback
|
config.boot.kernelPackages.v4l2loopback # Webcam loopback
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.extraModprobeConfig = ''
|
boot.extraModprobeConfig = ''
|
||||||
|
|||||||
Reference in New Issue
Block a user