Compare commits
197 Commits
divergence
...
65fc0ace0e
| Author | SHA1 | Date | |
|---|---|---|---|
| 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 | |||
| 3fad8fcf16 | |||
| 415ea15ea0 | |||
| 48f1d774c9 | |||
| b4e3457721 | |||
| 21f5a618fa | |||
| 99b30e124a | |||
| b891969c7e | |||
| 1cb2a609a8 | |||
| 4ff075bce4 | |||
| a496d0451b | |||
| c606f39f8f | |||
| b779b84242 | |||
| 8c0ecd90e8 | |||
| 092691c665 | |||
| 718ca864e3 | |||
| 4454eb84fb | |||
| f7823d9ad3 | |||
| 72cac1e8c6 | |||
| cf95749f84 | |||
| 9ca20b8e24 | |||
| 2f5a44b112 | |||
| c29cae486e | |||
| 769e1c166a | |||
| 5a36dbc083 | |||
| b8d94f015f | |||
| 0aa885e2e4 | |||
| 94c2c9d7d5 | |||
| e2086b228b | |||
| 3bff766ee2 | |||
| f59cee41b9 | |||
| fc9c0c947c | |||
| 83db3ded50 | |||
| 7645da455e | |||
| d16b77a13a | |||
| fce0f24737 | |||
| 8000ec4cf5 | |||
| c3b39f9991 | |||
| a8c11752d4 | |||
| 15d3daa1c8 | |||
| f66ad0b662 | |||
| 1624697a7c | |||
| d33e276dd3 | |||
| 690851ede3 | |||
| 2048c12baa | |||
| 96acd705cb | |||
| ab2413d3c6 | |||
| c3b3bdd6c2 | |||
| e7c6413503 | |||
| 8f228a50bc | |||
| cccadc89c4 | |||
| 12d32846a2 | |||
| a5eafae831 | |||
| e2fd2ba798 | |||
| aee5e664c1 | |||
| 27374f058c | |||
| da2b430ead | |||
| 830f8d51b3 | |||
| 59032852f0 | |||
| 8df8a7ed39 | |||
| 6d3c3630a1 | |||
| f26e79c734 | |||
| 2adff754bd | |||
| 3097ba6084 | |||
| cae95f99af | |||
| 5aded84ef9 | |||
| b03e28e889 | |||
| 2137ea62c5 | |||
| e2c080693c | |||
| ff6ee6b805 | |||
| 040476fabc | |||
| 0b74e05cde | |||
| 65fe6030ac | |||
| 5325c20286 | |||
| 4244e6918a | |||
| 88a4f25fa5 | |||
| 066b45427a | |||
| 01f1e82284 | |||
| dea19e0b3b | |||
| 8b68c27a1f | |||
| a380d9487f | |||
| 542b74f944 | |||
| d2dceba0e9 | |||
| 9dab2276d6 | |||
| 2dfd24b2a9 | |||
| 9713048cfd | |||
| 4f434935f0 | |||
| 78a9a4c493 |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.vscode/settings.json
|
||||
13
.sops.yaml
Normal file
13
.sops.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
keys:
|
||||
- users:
|
||||
- &andreas age19j24x89dfh4f7v58c8k64yupqas4f7qkkyper7yj9dd7vqwvvq0qkyvhxk # generated using cli
|
||||
- hosts:
|
||||
- &th0nkpad-nixos age1ma8x6wugvc40mkst33mejq0m6r44jk6zwjjun3znyer5nztgn9vs0nwjx4 # derived from ssh host key
|
||||
- &drivebystation-nix age1s5qwsuc3e4m3c4w5hl6tyja70w273gr60j9j9dcpc6mz69lemg3qpwud3h #derived from ssh host key
|
||||
creation_rules:
|
||||
- path_regex: secrets.yaml$
|
||||
key_groups:
|
||||
- age:
|
||||
- *andreas
|
||||
- *th0nkpad-nixos
|
||||
- *drivebystation-nix
|
||||
21
.vscode/tasks.json
vendored
Normal file
21
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||
// for the documentation about the tasks.json format
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"type": "shell",
|
||||
"label": "nixos-rebuild",
|
||||
"command": "bash",
|
||||
"args": [
|
||||
"-c",
|
||||
"sudo nixos-rebuild switch --flake ."
|
||||
],
|
||||
"problemMatcher": [],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
677
flake.lock
generated
677
flake.lock
generated
@@ -1,13 +1,103 @@
|
||||
{
|
||||
"nodes": {
|
||||
"aagl": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767520119,
|
||||
"narHash": "sha256-+OmNQLA9Fv5WBaxYHlPghS9XmnYWDaLt+AatCGhG+hc=",
|
||||
"owner": "ezKEa",
|
||||
"repo": "aagl-gtk-on-nix",
|
||||
"rev": "5720d3282844b6b23b26dfac075a5f1f58ea8844",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"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": 1769201405,
|
||||
"narHash": "sha256-k/KQL7J9ZnLlF28E6ywGpfo5dxkuxCcEtJ/XEZDTw3M=",
|
||||
"owner": "CachyOS",
|
||||
"repo": "linux-cachyos",
|
||||
"rev": "ff53672af48a106f52857d62c9275b165cc452ef",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "CachyOS",
|
||||
"repo": "linux-cachyos",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"cachyos-kernel-patches": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1769199354,
|
||||
"narHash": "sha256-y1DKMryOr1w4xcZnDkaZjvENIPmr3j/YB4Srtfd3I2Y=",
|
||||
"owner": "CachyOS",
|
||||
"repo": "kernel-patches",
|
||||
"rev": "c8b990198baf3c34b64e4e5c5ffeb7c068eede1a",
|
||||
"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": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"lastModified": 1761588595,
|
||||
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -19,11 +109,59 @@
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"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,
|
||||
"locked": {
|
||||
"lastModified": 1650374568,
|
||||
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -35,16 +173,34 @@
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nix",
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1719994518,
|
||||
"narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=",
|
||||
"lastModified": 1754091436,
|
||||
"narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7",
|
||||
"rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768135262,
|
||||
"narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -58,11 +214,11 @@
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -71,89 +227,209 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks-nix": {
|
||||
"flake-utils-plus": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1715533576,
|
||||
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"repo": "flake-utils-plus",
|
||||
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"repo": "flake-utils-plus",
|
||||
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1694529238,
|
||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"game-of-life": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"nix"
|
||||
],
|
||||
"gitignore": [
|
||||
"nix"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": [
|
||||
"nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1721042469,
|
||||
"narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "f451c19376071a90d8c58ab1a953c6e9840527fd",
|
||||
"lastModified": 1728511087,
|
||||
"narHash": "sha256-CvO74jwMjUUPySy0QCt7sPImbxKlhWcSAet93Fkt6iU=",
|
||||
"owner": "local-interloper",
|
||||
"repo": "game-of-life",
|
||||
"rev": "c39d37e394f5da79a6a7d198e1d7e505aa5298a7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"owner": "local-interloper",
|
||||
"repo": "game-of-life",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"libgit2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1715853528,
|
||||
"narHash": "sha256-J2rCxTecyLbbDdsyBWn9w7r3pbKRMkI9E7RvRgAqBdY=",
|
||||
"owner": "libgit2",
|
||||
"repo": "libgit2",
|
||||
"rev": "36f7e21ad757a3dacc58cf7944329da6bc1d6e96",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "libgit2",
|
||||
"ref": "v1.8.1",
|
||||
"repo": "libgit2",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix": {
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts",
|
||||
"git-hooks-nix": "git-hooks-nix",
|
||||
"libgit2": "libgit2",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-23-11": "nixpkgs-23-11",
|
||||
"nixpkgs-regression": "nixpkgs-regression"
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"pre-commit-hooks-nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726840928,
|
||||
"narHash": "sha256-kXJvsJwtf03lb1TNgWDg14wuFTUz+BpwcjuQmVIItGM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nix",
|
||||
"rev": "68ba6ff4709d936c1a714de35da08f8ed354c710",
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nix",
|
||||
"type": "indirect"
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769450270,
|
||||
"narHash": "sha256-pdVm/zJazDUAasTyHFX/Pbrlk9Upjxi0yzgn7GjGe4g=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "a10c1e8f5ad2589414407f4851c221cb66270257",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"zen-browser",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768434960,
|
||||
"narHash": "sha256-cJbFn17oyg6qAraLr+NVeNJrXsrzJdrudkzI4H2iTcg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "b4d88c9ac42ae1a745283f6547701da43b6e9f9b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"kwin-effects-forceblur": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755098995,
|
||||
"narHash": "sha256-6FN7XEf27DenQHDIKjrjOW3tGIaJlyqRlXarmt1v+M0=",
|
||||
"owner": "taj-ny",
|
||||
"repo": "kwin-effects-forceblur",
|
||||
"rev": "51a1d49d7fd7df3ce40ccf6ba4c4410cf6f510e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "taj-ny",
|
||||
"repo": "kwin-effects-forceblur",
|
||||
"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_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769363279,
|
||||
"narHash": "sha256-XJCuB8GWkFLRFBR6GQoxRB9/lobB45ERp0JN0Lo2nvs=",
|
||||
"owner": "xddxdd",
|
||||
"repo": "nix-cachyos-kernel",
|
||||
"rev": "4aa98db78c1d663c3dad59775e95ad93fe58a844",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "xddxdd",
|
||||
"ref": "release",
|
||||
"repo": "nix-cachyos-kernel",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-wsl": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"flake-compat": "flake-compat_4",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726981058,
|
||||
"narHash": "sha256-065MWSg1xhMdYun53S7mWKUEDviAEyxT/kl6JrjZwe4=",
|
||||
"lastModified": 1769217863,
|
||||
"narHash": "sha256-RY9kJDXD6+2Td/59LkZ0PFSereCXHdBX9wIkbYjRKCY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NixOS-WSL",
|
||||
"rev": "f9f28d8ff5288f821f1e64ec03185a9bb0edb0d0",
|
||||
"rev": "38a5250e57f583662eac3b944830e4b9e169e965",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -165,75 +441,58 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1723688146,
|
||||
"narHash": "sha256-sqLwJcHYeWLOeP/XoLwAtYjr01TISlkOfz+NG82pbdg=",
|
||||
"lastModified": 1744536153,
|
||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c3d4ac725177c030b1e289015989da2ad9d56af0",
|
||||
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-23-11": {
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1717159533,
|
||||
"narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||
"lastModified": 1765674936,
|
||||
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-regression": {
|
||||
"locked": {
|
||||
"lastModified": 1643052045,
|
||||
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1726320982,
|
||||
"narHash": "sha256-RuVXUwcYwaUeks6h3OLrEmg14z9aFXdWppTWPMTwdQw=",
|
||||
"lastModified": 1769300497,
|
||||
"narHash": "sha256-W7NbQnQGqUPRnpHOlLXk3g52TSQDkFVzhax9YNv9K+U=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8f7492cce28977fbf8bd12c72af08b1f6c7c3e49",
|
||||
"rev": "60f9d776547020ff3be5a2cfbd0a457fddd88ecc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"ref": "nixos-unstable-small",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1726755586,
|
||||
"narHash": "sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK+Wk=",
|
||||
"lastModified": 1769170682,
|
||||
"narHash": "sha256-oMmN1lVQU0F0W2k6OI3bgdzp2YOHWYUAw79qzDSjenU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c04d5652cfa9742b1d519688f65d1bbccea9eb7e",
|
||||
"rev": "c5296fdd05cfa2c187990dd909864da9658df755",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -243,11 +502,128 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks-nix": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"lanzaboote",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750779888,
|
||||
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nix": "nix",
|
||||
"aagl": "aagl",
|
||||
"anikki": "anikki",
|
||||
"game-of-life": "game-of-life",
|
||||
"home-manager": "home-manager",
|
||||
"kwin-effects-forceblur": "kwin-effects-forceblur",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"nix-cachyos-kernel": "nix-cachyos-kernel",
|
||||
"nixos-wsl": "nixos-wsl",
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"snowfall-lib": "snowfall-lib",
|
||||
"sops-nix": "sops-nix",
|
||||
"trilium-next-pr": "trilium-next-pr",
|
||||
"zen-browser": "zen-browser"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764470739,
|
||||
"narHash": "sha256-sa9f81B1dWO16QtgDTWHX8DQbiHKzHndpaunY5EQtwE=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "3bfa664055e1a09c6aedab5533c5fc8d6ca5741a",
|
||||
"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"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"snowfall-lib": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_5",
|
||||
"flake-utils-plus": "flake-utils-plus",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765361626,
|
||||
"narHash": "sha256-kX0Dp/kYSRbQ+yd9e3lmmUWdNbipufvKfL2IzbrSpnY=",
|
||||
"owner": "snowfallorg",
|
||||
"repo": "lib",
|
||||
"rev": "c566ad8b7352c30ec3763435de7c8f1c46ebb357",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "snowfallorg",
|
||||
"repo": "lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769469829,
|
||||
"narHash": "sha256-wFcr32ZqspCxk4+FvIxIL0AZktRs6DuF8oOsLt59YBU=",
|
||||
"owner": "mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "c5eebd4eb2e3372fe12a8d70a248a6ee9dd02eff",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "mic92",
|
||||
"repo": "sops-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
@@ -264,6 +640,91 @@
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_3": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"trilium-next-pr": {
|
||||
"locked": {
|
||||
"lastModified": 1736678965,
|
||||
"narHash": "sha256-2A687i3Rq0/wqJVvpgaiRPWcfnBBuBhPjKaT8cnd7o0=",
|
||||
"owner": "FliegendeWurst",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4fcdf706929246476e52e960760b6643cb8395c4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "FliegendeWurst",
|
||||
"ref": "trilium-next",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726560853,
|
||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zen-browser": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769431876,
|
||||
"narHash": "sha256-FnOW+ulwocxfYGVKV2H/7MlSbn52+hfX9oaRR6FClZ4=",
|
||||
"owner": "0xc000022070",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "d5ef79d18dca7617aefe511db8267d47f7cf953f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "0xc000022070",
|
||||
"repo": "zen-browser-flake",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
||||
238
flake.nix
238
flake.nix
@@ -2,109 +2,165 @@
|
||||
description = "Nixos config flake test";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
||||
# nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; # Use nixos-unstable for latest kernel and packages
|
||||
nixos-wsl = {
|
||||
url = "github:nix-community/NixOS-WSL/main";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
outputs = { self, nixpkgs, nixos-wsl, nix, ... }@inputs:
|
||||
# Snowfallorg's Flake utility
|
||||
snowfall-lib = {
|
||||
url = "github:snowfallorg/lib";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
game-of-life = {
|
||||
url = "github:local-interloper/game-of-life";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
# Add sops-nix for secrets management
|
||||
sops-nix = {
|
||||
url = "github:mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
zen-browser = {
|
||||
url = "github:0xc000022070/zen-browser-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
trilium-next-pr = {
|
||||
url = "github:FliegendeWurst/nixpkgs/trilium-next";
|
||||
# Don't follow nixpkgs as this repo has its own pinned nixpkgs
|
||||
};
|
||||
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 = {
|
||||
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:
|
||||
let
|
||||
system =
|
||||
if builtins ? currentSystem
|
||||
then builtins.currentSystem
|
||||
else "x86_64-linux";
|
||||
pkgs = import nixpkgs { inherit system; config.allowUnfree = true; };
|
||||
installedPackages = (import ./installed-packages { inherit pkgs; });
|
||||
lib = inputs.snowfall-lib.mkLib {
|
||||
inherit inputs;
|
||||
src = ./.;
|
||||
|
||||
channels-config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = _: true;
|
||||
permittedInsecurePackages = [ "openssl-1.1.1w" ];
|
||||
};
|
||||
|
||||
# Configure Snowfall Lib, all of these settings are optional.
|
||||
snowfall = {
|
||||
# Tell Snowfall Lib to look in the `./nix/` directory for your
|
||||
# Nix files.
|
||||
root = ./.;
|
||||
|
||||
# Choose a namespace to use for your flake's packages, library,
|
||||
# and overlays.
|
||||
namespace = "my-namespace";
|
||||
|
||||
# Add flake metadata that can be processed by tools like Snowfall Frost.
|
||||
meta = {
|
||||
# A slug to use in documentation when displaying things like file paths.
|
||||
name = "nixos-config-hionv";
|
||||
|
||||
# A title to show for your flake, typically the name.
|
||||
title = "Hion's Personal NixOS Config";
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
lib.mkFlake {
|
||||
inherit inputs;
|
||||
src = ./.;
|
||||
|
||||
overlays = with inputs; [
|
||||
# Use the exact kernel versions as defined in this repo.
|
||||
# Guarantees you have binary cache.
|
||||
nix-cachyos-kernel.overlays.pinned
|
||||
|
||||
# Alternatively, build the kernels on top of nixpkgs version in your flake.
|
||||
# This might cause version mismatch/build failures!
|
||||
# nix-cachyos-kernel.overlays.default
|
||||
|
||||
# Only use one of the two overlays!
|
||||
];
|
||||
|
||||
nixos = with inputs; [
|
||||
|
||||
# disko.nixosModules.disko
|
||||
# impermanence.nixosModules.impermanence
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
nixosConfigurations.drivebystation-nixos-wsl = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
nixos-wsl.nixosModules.default
|
||||
./systems/drivebystation-nixos-wsl/configuration.nix
|
||||
{
|
||||
system.stateVersion = "24.05";
|
||||
wsl.enable = true;
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
};
|
||||
}
|
||||
# nix-ld.nixosModules.nix-ld
|
||||
# sops-nix.nixosModules.sops
|
||||
# stylix.nixosModules.stylix
|
||||
];
|
||||
|
||||
systems.modules.nixos = with inputs; [
|
||||
# my-input.nixosModules.my-module
|
||||
lanzaboote.nixosModules.lanzaboote ({ pkgs, lib, ... }: {
|
||||
environment.systemPackages = [
|
||||
# For debugging and troubleshooting Secure Boot.
|
||||
pkgs.sbctl
|
||||
];
|
||||
|
||||
]
|
||||
++ installedPackages.mkPackages.packages;
|
||||
programs.nix-ld = {
|
||||
|
||||
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;
|
||||
package = pkgs.nix-ld-rs;
|
||||
pkiBundle = "/var/lib/sbctl";
|
||||
};
|
||||
}
|
||||
})
|
||||
];
|
||||
specialArgs = { inherit inputs; };
|
||||
};
|
||||
nixosConfigurations.th0nkpad-nixos = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
./systems/th0nkpad-nixos/configuration.nix
|
||||
{
|
||||
system.stateVersion = "24.05";
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.andreas = {
|
||||
isNormalUser = true;
|
||||
description = "Andreas";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
packages = with pkgs; [
|
||||
flatpak
|
||||
gnome-software
|
||||
soundwireserver
|
||||
vscode
|
||||
# thunderbird
|
||||
|
||||
# The attribute set specified here will be passed directly to NixPkgs when
|
||||
# instantiating the package set.
|
||||
channels-config = {
|
||||
# Allow unfree packages.
|
||||
allowUnfree = true;
|
||||
permittedInsecurePackages = [
|
||||
"mbedtls-2.28.10" # needed for haxe 4.3.6
|
||||
];
|
||||
};
|
||||
# # Allow certain insecure packages
|
||||
# permittedInsecurePackages = [
|
||||
# "firefox-100.0.0"
|
||||
# ];
|
||||
|
||||
# # Additional configuration for specific packages.
|
||||
# config = {
|
||||
# # For example, enable smartcard support in Firefox.
|
||||
# firefox.smartcardSupport = true;
|
||||
# };
|
||||
|
||||
|
||||
# Open ports in the firewall.
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
59010 #SoundWireServer
|
||||
3389 #RDP
|
||||
];
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
59010 #SoundWireServer
|
||||
3389 #RDP
|
||||
];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true;
|
||||
|
||||
# Set up system Packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
# wget
|
||||
]
|
||||
++ installedPackages.mkPackages.packages;
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
package = pkgs.nix-ld-rs;
|
||||
};
|
||||
services.flatpak.enable = true;
|
||||
systemd.services.flatpak-repo = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = [ pkgs.flatpak ];
|
||||
script = ''
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
'';
|
||||
};
|
||||
services.xrdp.enable = true;
|
||||
services.xrdp.defaultWindowManager = "${pkgs.gnome-session}/bin/gnome-session";
|
||||
# services.xrdp.openFirewall = true;
|
||||
|
||||
# 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.
|
||||
systemd.targets.sleep.enable = false;
|
||||
systemd.targets.suspend.enable = false;
|
||||
systemd.targets.hibernate.enable = false;
|
||||
systemd.targets.hybrid-sleep.enable = false;
|
||||
}
|
||||
];
|
||||
specialArgs = { inherit inputs; };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
0
homes/x86_64-iso/.gitkeep
Normal file
0
homes/x86_64-iso/.gitkeep
Normal file
47
homes/x86_64-linux/andreas@drivebystation-nix/default.nix
Normal file
47
homes/x86_64-linux/andreas@drivebystation-nix/default.nix
Normal file
@@ -0,0 +1,47 @@
|
||||
{ config
|
||||
, lib
|
||||
, inputs
|
||||
, pkgs
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
inherit (lib.my-namespace) enabled;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
# ../modules.nix
|
||||
];
|
||||
my-namespace.home = {
|
||||
stream-tools = enabled;
|
||||
gnome-customizations = enabled;
|
||||
vesktop-appimage = enabled;
|
||||
# networking = enabled;
|
||||
# personal-apps = enabled;
|
||||
# suites.laptop = enabled;
|
||||
};
|
||||
home = {
|
||||
packages = [
|
||||
pkgs.nil
|
||||
pkgs.beeper
|
||||
pkgs.my-namespace.udev-steelseries
|
||||
pkgs.qbittorrent
|
||||
pkgs.hyfetch
|
||||
pkgs.libreoffice
|
||||
pkgs.localsend
|
||||
# pkgs.vesktop
|
||||
pkgs.obsidian
|
||||
inputs.zen-browser.packages.x86_64-linux.default
|
||||
inputs.kwin-effects-forceblur.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
];
|
||||
};
|
||||
|
||||
# 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 -f 12 --screen-root DP-2 --bg 2935872330 -f 12
|
||||
X-KDE-autostart-after=panel
|
||||
X-KDE-StartupNotify=false
|
||||
'';
|
||||
}
|
||||
0
homes/x86_64-linux/andreas@nixos-wsl/.gitkeep
Normal file
0
homes/x86_64-linux/andreas@nixos-wsl/.gitkeep
Normal file
0
homes/x86_64-linux/andreas@th0nkpad-nixos/.gitkeep
Normal file
0
homes/x86_64-linux/andreas@th0nkpad-nixos/.gitkeep
Normal file
25
homes/x86_64-linux/andreas@th0nkpad-nixos/default.nix
Normal file
25
homes/x86_64-linux/andreas@th0nkpad-nixos/default.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{ 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
|
||||
];
|
||||
};
|
||||
}
|
||||
29
homes/x86_64-linux/gaming@drivebystation-nix/default.nix
Normal file
29
homes/x86_64-linux/gaming@drivebystation-nix/default.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
inherit (lib.my-namespace) enabled;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
# ../modules.nix
|
||||
];
|
||||
my-namespace.home = {
|
||||
stream-tools = enabled;
|
||||
gnome-customizations = enabled;
|
||||
# networking = enabled;
|
||||
# personal-apps = enabled;
|
||||
# suites.laptop = enabled;
|
||||
};
|
||||
home = {
|
||||
packages = [
|
||||
pkgs.nil
|
||||
pkgs.beeper
|
||||
pkgs.my-namespace.udev-steelseries
|
||||
pkgs.qbittorrent
|
||||
#pkgs.vesktop
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{ pkgs }:
|
||||
let
|
||||
baseBackages = [
|
||||
pkgs.vim
|
||||
pkgs.nixpkgs-fmt
|
||||
];
|
||||
utilPackages = [
|
||||
pkgs.wget
|
||||
pkgs.curl
|
||||
pkgs.git
|
||||
pkgs.ffmpeg
|
||||
];
|
||||
haxeDevelopmentPackages = [
|
||||
pkgs.haxe
|
||||
];
|
||||
in
|
||||
{
|
||||
mkPackages = {
|
||||
packages = baseBackages ++ utilPackages ++ haxeDevelopmentPackages;
|
||||
};
|
||||
}
|
||||
32
lib/default.nix
Normal file
32
lib/default.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{lib, ...}: let
|
||||
inherit (lib) mkOption strings;
|
||||
inherit (lib.attrsets) filterAttrs mapAttrsToList;
|
||||
inherit (lib.types) bool;
|
||||
in rec {
|
||||
disabled = {enable = false;};
|
||||
enabled = {enable = true;};
|
||||
ifThenElse = cond: t: f:
|
||||
if cond
|
||||
then t
|
||||
else f;
|
||||
mkOpt = type: default: description:
|
||||
mkOption {inherit type default description;};
|
||||
mkOpt' = type: default: mkOpt type default null;
|
||||
mkBoolOpt = mkOpt bool;
|
||||
mkBoolOpt' = mkOpt' bool;
|
||||
mkPxeMenu = args:
|
||||
''
|
||||
UI menu.c32
|
||||
TIMEOUT 300
|
||||
''
|
||||
+ strings.concatStringsSep "\n" (mapAttrsToList
|
||||
(
|
||||
name: value: ''
|
||||
LABEL ${name}
|
||||
MENU LABEL ${value.content.label}
|
||||
KERNEL ${value.content.kernel}
|
||||
append ${value.content.append}
|
||||
''
|
||||
)
|
||||
(filterAttrs (_: v: v.condition) args));
|
||||
}
|
||||
45
lib/installed-packages/default.nix
Normal file
45
lib/installed-packages/default.nix
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
# This is the merged library containing your namespaced library as well as all libraries from
|
||||
# your flake's inputs.
|
||||
lib
|
||||
, # Your flake inputs are also available.
|
||||
inputs
|
||||
, # The namespace used for your flake, defaulting to "internal" if not set.
|
||||
namespace
|
||||
, # Additionally, Snowfall Lib's own inputs are passed. You probably don't need to use this!
|
||||
snowfall-inputs
|
||||
, ...
|
||||
}:
|
||||
|
||||
{
|
||||
# This will be available as `lib.my-namespace.mkPackages`.
|
||||
mkPackages = {pkgs, ...}:
|
||||
let
|
||||
inherit pkgs;
|
||||
# pkgs = namespace.;
|
||||
# pkgs = snowfall-inputs.nixpkgs { system = "x86_64-linux"; config.allowUnfree = true; };
|
||||
baseBackages = [
|
||||
pkgs.vim
|
||||
pkgs.nixpkgs-fmt
|
||||
];
|
||||
utilPackages = [
|
||||
pkgs.wget
|
||||
pkgs.curl
|
||||
pkgs.git
|
||||
pkgs.ffmpeg
|
||||
];
|
||||
haxeDevelopmentPackages = [
|
||||
pkgs.haxe
|
||||
];
|
||||
in
|
||||
{
|
||||
packages = baseBackages ++ utilPackages ++ haxeDevelopmentPackages;
|
||||
};
|
||||
|
||||
# my-scope = {
|
||||
# # This will be available as `lib.my-namespace.my-scope.my-scoped-helper-function`.
|
||||
# my-scoped-helper-function = x: x;
|
||||
# };
|
||||
}
|
||||
|
||||
|
||||
19
modules/home/gnome-customizations/default.nix
Normal file
19
modules/home/gnome-customizations/default.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
cfg = config.my-namespace.home.gnome-customizations;
|
||||
in
|
||||
{
|
||||
options.my-namespace.home.gnome-customizations = {
|
||||
enable = mkEnableOption "Enable GNOME customizations";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
# GNOME settings
|
||||
dconf.settings."org/gnome/desktop/wm/preferences".button-layout = "appmenu:,minimize,maximize,close";
|
||||
dconf.settings."org/gnome/mutter".experimental-features = [ "scale-monitor-framebuffer" ];
|
||||
};
|
||||
}
|
||||
78
modules/home/home/default.nix
Normal file
78
modules/home/home/default.nix
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib
|
||||
, # An instance of `pkgs` with your overlays and packages applied is also available.
|
||||
pkgs
|
||||
, # You also have access to your flake's inputs.
|
||||
inputs
|
||||
, # Additional metadata is provided by Snowfall Lib.
|
||||
namespace
|
||||
, # The namespace used for your flake, defaulting to "internal" if not set.
|
||||
system
|
||||
, # The system architecture for this host (eg. `x86_64-linux`).
|
||||
target
|
||||
, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
|
||||
format
|
||||
, # A normalized name for the system target (eg. `iso`).
|
||||
virtual
|
||||
, # A boolean to determine whether this system is a virtual target using nixos-generators.
|
||||
systems
|
||||
, # An attribute map of your defined hosts.
|
||||
# All other arguments come from the module system.
|
||||
config
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib.my-namespace) enabled;
|
||||
|
||||
imp = config.my-namespace.home.impermanence.enable;
|
||||
in
|
||||
{
|
||||
config = {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
inetutils
|
||||
neofetch
|
||||
tmux
|
||||
# nerdfonts
|
||||
p7zip
|
||||
rclone
|
||||
ripgrep
|
||||
unzip
|
||||
zip
|
||||
];
|
||||
sessionPath = [ "$HOME/bin" "$HOME/.local/bin" ];
|
||||
shellAliases = {
|
||||
# "df" = "duf -only local";
|
||||
# "du" = "dust -xd1 --skip-total";
|
||||
# # "ducks" = "du -chs * 2>/dev/null | sort -rh | head -11 && du -chs .* 2>/dev/null | sort -rh | head -11";
|
||||
# "gmount" = "rclone mount google:/ ~/Drive/";
|
||||
"df" = "df -h";
|
||||
"nano" = "vim";
|
||||
};
|
||||
stateVersion = "24.05";
|
||||
};
|
||||
# manual = {
|
||||
# html.enable = false;
|
||||
# manpages.enable = false;
|
||||
# json.enable = false;
|
||||
# };
|
||||
programs = {
|
||||
bash = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
enableVteIntegration = true;
|
||||
};
|
||||
dircolors = enabled;
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
nix-direnv = enabled;
|
||||
};
|
||||
home-manager = enabled;
|
||||
};
|
||||
services = { };
|
||||
};
|
||||
}
|
||||
36
modules/home/stream-tools/default.nix
Normal file
36
modules/home/stream-tools/default.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
cfg = config.my-namespace.home.stream-tools;
|
||||
in {
|
||||
options.my-namespace.home.stream-tools = {
|
||||
enable = mkEnableOption "Enable the Stream Machine Tools";
|
||||
};
|
||||
|
||||
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
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 = {
|
||||
packages = with pkgs; [
|
||||
config.programs.obs-studio.finalPackage
|
||||
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" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
98
modules/nixos/desktop-environment/default.nix
Normal file
98
modules/nixos/desktop-environment/default.nix
Normal file
@@ -0,0 +1,98 @@
|
||||
{ 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;
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome-tweaks
|
||||
gnome-software
|
||||
gnomeExtensions.pop-shell
|
||||
gnome-remote-desktop
|
||||
];
|
||||
})
|
||||
|
||||
(lib.mkIf cfg.kde.enable {
|
||||
services.xserver.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
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
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
}
|
||||
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
|
||||
];
|
||||
};
|
||||
}
|
||||
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
|
||||
# '';
|
||||
};
|
||||
}
|
||||
53
modules/nixos/nixos/default.nix
Normal file
53
modules/nixos/nixos/default.nix
Normal file
@@ -0,0 +1,53 @@
|
||||
############################################
|
||||
#
|
||||
# Shared System Configuration module that's always enabled by default courtesy of snowfall lib
|
||||
#
|
||||
############################################
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib
|
||||
, # An instance of `pkgs` with your overlays and packages applied is also available.
|
||||
pkgs
|
||||
, # You also have access to your flake's inputs.
|
||||
inputs
|
||||
, # Additional metadata is provided by Snowfall Lib.
|
||||
namespace
|
||||
, # The namespace used for your flake, defaulting to "internal" if not set.
|
||||
system
|
||||
, # The system architecture for this host (eg. `x86_64-linux`).
|
||||
target
|
||||
, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
|
||||
format
|
||||
, # A normalized name for the system target (eg. `iso`).
|
||||
virtual
|
||||
, # A boolean to determine whether this system is a virtual target using nixos-generators.
|
||||
systems
|
||||
, # An attribute map of your defined hosts.
|
||||
|
||||
# All other arguments come from the module system.
|
||||
config
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib.my-namespace) enabled;
|
||||
in
|
||||
{
|
||||
config = {
|
||||
boot = { };
|
||||
console = { };
|
||||
environment = {
|
||||
systemPackages =
|
||||
(with pkgs; [
|
||||
age
|
||||
wget
|
||||
sops
|
||||
bitwarden-desktop #replaced bitwarden
|
||||
bitwarden-cli
|
||||
cowsay
|
||||
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 "XFCE desktop environment";
|
||||
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;
|
||||
};
|
||||
};
|
||||
}
|
||||
100
modules/nixos/steam/default.nix
Normal file
100
modules/nixos/steam/default.nix
Normal file
@@ -0,0 +1,100 @@
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# An instance of `pkgs` with your overlays and packages applied is also available.
|
||||
pkgs,
|
||||
# You also have access to your flake's inputs.
|
||||
inputs,
|
||||
# Additional metadata is provided by Snowfall Lib.
|
||||
# The namespace used for your flake, defaulting to "internal" if not set.
|
||||
namespace,
|
||||
# The system architecture for this host (eg. `x86_64-linux`).
|
||||
system,
|
||||
# The Snowfall Lib target for this system (eg. `x86_64-iso`).
|
||||
target,
|
||||
# A normalized name for the system target (eg. `iso`).
|
||||
format,
|
||||
# A boolean to determine whether this system is a virtual target using nixos-generators.
|
||||
virtual,
|
||||
# An attribute map of your defined hosts.
|
||||
systems,
|
||||
# All other arguments come from the system system.
|
||||
config
|
||||
, ...
|
||||
}:{
|
||||
config = {
|
||||
# programs.gamescope = {
|
||||
# enable = true;
|
||||
# capSysNice = true;
|
||||
# };
|
||||
environment.systemPackages = with pkgs; [
|
||||
protonup-ng # Tool to install and manage Proton-GE
|
||||
lutris
|
||||
vkd3d
|
||||
dxvk
|
||||
corefonts
|
||||
protontricks
|
||||
mangohud
|
||||
vkbasalt
|
||||
gamescope
|
||||
];
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
package = pkgs.steam.override {
|
||||
extraPkgs = pkgs: with pkgs; [
|
||||
gamemode
|
||||
];
|
||||
extraEnv = {
|
||||
SDL_VIDEODRIVER = "wayland";
|
||||
SDL_GAMECONTROLLERCONFIG = "$(cat <<-END
|
||||
060000000d0f00009601000000000000,Steam Controller (HHD),a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,paddle1:b13,paddle2:b12,paddle3:b15,paddle4:b14,misc2:b11,misc3:b16,misc4:b17,crc:ea35,
|
||||
0300a81c5e040000a102000000010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,crc:1ca8,
|
||||
$SDL_GAMECONTROLLERCONFIG
|
||||
END
|
||||
)"
|
||||
};
|
||||
};
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
||||
|
||||
# gamescopeSession = {
|
||||
# enable = true;
|
||||
# env = {
|
||||
# WLR_RENDERER = "vulkan";
|
||||
# DXVK_HDR = "0 ";
|
||||
# ENABLE_GAMESCOPE_WSI = "0";
|
||||
# WINE_FULLSCREEN_FSR = "1";
|
||||
# # Games allegedly prefer X11
|
||||
# SDL_VIDEODRIVER = "x11";
|
||||
# };
|
||||
# args = [
|
||||
# "--xwayland-count 1"
|
||||
# "--expose-wayland"
|
||||
|
||||
# "-e" # Enable steam integration
|
||||
# "--steam"
|
||||
|
||||
# # "--adaptive-sync"
|
||||
# # "--hdr-enabled"
|
||||
# # "--hdr-itm-enable"
|
||||
|
||||
# # External monitor
|
||||
# "--prefer-output DP-3"
|
||||
# "--output-width 1920"
|
||||
# "--output-height 1080"
|
||||
# "-r 172"
|
||||
|
||||
# # Laptop display
|
||||
# # "--prefer-output eDP-1"
|
||||
# # "--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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
0
overlays/.gitkeep
Normal file
0
overlays/.gitkeep
Normal file
11
overlays/mbedtls-fix/default.nix
Normal file
11
overlays/mbedtls-fix/default.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ ... }:
|
||||
|
||||
final: prev: {
|
||||
mbedtls_2 = prev.mbedtls_2.overrideAttrs (oldAttrs: {
|
||||
doCheck = false; # Skip failing PSA crypto tests
|
||||
});
|
||||
|
||||
haxe = prev.haxe.overrideAttrs (oldAttrs: {
|
||||
buildInputs = (oldAttrs.buildInputs or []) ++ [ final.mbedtls_2 ];
|
||||
});
|
||||
}
|
||||
17
overlays/synergy-fix/default.nix
Normal file
17
overlays/synergy-fix/default.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ ... }:
|
||||
|
||||
final: prev: {
|
||||
synergy = prev.synergy.overrideAttrs (oldAttrs: {
|
||||
postPatch = (oldAttrs.postPatch or "") + ''
|
||||
# Fix deprecated Qt endl usage in QTextStream contexts only
|
||||
# Don't touch cerr/cout which use std::endl
|
||||
find . -name "*.cpp" -type f -exec sed -i \
|
||||
's/\(outStream.*<<.*\)endl/\1Qt::endl/g; s/\(QTextStream.*<<.*\)endl/\1Qt::endl/g' {} +
|
||||
find . -name "*.h" -type f -exec sed -i \
|
||||
's/\(outStream.*<<.*\)endl/\1Qt::endl/g; s/\(QTextStream.*<<.*\)endl/\1Qt::endl/g' {} +
|
||||
|
||||
# Fix missing SIZE_MAX include
|
||||
sed -i '/#include <cstring>/a#include <cstdint>' src/lib/server/InputFilter.cpp
|
||||
'';
|
||||
});
|
||||
}
|
||||
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;
|
||||
};
|
||||
}
|
||||
69
packages/hello/default.nix
Normal file
69
packages/hello/default.nix
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# You also have access to your flake's inputs.
|
||||
inputs,
|
||||
|
||||
# The namespace used for your flake, defaulting to "internal" if not set.
|
||||
namespace,
|
||||
|
||||
# All other arguments come from NixPkgs. You can use `pkgs` to pull packages or helpers
|
||||
# programmatically or you may add the named attributes as arguments here.
|
||||
stdenv,
|
||||
fetchurl,
|
||||
nixos,
|
||||
callPackage,
|
||||
testers,
|
||||
versionCheckHook,
|
||||
hello,
|
||||
...
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hello";
|
||||
version = "2.12.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/hello/hello-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-jZkUKv2SV28wsM18tCqNxoCZmLxdYH2Idh9RLibH2yA=";
|
||||
};
|
||||
|
||||
# The GNU Hello `configure` script detects how to link libiconv but fails to actually make use of that.
|
||||
# Unfortunately, this cannot be a patch to `Makefile.am` because `autoreconfHook` causes a gettext
|
||||
# infrastructure mismatch error when trying to build `hello`.
|
||||
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
|
||||
NIX_LDFLAGS = "-liconv";
|
||||
};
|
||||
|
||||
doCheck = true;
|
||||
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
|
||||
# Give hello some install checks for testing purpose.
|
||||
postInstallCheck = ''
|
||||
stat "''${!outputBin}/bin/${finalAttrs.meta.mainProgram}"
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
version = testers.testVersion { package = hello; };
|
||||
};
|
||||
|
||||
passthru.tests.run = callPackage ./test.nix { hello = finalAttrs.finalPackage; };
|
||||
|
||||
meta = {
|
||||
description = "Program that produces a familiar, friendly greeting";
|
||||
longDescription = ''
|
||||
GNU Hello is a program that prints "Hello, world!" when you run it.
|
||||
It is fully customizable.
|
||||
'';
|
||||
homepage = "https://www.gnu.org/software/hello/manual/";
|
||||
changelog = "https://git.savannah.gnu.org/cgit/hello.git/plain/NEWS?h=v${finalAttrs.version}";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ stv0g ];
|
||||
mainProgram = "hello";
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
})
|
||||
8
packages/hello/test.nix
Normal file
8
packages/hello/test.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ runCommand, hello }:
|
||||
|
||||
runCommand "hello-test-run" {
|
||||
nativeBuildInputs = [ hello ];
|
||||
} ''
|
||||
diff -U3 --color=auto <(hello) <(echo 'Hello, world!')
|
||||
touch $out
|
||||
''
|
||||
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"
|
||||
};
|
||||
})
|
||||
48
packages/udev-steelseries/default.nix
Normal file
48
packages/udev-steelseries/default.nix
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# You also have access to your flake's inputs.
|
||||
inputs,
|
||||
|
||||
# The namespace used for your flake, defaulting to "internal" if not set.
|
||||
namespace,
|
||||
|
||||
# All other arguments come from NixPkgs. You can use `pkgs` to pull packages or helpers
|
||||
# programmatically or you may add the named attributes as arguments here.
|
||||
pkgs,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
...
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "steelseries-udev-rules";
|
||||
version = "unstable-2024-11-10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "MiddleMan5";
|
||||
repo = "steelseries-linux";
|
||||
rev = "d93dfdb6daeec150578e85e25b2e9df79e9539b7";
|
||||
sha256 = "sha256-yPw8QFKhlqb6lxQyYjBz34pEEfTVk1Yp9jFWdX5yH2k=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
dontConfigure = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib/udev/rules.d
|
||||
cp resources/98-steelseries.rules $out/lib/udev/rules.d/98-steelseries.rules
|
||||
mkdir -p $out/etc/udev/rules.d
|
||||
cp resources/98-steelseries-init.py $out/etc/udev/rules.d/98-steelseries-init.py
|
||||
chmod +x $out/etc/udev/rules.d/98-steelseries-init.py
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "udev rules for Steelseries devices";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ asymmetric ];
|
||||
platforms = platforms.linux;
|
||||
homepage = "https://github.com/MiddleMan5/steelseries-linux";
|
||||
};
|
||||
}
|
||||
51
secrets.yaml
Normal file
51
secrets.yaml
Normal file
@@ -0,0 +1,51 @@
|
||||
private-keys:
|
||||
andreas: ENC[AES256_GCM,data:UMOMU5vd+kOvReBP+noCPopsP90uAx0UM5mLgsXX1obks3DvcW28yVpLR952CroDzUOYwpkQ+7MheBznZxVfG6+b36rzphIUyDXArix3c90mak+4fhkUFAxsAW2VeKzUTGEBIUiejtfW4sBaHoQVWpDBSLbGajB9GzBXspNR+J/nriD8xas9ZkvYvFM4BIKM5vFNQxCGUy44IyHffxtX9kHjboiSeIgK7Gj1hA4iC/byIBqTLzJOCBHQs3irs/CSbZgFR7MFuiqR2ZWVdJ1dKAr9fejd36muymsutVUDzTsq/P1Id0YlgnYVcpJxAMHKq8QEZu8yNLEzkr/QMxs5Z2Bu93CkiJDAGXJZvtipfLX0UtIkResCLBD40EKty8U2OnKwm4k3xzJoHRTZ3qVnJQGESYHTZHHumRRcDYJnQBL6iav50mG0KS0mfcoetoDTpQfxsi3OnLO7kjSP2fE8sSJRi363nfciBwH/TTf911HhD5ruOo3bQeryjtGN8Y+PAqvrILiIKPODvoRVqaka,iv:lvlaQwEzDpvdSjH6Z4NrzABifyVP5jyzERHP72CSbis=,tag:rmSINraNXFZElfFHZDqeeQ==,type:str]
|
||||
andreas-password: ENC[AES256_GCM,data:XBvfrBSrlKzpO9vgmwQYJshlJH1OCMrcdfYMvp32ZOFZSf4/GrM/FRaatS7to+0ZgJlLNt+npSK0nwV8NXvwgHgN8bsuDiL7KQ==,iv:lD0ruX5AVKVfdA0/vpeUAPf5cTSExyaF8VWebFkbXV8=,tag:nAuwEkHGtlEzu8Qbe0ECdA==,type:str]
|
||||
#ENC[AES256_GCM,data:aX2EVkOK7ivoDTzSMmonY64dU6mnRjE83sA3MFIPnzeJ5snZN8WY9PF1CmkDU/ZVB+j9Law=,iv:sPfVyBuGCyd/Y9Lw9cl0akA2IUE5/Yi5C07dh6Ioyu0=,tag:tOT5uHVdgYG+/E4ye0QcFg==,type:comment]
|
||||
#ENC[AES256_GCM,data:djH8vAA+TvvbA/Jsuvca7E4o6pYTfKGGdK4=,iv:5Dw0niDhi7P6P9XRz2qgSL3CxpiXBtIsekOMycroLrA=,tag:OSvPPgq0kV4JskrQ86Qp5A==,type:comment]
|
||||
#ENC[AES256_GCM,data:C1BstOPXnCf4Cr8UlanCegA=,iv:k9Me959xb6Weg/yArAIg5kWH36se/yyGWNQUu314uw0=,tag:x0bTh0bsYxbCX5GObsGI5g==,type:comment]
|
||||
#ENC[AES256_GCM,data:Q0vsUrzlOgDICeIxXtc=,iv:gR8sYrtE/v9GGDEO2nj/v5IHr9ycXhvv1VcB/dEH/FU=,tag:FBde9vkRM/drFtpTWfLcNg==,type:comment]
|
||||
#ENC[AES256_GCM,data:LoKuLBSze19z0U/45DBFt6aEJBs=,iv:Btk0sBgj8h5Qk5eYNwPHULuhPu0nXSXE2iR4UVFcBeA=,tag:S2I9HQkeo/jJboy44vrgCw==,type:comment]
|
||||
#ENC[AES256_GCM,data:wDZ6Ln5teASPxXPvQGRZCdBIvfY=,iv:Qnx32skeDMB21GwhXd5fImkHS+y+HUOdNvbMT2mpy6A=,tag:BKl04542M8rH6BpFERqHZg==,type:comment]
|
||||
#ENC[AES256_GCM,data:f+g7qdm8xf/wDhQqlnzIdmHhzfOG73VWfdw=,iv:/kDspwnXH7QfhzUuHATQTniLm/ZX6mo/QGxyQXdubcY=,tag:muoXeMNHb5vqm8IoC6Gl4A==,type:comment]
|
||||
#ENC[AES256_GCM,data:42kR+DANphdxNVWNlxePU8U=,iv:JeZgMtb7a+/7V5hruQIHio0Aj+ThpHZwajx10e0rqOA=,tag:Ln+7DFl6+aq4YLZ8GK9qOg==,type:comment]
|
||||
#ENC[AES256_GCM,data:DjK/fZDWEaa2BA==,iv:AnceR62V3OJrn5utgdffMcC+mWdxsUYMYn6454SVCsY=,tag:MRa8cDMEMGtBCxvqcKy/0Q==,type:comment]
|
||||
#ENC[AES256_GCM,data:jqzidzai+6ShhzM=,iv:PDjUgLaoFVxAWBLXfWkXRzBp5BuvGU7DCorRYY6dan0=,tag:dKa2O7n/jno/M5nzCzCD/w==,type:comment]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age19j24x89dfh4f7v58c8k64yupqas4f7qkkyper7yj9dd7vqwvvq0qkyvhxk
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4U204eXIyaDJFMXIweXp1
|
||||
NEhoYU5qa3B5Q1VpODNsSEpuT0txRWpuVDM0CmptVHNFQkpWTkJ2M3B4dWpWN0s4
|
||||
ZjRuc3BhckVLSzFuOGJ3WTB0YnRRRDgKLS0tIHlaSUxITUlGU3VaRWZFbENUTVY2
|
||||
SWVwUGVxcGJscG5PalphZFVIS1ZjY2MKi4VvrNW1AH+fJaI/rzOltPylSiY1z3nS
|
||||
ebrYdpyM5KKQ46uezvU4J3Qau/Inv8CkZ72vHlQ6EK2kmmZZLszwJg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1ma8x6wugvc40mkst33mejq0m6r44jk6zwjjun3znyer5nztgn9vs0nwjx4
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyVHVwMEZjVk8xMTNIekF1
|
||||
ZFlZbFhvOTJSbVN4ZmorSmFCbkxBUUxOOERJCjBjMkdxQ0V4OXEwdGF2Sno4VTh2
|
||||
MURQMUhQV083M3lpREFRM2Qza3JLN0kKLS0tIEFoeUVsL3poajljMDEwTCtWcXRD
|
||||
Y3NHNmVDZFZuNjlUUDdMa3N3ZVNTWkUKeO4sT0ZyTAyrMKj27fbFhQZ+bDMru6Bk
|
||||
j4Im41l9ClpIVQt8iz61mwKrm+QmBA9r1aL34u3lGQyKBOk4vq/m9A==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1s5qwsuc3e4m3c4w5hl6tyja70w273gr60j9j9dcpc6mz69lemg3qpwud3h
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUT3dKNk4rSVZUck5LZ2t1
|
||||
eUhPSXBURUFGbnU4NUtjMVVpeGI5eVI1SVc4CkdTY25jTy91VFhLS1F3V3ZzM1A4
|
||||
OGMxWmtWd1lVU3dZcG8xWlRwYkorSU0KLS0tIE12WlFyUWZ0dHYvTEd0N0tPWUt1
|
||||
bldpMnp5cnpXN2J5MEc5cC9DZktEekUKC6sei7v252fZyW8sd1xuZDjwoJFCKGot
|
||||
t9f+jUDOx5wGlH53Fd2jCRArKZkQ850sFj79Lh2Rx6wbDj1Ks5XcVA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2024-12-10T04:12:19Z"
|
||||
mac: ENC[AES256_GCM,data:AcuCxKGm9xLgn/gnk0XDVtLM5PWQvgGd+qXusuvwCUV4ln1//Lpwpp3TL0mEMdwEcFOdCasW4A10rGpCoBqKsckroiUSEB0G2p0vrD3b3Vmo804JYcKmSZ85InZCXUWenfOTEzx/A1ruqSBSkRYro+NdyZ/+JXQVXnTLCPesgwE=,iv:UPRNsfeUKnml9OFkkqrI0fI4f/RWN2ovTsaItwT8Y0c=,tag:75NEPjeAXUwlCPGbLPhPFg==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.9.1
|
||||
29
shell.nix
Normal file
29
shell.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
let
|
||||
nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-24.05";
|
||||
pkgs = import nixpkgs { config = { }; overlays = [ ]; };
|
||||
in
|
||||
|
||||
pkgs.mkShellNoCC {
|
||||
packages = with pkgs; [
|
||||
cowsay
|
||||
lolcat
|
||||
bitwarden-desktop #replaced bitwarden
|
||||
bitwarden-cli
|
||||
sops
|
||||
];
|
||||
|
||||
GREETING = "Hello, Nix!";
|
||||
|
||||
shellHook = ''
|
||||
echo $GREETING | cowsay | lolcat
|
||||
bw config server https://vault.subsonics.nl
|
||||
echo "please enter bitwarden email"
|
||||
read BW_USER
|
||||
echo "please enter bitwarden password"
|
||||
read -s BW_PASSWORD
|
||||
bw login $BW_USER $BW_PASSWORD
|
||||
BW_SESSION="$(bw unlock $BW_PASSWORD --raw)"
|
||||
mkdir -p ~/.config/sops/age
|
||||
bw get attachment keys.txt --itemid ee6a90b0-4120-46f7-a1c6-9648316e43d5 --output ~/.config/sops/age/keys.txt
|
||||
'';
|
||||
}
|
||||
0
shells/.gitkeep
Normal file
0
shells/.gitkeep
Normal file
0
systems/x86_64-iso/.gitkeep
Normal file
0
systems/x86_64-iso/.gitkeep
Normal file
204
systems/x86_64-linux/drivebystation-nix/configuration.nix
Normal file
204
systems/x86_64-linux/drivebystation-nix/configuration.nix
Normal file
@@ -0,0 +1,204 @@
|
||||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hardware/hardware-configuration.nix
|
||||
];
|
||||
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
networking.hostName = "drivebystation-nix"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Amsterdam";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "nl_NL.UTF-8";
|
||||
LC_IDENTIFICATION = "nl_NL.UTF-8";
|
||||
LC_MEASUREMENT = "nl_NL.UTF-8";
|
||||
LC_MONETARY = "nl_NL.UTF-8";
|
||||
LC_NAME = "nl_NL.UTF-8";
|
||||
LC_NUMERIC = "nl_NL.UTF-8";
|
||||
LC_PAPER = "nl_NL.UTF-8";
|
||||
LC_TELEPHONE = "nl_NL.UTF-8";
|
||||
LC_TIME = "nl_NL.UTF-8";
|
||||
};
|
||||
|
||||
services = {
|
||||
# Enable Gnome Session
|
||||
displayManager.gdm.enable = false;
|
||||
displayManager.sddm.enable = false;
|
||||
# displayManager.sddm.wayland.enable = true;
|
||||
displayManager.cosmic-greeter.enable = true;
|
||||
displayManager.defaultSession = "gnome";
|
||||
|
||||
xserver = {
|
||||
enable = true; # Enable the deprecated X11 teletype terminal connection system.
|
||||
# Configure Display Manager
|
||||
displayManager = {
|
||||
lightdm.enable = false;
|
||||
};
|
||||
# Configure keymap in X11
|
||||
xkb = {
|
||||
layout = "us";
|
||||
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.autoLogin.user = "andreas";
|
||||
# systemd.services."getty@tty1".enable = false;
|
||||
# systemd.services."autovt@tty1".enable = false;
|
||||
|
||||
programs.ssh.askPassword = "${pkgs.x11_ssh_askpass}/libexec/x11-ssh-askpass";
|
||||
|
||||
# Configure console keymap
|
||||
console.keyMap = "us-acentos";
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
services.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# 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)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
|
||||
# Enable gamemode for game optimization
|
||||
programs.gamemode.enable = true;
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true;
|
||||
|
||||
# Enable XWayland for X11 application compatibility
|
||||
programs.xwayland.enable = true;
|
||||
|
||||
# docker
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
|
||||
# Allow unfree packages
|
||||
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:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
# wget
|
||||
(python312.withPackages (ps: with ps; [ websockets ]))
|
||||
sqlite
|
||||
javaPackages.compiler.openjdk25
|
||||
javaPackages.compiler.openjdk21
|
||||
qt6.qtwebengine
|
||||
qemu
|
||||
mpv
|
||||
krita
|
||||
ntfs3g
|
||||
htop
|
||||
];
|
||||
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
|
||||
|
||||
# Disable iBus (not needed unless using Asian input methods)
|
||||
i18n.inputMethod = {
|
||||
enable = false;
|
||||
};
|
||||
|
||||
virtualisation.libvirtd = {
|
||||
enable = true;
|
||||
qemu = {
|
||||
package = pkgs.qemu_kvm;
|
||||
runAsRoot = true;
|
||||
swtpm.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
24800 #Synergy
|
||||
53317 #localsend
|
||||
];
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
24800 #Synergy
|
||||
53317 #localsend
|
||||
];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "24.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
197
systems/x86_64-linux/drivebystation-nix/default.nix
Normal file
197
systems/x86_64-linux/drivebystation-nix/default.nix
Normal file
@@ -0,0 +1,197 @@
|
||||
# nixosConfigurations.th0nkpad-nixos = nixpkgs.lib.nixosSystem {
|
||||
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# An instance of `pkgs` with your overlays and packages applied is also available.
|
||||
pkgs,
|
||||
# You also have access to your flake's inputs.
|
||||
inputs,
|
||||
# Additional metadata is provided by Snowfall Lib.
|
||||
# The namespace used for your flake, defaulting to "internal" if not set.
|
||||
namespace,
|
||||
# The system architecture for this host (eg. `x86_64-linux`).
|
||||
system,
|
||||
# The Snowfall Lib target for this system (eg. `x86_64-iso`).
|
||||
target,
|
||||
# A normalized name for the system target (eg. `iso`).
|
||||
format,
|
||||
# A boolean to determine whether this system is a virtual target using nixos-generators.
|
||||
virtual,
|
||||
# An attribute map of your defined hosts.
|
||||
systems,
|
||||
# All other arguments come from the system system.
|
||||
config
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
inherit (lib.my-namespace) enabled;
|
||||
inherit pkgs;
|
||||
installedPackages = lib.my-namespace.mkPackages pkgs;
|
||||
in
|
||||
{
|
||||
# inherit system;
|
||||
imports = [
|
||||
./configuration.nix
|
||||
./video.nix
|
||||
inputs.aagl.nixosModules.default
|
||||
];
|
||||
config = {
|
||||
system.stateVersion = "24.05";
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
# 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.cosmic.enable = true;
|
||||
my-namespace.performance-tuning.enable = true;
|
||||
# GNOME-keyring
|
||||
my-namespace.gnome-keyring.enable = true;
|
||||
|
||||
users.users.andreas = {
|
||||
isNormalUser = true;
|
||||
description = "Andreas Schaafsma";
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"libvirtd"
|
||||
"plugdev"
|
||||
"docker"
|
||||
"gamemode"
|
||||
];
|
||||
packages = with pkgs; [
|
||||
# Packages from inputs
|
||||
inputs.game-of-life.packages.x86_64-linux.default
|
||||
inputs.zen-browser.packages.x86_64-linux.default
|
||||
inputs.trilium-next-pr.legacyPackages.x86_64-linux.trilium-next-desktop
|
||||
inputs.anikki.packages.x86_64-linux.default
|
||||
# We want flatpak support
|
||||
flatpak
|
||||
# GNOME shit
|
||||
thunderbird
|
||||
soundwireserver
|
||||
vscode
|
||||
spotify
|
||||
appimage-run
|
||||
prismlauncher #replaces broken minecraft package
|
||||
trilium-desktop
|
||||
terraform
|
||||
virt-manager
|
||||
# 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;
|
||||
my-namespace.keychron-keyboard.enable = true;
|
||||
|
||||
# lib.my-namespace.home.stream-tools.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
59010 #SoundWireServer
|
||||
3389 #RDP
|
||||
22 #ssh
|
||||
];
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
59010 #SoundWireServer
|
||||
3389 #RDP
|
||||
22 #ssh
|
||||
];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
programs.gamescope.enable = true;
|
||||
programs.steam.gamescopeSession = {
|
||||
enable = true;
|
||||
args = [
|
||||
"-w" "1920"
|
||||
"-h" "1080"
|
||||
"-r" "172"
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true;
|
||||
nixpkgs.config.allowBroken = true;
|
||||
powerManagement.cpuFreqGovernor = "performance";
|
||||
# Set up system Packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
wine
|
||||
# bottles
|
||||
gparted
|
||||
ntfs3g
|
||||
ntfsprogs
|
||||
synergy
|
||||
mangohud
|
||||
my-namespace.udev-steelseries
|
||||
my-namespace.hello
|
||||
kde-rounded-corners
|
||||
my-namespace.linux-wallpaperengine
|
||||
|
||||
(pkgs.writeShellScriptBin "switch-to-desktop" ''
|
||||
#!/bin/sh
|
||||
# Kill Steam and return to display manager
|
||||
pkill steam || true
|
||||
pkill gamescope || true
|
||||
# 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
|
||||
pkgs.mesa
|
||||
pkgs.vulkan-loader
|
||||
pkgs.vulkan-validation-layers
|
||||
pkgs.vulkan-extension-layer
|
||||
pkgs.vulkan-tools
|
||||
pkgs.libva
|
||||
pkgs.libva-utils
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
# wget
|
||||
]
|
||||
++ installedPackages.packages;
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
package = pkgs.nix-ld; #replaces nix-ld-rs
|
||||
};
|
||||
services.flatpak.enable = true;
|
||||
systemd.services.flatpak-repo = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = [ pkgs.flatpak ];
|
||||
script = ''
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
'';
|
||||
};
|
||||
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings.PasswordAuthentication = true;
|
||||
# settings = {
|
||||
# # passwordAuthentication = true;
|
||||
# };
|
||||
};
|
||||
|
||||
|
||||
# services.xrdp.enable = true;
|
||||
# services.xrdp.defaultWindowManager = "${pkgs.gnome-session}/bin/gnome-session";
|
||||
# services.xrdp.defaultWindowManager = "startxfce4";
|
||||
# services.xrdp.openFirewall = true;
|
||||
# services.xrdp.audio.enable = false;
|
||||
|
||||
|
||||
# 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.
|
||||
systemd.targets.sleep.enable = false;
|
||||
systemd.targets.suspend.enable = false;
|
||||
systemd.targets.hibernate.enable = false;
|
||||
systemd.targets.hybrid-sleep.enable = 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-2:edid/edid.bin" ];
|
||||
|
||||
|
||||
hardware.firmware = [
|
||||
(
|
||||
pkgs.runCommand "edid.bin" { } ''
|
||||
mkdir -p $out/lib/firmware/edid
|
||||
cp ${./firmware/KG271-edid.bin} $out/lib/firmware/edid/edid.bin
|
||||
''
|
||||
)];
|
||||
}
|
||||
BIN
systems/x86_64-linux/drivebystation-nix/hardware/firmware/KG271-edid.bin
Executable file
BIN
systems/x86_64-linux/drivebystation-nix/hardware/firmware/KG271-edid.bin
Executable file
Binary file not shown.
@@ -0,0 +1,82 @@
|
||||
{ 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 = [ "xe" "i915" ];
|
||||
# Blacklist everything for nvidia
|
||||
boot.blacklistedKernelModules = [
|
||||
"nouveau"
|
||||
"nvidia"
|
||||
"nvidia_drm"
|
||||
"nvidia_modeset"
|
||||
"nvidia_uvm"
|
||||
];
|
||||
|
||||
environment.variables = {
|
||||
KWIN_DRM_DEVICES = "/dev/dri/card0";
|
||||
};
|
||||
|
||||
|
||||
|
||||
############################
|
||||
## 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" ];
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
./graphics/intel.nix
|
||||
# ./graphics/nvidia.nix
|
||||
./acer-monitor-edid.nix
|
||||
];
|
||||
# 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.linuxPackages;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.kernelModules = [ "kvm-amd" "r8125" "4vl2loopback" ];
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback r8125 ];
|
||||
boot.supportedFilesystems = [ "ntfs" ];
|
||||
boot.blacklistedKernelModules = [ "r8169" ];
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
#device = "/dev/disk/by-uuid/E846-D998";
|
||||
device = "/dev/disk/by-uuid/19BE-8BAA";
|
||||
fsType = "vfat";
|
||||
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
|
||||
|
||||
# swapDevices = [ ];
|
||||
swapDevices = [ {
|
||||
device = "/var/lib/swapfile";
|
||||
size = 32*1024;
|
||||
} ]; #resume-offset = 78399488
|
||||
boot.resumeDevice = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76"; # the unlocked drive mapping
|
||||
boot.kernelParams = [
|
||||
"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;
|
||||
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still po ssible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp72s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
|
||||
}
|
||||
21
systems/x86_64-linux/drivebystation-nix/video.nix
Normal file
21
systems/x86_64-linux/drivebystation-nix/video.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
boot.kernelModules = [
|
||||
"v4l2loopback" # Webcam loopback
|
||||
];
|
||||
|
||||
boot.extraModulePackages = [
|
||||
config.boot.kernelPackages.v4l2loopback # Webcam loopback
|
||||
];
|
||||
|
||||
boot.extraModprobeConfig = ''
|
||||
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
||||
'';
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Webcam packages
|
||||
v4l-utils
|
||||
android-tools
|
||||
adb-sync
|
||||
];
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
||||
];
|
||||
|
||||
networking.hostName = "drivebystation-nixos-wsl";
|
||||
|
||||
# Enable Experimental Features
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
46
systems/x86_64-linux/drivebystation-nixos-wsl/default.nix
Normal file
46
systems/x86_64-linux/drivebystation-nixos-wsl/default.nix
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
# nixosConfigurations.drivebystation-nixos-wsl = nixpkgs.lib.nixosSystem {
|
||||
#
|
||||
# };
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# An instance of `pkgs` with your overlays and packages applied is also available.
|
||||
pkgs,
|
||||
# You also have access to your flake's inputs.
|
||||
inputs,
|
||||
# Additional metadata is provided by Snowfall Lib.
|
||||
namespace, # The namespace used for your flake, defaulting to "internal" if not set.
|
||||
system, # The system architecture for this host (eg. `x86_64-linux`).
|
||||
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
|
||||
format, # A normalized name for the system target (eg. `iso`).
|
||||
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
|
||||
systems, # An attribute map of your defined hosts.
|
||||
|
||||
# All other arguments come from the system system.
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
inherit system;
|
||||
modules = [
|
||||
nixos-wsl.nixosModules.default
|
||||
./configuration.nix
|
||||
{
|
||||
system.stateVersion = "24.05";
|
||||
wsl.enable = true;
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
environment.systemPackages = [
|
||||
|
||||
]
|
||||
++ installedPackages.mkPackages.packages;
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
package = pkgs.nix-ld-rs;
|
||||
};
|
||||
}
|
||||
];
|
||||
specialArgs = { inherit inputs; };
|
||||
# Your configuration.
|
||||
}
|
||||
@@ -44,29 +44,25 @@
|
||||
LC_TELEPHONE = "nl_NL.UTF-8";
|
||||
LC_TIME = "nl_NL.UTF-8";
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
# Enable the X11 windowing system
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the GNOME Desktop Environment.
|
||||
# Enable the GNOME Desktop Environment
|
||||
services.xserver.displayManager.gdm.enable = true;
|
||||
services.xserver.desktopManager.gnome.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "intl";
|
||||
};
|
||||
|
||||
# Configure console keymap
|
||||
console.keyMap = "us-acentos";
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
# Enable CUPS to print documents
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
# Enable sound with pulse (pipewire)
|
||||
hardware.pulseaudio.enable = false;
|
||||
# Enable realtimekit (pulse requirement)
|
||||
security.rtkit.enable = true;
|
||||
# Configure pipewire service
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
@@ -106,5 +102,4 @@
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "24.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
113
systems/x86_64-linux/th0nkpad-nixos/default.nix
Normal file
113
systems/x86_64-linux/th0nkpad-nixos/default.nix
Normal file
@@ -0,0 +1,113 @@
|
||||
# nixosConfigurations.th0nkpad-nixos = nixpkgs.lib.nixosSystem {
|
||||
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# An instance of `pkgs` with your overlays and packages applied is also available.
|
||||
pkgs,
|
||||
# You also have access to your flake's inputs.
|
||||
inputs,
|
||||
# Additional metadata is provided by Snowfall Lib.
|
||||
# The namespace used for your flake, defaulting to "internal" if not set.
|
||||
namespace,
|
||||
# The system architecture for this host (eg. `x86_64-linux`).
|
||||
system,
|
||||
# The Snowfall Lib target for this system (eg. `x86_64-iso`).
|
||||
target,
|
||||
# A normalized name for the system target (eg. `iso`).
|
||||
format,
|
||||
# A boolean to determine whether this system is a virtual target using nixos-generators.
|
||||
virtual,
|
||||
# An attribute map of your defined hosts.
|
||||
systems,
|
||||
# All other arguments come from the system system.
|
||||
config
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
inherit pkgs;
|
||||
installedPackages = lib.my-namespace.mkPackages pkgs;
|
||||
in
|
||||
{
|
||||
# inherit system;
|
||||
imports = [
|
||||
./configuration.nix
|
||||
];
|
||||
config = {
|
||||
system.stateVersion = "24.05";
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.andreas = {
|
||||
isNormalUser = true;
|
||||
description = "Andreas";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
packages = with pkgs; [
|
||||
flatpak
|
||||
gnome-software
|
||||
soundwireserver
|
||||
vscode
|
||||
spotify
|
||||
appimage-run
|
||||
inputs.game-of-life.packages.x86_64-linux.default
|
||||
inputs.nixos-cosmic
|
||||
# thunderbird
|
||||
];
|
||||
};
|
||||
# lib.my-namespace.home.stream-tools.enable = true;
|
||||
|
||||
|
||||
# Open ports in the firewall.
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
59010 #SoundWireServer
|
||||
3389 #RDP
|
||||
];
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
59010 #SoundWireServer
|
||||
3389 #RDP
|
||||
];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true;
|
||||
|
||||
# Set up system Packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
# wget
|
||||
]
|
||||
++ installedPackages.packages;
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
package = pkgs.nix-ld-rs;
|
||||
};
|
||||
services.flatpak.enable = true;
|
||||
systemd.services.flatpak-repo = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = [ pkgs.flatpak ];
|
||||
script = ''
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
'';
|
||||
};
|
||||
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
passwordAuthentication = true;
|
||||
};
|
||||
|
||||
|
||||
# services.xrdp.enable = true;
|
||||
# services.xrdp.defaultWindowManager = "${pkgs.gnome-session}/bin/gnome-session";
|
||||
# services.xrdp.openFirewall = true;
|
||||
|
||||
|
||||
# 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.
|
||||
systemd.targets.sleep.enable = false;
|
||||
systemd.targets.suspend.enable = false;
|
||||
systemd.targets.hibernate.enable = false;
|
||||
systemd.targets.hybrid-sleep.enable = false;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user