Compare commits
84 Commits
divergence
...
b4e3457721
| Author | SHA1 | Date | |
|---|---|---|---|
| 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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
398
flake.lock
generated
398
flake.lock
generated
@@ -3,15 +3,15 @@
|
|||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1717312683,
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
|
||||||
"owner": "edolstra",
|
"owner": "nix-community",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "edolstra",
|
"owner": "nix-community",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -32,24 +32,19 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts": {
|
"flake-compat_3": {
|
||||||
"inputs": {
|
"flake": false,
|
||||||
"nixpkgs-lib": [
|
|
||||||
"nix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719994518,
|
"lastModified": 1650374568,
|
||||||
"narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=",
|
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||||
"owner": "hercules-ci",
|
"owner": "edolstra",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-compat",
|
||||||
"rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7",
|
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "hercules-ci",
|
"owner": "edolstra",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-compat",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -58,11 +53,11 @@
|
|||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1726560853,
|
||||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -71,89 +66,114 @@
|
|||||||
"type": "github"
|
"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_2"
|
||||||
|
},
|
||||||
|
"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": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1728511087,
|
||||||
|
"narHash": "sha256-CvO74jwMjUUPySy0QCt7sPImbxKlhWcSAet93Fkt6iU=",
|
||||||
|
"owner": "local-interloper",
|
||||||
|
"repo": "game-of-life",
|
||||||
|
"rev": "c39d37e394f5da79a6a7d198e1d7e505aa5298a7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "local-interloper",
|
||||||
|
"repo": "game-of-life",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": [
|
|
||||||
"nix"
|
|
||||||
],
|
|
||||||
"gitignore": [
|
|
||||||
"nix"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nix",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"nixpkgs-stable": [
|
|
||||||
"nix",
|
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1721042469,
|
"lastModified": 1733484277,
|
||||||
"narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=",
|
"narHash": "sha256-i5ay20XsvpW91N4URET/nOc0VQWOAd4c4vbqYtcH8Rc=",
|
||||||
"owner": "cachix",
|
"owner": "nix-community",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "home-manager",
|
||||||
"rev": "f451c19376071a90d8c58ab1a953c6e9840527fd",
|
"rev": "d00c6f6d0ad16d598bf7e2956f52c1d9d5de3c3a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "cachix",
|
"owner": "nix-community",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"libgit2": {
|
"nixos-cosmic": {
|
||||||
"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": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"flake-parts": "flake-parts",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"git-hooks-nix": "git-hooks-nix",
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
"libgit2": "libgit2",
|
"rust-overlay": "rust-overlay"
|
||||||
"nixpkgs": "nixpkgs",
|
|
||||||
"nixpkgs-23-11": "nixpkgs-23-11",
|
|
||||||
"nixpkgs-regression": "nixpkgs-regression"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726840928,
|
"lastModified": 1733621779,
|
||||||
"narHash": "sha256-kXJvsJwtf03lb1TNgWDg14wuFTUz+BpwcjuQmVIItGM=",
|
"narHash": "sha256-oeBPiHmg8T/Qsf4qMkUqOrn6/xkJwREGo1jA+4xDssk=",
|
||||||
"owner": "NixOS",
|
"owner": "lilyinstarlight",
|
||||||
"repo": "nix",
|
"repo": "nixos-cosmic",
|
||||||
"rev": "68ba6ff4709d936c1a714de35da08f8ed354c710",
|
"rev": "b9ec66ed4e1430061ca044e938bb10f3ab629ba3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nix",
|
"owner": "lilyinstarlight",
|
||||||
"type": "indirect"
|
"repo": "nixos-cosmic",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-wsl": {
|
"nixos-wsl": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726981058,
|
"lastModified": 1733516684,
|
||||||
"narHash": "sha256-065MWSg1xhMdYun53S7mWKUEDviAEyxT/kl6JrjZwe4=",
|
"narHash": "sha256-yz3mZyTnPlxZW2f51kJyfofDsBeX7WxAPvTXZtr2lW4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NixOS-WSL",
|
"repo": "NixOS-WSL",
|
||||||
"rev": "f9f28d8ff5288f821f1e64ec03185a9bb0edb0d0",
|
"rev": "dd20ebde771edbdececade73dbb8791ff987d0db",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -165,75 +185,43 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723688146,
|
"lastModified": 1717179513,
|
||||||
"narHash": "sha256-sqLwJcHYeWLOeP/XoLwAtYjr01TISlkOfz+NG82pbdg=",
|
"narHash": "sha256-vboIEwIQojofItm2xGCdZCzW96U85l9nDW3ifMuAIdM=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c3d4ac725177c030b1e289015989da2ad9d56af0",
|
"rev": "63dacb46bf939521bdc93981b4cbb7ecb58427a0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-24.05",
|
"ref": "24.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-23-11": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717159533,
|
"lastModified": 1733412085,
|
||||||
"narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=",
|
"narHash": "sha256-FillH0qdWDt/nlO6ED7h4cmN+G9uXwGjwmCnHs0QVYM=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
"rev": "4dc2fc4e62dbf62b84132fe526356fbac7b03541",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
"repo": "nixpkgs",
|
"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",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726320982,
|
"lastModified": 1733392399,
|
||||||
"narHash": "sha256-RuVXUwcYwaUeks6h3OLrEmg14z9aFXdWppTWPMTwdQw=",
|
"narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8f7492cce28977fbf8bd12c72af08b1f6c7c3e49",
|
"rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-24.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1726755586,
|
|
||||||
"narHash": "sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK+Wk=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "c04d5652cfa9742b1d519688f65d1bbccea9eb7e",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -243,11 +231,128 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1729973466,
|
||||||
|
"narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "cd3e8833d70618c4eea8df06f95b364b016d4950",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733392399,
|
||||||
|
"narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1727348695,
|
||||||
|
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nix": "nix",
|
"game-of-life": "game-of-life",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixos-cosmic": "nixos-cosmic",
|
||||||
"nixos-wsl": "nixos-wsl",
|
"nixos-wsl": "nixos-wsl",
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_4",
|
||||||
|
"snowfall-lib": "snowfall-lib",
|
||||||
|
"sops-nix": "sops-nix",
|
||||||
|
"trilium-next-pr": "trilium-next-pr",
|
||||||
|
"zen-browser": "zen-browser"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixos-cosmic",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733538766,
|
||||||
|
"narHash": "sha256-FEDfBpM82XGdHDbLDJC4lV+QXSVN1rERt1MqtBGJZds=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "66526479b295ad238843a8a7367d2da7ec102757",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"snowfall-lib": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_3",
|
||||||
|
"flake-utils-plus": "flake-utils-plus",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1732544274,
|
||||||
|
"narHash": "sha256-qvzLIxuqukl0nxpXHEh5+iw1BLeLxYOwRC0+7cFUbPo=",
|
||||||
|
"owner": "snowfallorg",
|
||||||
|
"repo": "lib",
|
||||||
|
"rev": "cfeacd055545ab5de0ecfd41e09324dcd8fb2bbb",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "snowfallorg",
|
||||||
|
"repo": "lib",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sops-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733128155,
|
||||||
|
"narHash": "sha256-m6/qwJAJYcidGMEdLqjKzRIjapK4nUfMq7rDCTmZajc=",
|
||||||
|
"owner": "mic92",
|
||||||
|
"repo": "sops-nix",
|
||||||
|
"rev": "c6134b6fff6bda95a1ac872a2a9d5f32e3c37856",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "mic92",
|
||||||
|
"repo": "sops-nix",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
@@ -264,6 +369,55 @@
|
|||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"trilium-next-pr": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733744893,
|
||||||
|
"narHash": "sha256-CufsQ+I/s7TsPd6Rq62WAQZQDtoeC8nw+ExuXeWnDRk=",
|
||||||
|
"owner": "FliegendeWurst",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "6000de6a3f96f729ef031cbd4ecb04898cb38780",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "FliegendeWurst",
|
||||||
|
"ref": "trilium-next",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zen-browser": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_5"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1727721329,
|
||||||
|
"narHash": "sha256-QYlWZwUSwrM7BuO+dXclZIwoPvBIuJr6GpFKv9XKFPI=",
|
||||||
|
"owner": "MarceColl",
|
||||||
|
"repo": "zen-browser-flake",
|
||||||
|
"rev": "e6ab73f405e9a2896cce5956c549a9cc359e5fcc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "MarceColl",
|
||||||
|
"repo": "zen-browser-flake",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
184
flake.nix
184
flake.nix
@@ -2,109 +2,103 @@
|
|||||||
description = "Nixos config flake test";
|
description = "Nixos config flake test";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
|
# nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
||||||
|
# Snowfallorg's Flake utility
|
||||||
|
snowfall-lib = {
|
||||||
|
url = "github:snowfallorg/lib";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
game-of-life.url = "github:local-interloper/game-of-life";
|
||||||
|
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
|
||||||
|
# Add sops-nix for secrets management
|
||||||
|
sops-nix = {
|
||||||
|
url = "github:mic92/sops-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
zen-browser.url = "github:MarceColl/zen-browser-flake";
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
trilium-next-pr.url = "github:FliegendeWurst/nixpkgs/trilium-next";
|
||||||
};
|
};
|
||||||
outputs = { self, nixpkgs, nixos-wsl, nix, ... }@inputs:
|
|
||||||
|
outputs = inputs:
|
||||||
let
|
let
|
||||||
system =
|
lib = inputs.snowfall-lib.mkLib {
|
||||||
if builtins ? currentSystem
|
inherit inputs;
|
||||||
then builtins.currentSystem
|
src = ./.;
|
||||||
else "x86_64-linux";
|
|
||||||
pkgs = import nixpkgs { inherit system; config.allowUnfree = true; };
|
|
||||||
installedPackages = (import ./installed-packages { inherit pkgs; });
|
|
||||||
in
|
|
||||||
{
|
|
||||||
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" ];
|
|
||||||
environment.systemPackages = [
|
|
||||||
|
|
||||||
]
|
channels-config = {
|
||||||
++ installedPackages.mkPackages.packages;
|
allowUnfree = true;
|
||||||
programs.nix-ld = {
|
allowUnfreePredicate = _: true;
|
||||||
enable = true;
|
permittedInsecurePackages = [ "openssl-1.1.1w" ];
|
||||||
package = pkgs.nix-ld-rs;
|
};
|
||||||
};
|
|
||||||
}
|
# Configure Snowfall Lib, all of these settings are optional.
|
||||||
];
|
snowfall = {
|
||||||
specialArgs = { inherit inputs; };
|
# 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
nixosConfigurations.th0nkpad-nixos = nixpkgs.lib.nixosSystem {
|
in
|
||||||
inherit system;
|
lib.mkFlake {
|
||||||
modules = [
|
inherit inputs;
|
||||||
./systems/th0nkpad-nixos/configuration.nix
|
src = ./.;
|
||||||
{
|
|
||||||
system.stateVersion = "24.05";
|
nixos = with inputs; [
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
# disko.nixosModules.disko
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# impermanence.nixosModules.impermanence
|
||||||
users.users.andreas = {
|
home-manager.nixosModules.home-manager
|
||||||
isNormalUser = true;
|
{
|
||||||
description = "Andreas";
|
home-manager = {
|
||||||
extraGroups = [ "networkmanager" "wheel" ];
|
useGlobalPkgs = true;
|
||||||
packages = with pkgs; [
|
useUserPackages = true;
|
||||||
flatpak
|
};
|
||||||
gnome-software
|
}
|
||||||
soundwireserver
|
# nix-ld.nixosModules.nix-ld
|
||||||
vscode
|
# sops-nix.nixosModules.sops
|
||||||
# thunderbird
|
# stylix.nixosModules.stylix
|
||||||
];
|
];
|
||||||
};
|
|
||||||
|
systems.modules.nixos = with inputs; [
|
||||||
|
# my-input.nixosModules.my-module
|
||||||
|
];
|
||||||
|
|
||||||
|
# The attribute set specified here will be passed directly to NixPkgs when
|
||||||
|
# instantiating the package set.
|
||||||
|
channels-config = {
|
||||||
|
# Allow unfree packages.
|
||||||
|
allowUnfree = true;
|
||||||
|
|
||||||
|
# # 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
32
homes/x86_64-linux/andreas@drivebystation-nix/default.nix
Normal file
32
homes/x86_64-linux/andreas@drivebystation-nix/default.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{ config
|
||||||
|
, lib
|
||||||
|
, inputs
|
||||||
|
, 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.gamemode
|
||||||
|
pkgs.beeper
|
||||||
|
pkgs.my-namespace.udev-steelseries
|
||||||
|
pkgs.qbittorrent
|
||||||
|
pkgs.vesktop
|
||||||
|
pkgs.obsidian
|
||||||
|
inputs.zen-browser.packages.x86_64-linux.default ];
|
||||||
|
};
|
||||||
|
}
|
||||||
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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
30
homes/x86_64-linux/gaming@drivebystation-nix/default.nix
Normal file
30
homes/x86_64-linux/gaming@drivebystation-nix/default.nix
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{ 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.gamemode
|
||||||
|
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 = { };
|
||||||
|
};
|
||||||
|
}
|
||||||
28
modules/home/stream-tools/default.nix
Normal file
28
modules/home/stream-tools/default.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
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 = [ pkgs.obs-studio-plugins.droidcam-obs ];
|
||||||
|
};
|
||||||
|
home = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
# obs-studio
|
||||||
|
droidcam
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
32
modules/nixos/cosmic-desktop/default.nix
Normal file
32
modules/nixos/cosmic-desktop/default.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{ config
|
||||||
|
, lib
|
||||||
|
, inputs
|
||||||
|
, pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
inherit (lib.my-namespace) disabled enabled;
|
||||||
|
|
||||||
|
cfg = config.my-namespace.cosmic-desktop;
|
||||||
|
# moduleImports = {
|
||||||
|
# "enabled" = [inputs.nixos-cosmic.nixosModules.default];
|
||||||
|
# "disabled" = [];
|
||||||
|
# };
|
||||||
|
# optionalImports = { imports = []; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my-namespace.cosmic-desktop = {
|
||||||
|
enable = mkEnableOption "Enable nvidia";
|
||||||
|
};
|
||||||
|
imports = [ inputs.nixos-cosmic.nixosModules.default ];
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
nix.settings = {
|
||||||
|
substituters = [ "https://cosmic.cachix.org/" ];
|
||||||
|
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.desktopManager.cosmic.enable = true;
|
||||||
|
services.displayManager.cosmic-greeter.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,176 @@
|
|||||||
|
{ config
|
||||||
|
, lib
|
||||||
|
, pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
inherit (lib.my-namespace) disabled enabled;
|
||||||
|
|
||||||
|
cfg = config.my-namespace.hardware.graphics-nvidia-prime-amd-testing;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my-namespace.hardware.graphics-nvidia-prime-amd-testing = {
|
||||||
|
enable = mkEnableOption "Enable nvidia";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
# Enable NVIDIA driver for X11 and Wayland
|
||||||
|
# without modesetting, x server will be run by nvidia
|
||||||
|
services.xserver.videoDrivers = [
|
||||||
|
"nvidia"
|
||||||
|
# "nvidia-drm"
|
||||||
|
# "nvidia-uvm"
|
||||||
|
# "nvidia-modeset"
|
||||||
|
# "nvidiafb"
|
||||||
|
"amdgpu"
|
||||||
|
# "modesetting"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enable OpenGL
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.graphics.enable32Bit = true; # For 32 bit applications
|
||||||
|
|
||||||
|
# Enable Switcheroo
|
||||||
|
services.switcherooControl.enable = true;
|
||||||
|
|
||||||
|
# Use Beta Driver Package
|
||||||
|
boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11_beta ];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.consoleMode = "max";
|
||||||
|
|
||||||
|
# Enable required Kernel Modules
|
||||||
|
boot.initrd.kernelModules = [
|
||||||
|
"nvidia"
|
||||||
|
"nvidia-drm"
|
||||||
|
"nvidia-uvm"
|
||||||
|
"nvidia-modeset"
|
||||||
|
"nvidiafb"
|
||||||
|
"amdgpu"
|
||||||
|
# # "i2c-nvidia_gpu"
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
boot.kernelParams = [
|
||||||
|
# "amdgpu.modeset=1"
|
||||||
|
# "nvidia-drm.fbdev=1"
|
||||||
|
# "nvidia-drm.modeset=1"
|
||||||
|
# # "nvidia.NVreg_PreserveVideoMemoryAllocations=0"
|
||||||
|
"amd_iommu=on"
|
||||||
|
# "vfio-pci.ids=\"10de:2489,10de:228b\""
|
||||||
|
# "nomodeset"
|
||||||
|
# "nvidia_drm.modeset=1"
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
# Blacklist intel and nouveau
|
||||||
|
boot.blacklistedKernelModules = [
|
||||||
|
# "i915"
|
||||||
|
"nouveau"
|
||||||
|
# "nvidia"
|
||||||
|
# "nvidia-drm"
|
||||||
|
# "nvidia-uvm"
|
||||||
|
# "nvidiafb"
|
||||||
|
# "nvidia_drm"
|
||||||
|
# "nvidia_modeset"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Extra blacklist nouveau
|
||||||
|
# boot.extraModprobeConfig = ''
|
||||||
|
# blacklist nouveau
|
||||||
|
# options nouveau modeset=0
|
||||||
|
# '';
|
||||||
|
|
||||||
|
# services.xserver.config = lib.mkForce ''
|
||||||
|
# Section "ServerLayout"
|
||||||
|
# Identifier "layout"
|
||||||
|
# Screen 0 "amdgpu"
|
||||||
|
# Inactive "nvidia"
|
||||||
|
# Option "AllowNVIDIAGPUScreens"
|
||||||
|
# EndSection
|
||||||
|
|
||||||
|
# Section "Device"
|
||||||
|
# Identifier "nvidia"
|
||||||
|
# Driver "nvidia"
|
||||||
|
# BusID "PCI:01:0:0"
|
||||||
|
# EndSection
|
||||||
|
|
||||||
|
# Section "Screen"
|
||||||
|
# Identifier "nvidia"
|
||||||
|
# Device "nvidia"
|
||||||
|
# EndSection
|
||||||
|
|
||||||
|
# Section "Device"
|
||||||
|
# Identifier "amdgpu"
|
||||||
|
# Driver "amdgpu"
|
||||||
|
# BusID "PCI:50:0:0"
|
||||||
|
# EndSection
|
||||||
|
|
||||||
|
# Section "Screen"
|
||||||
|
# Identifier "amdgpu"
|
||||||
|
# Device "amdgpu"
|
||||||
|
# EndSection
|
||||||
|
# '';
|
||||||
|
|
||||||
|
# Configure NVIDIA driver
|
||||||
|
hardware.nvidia = {
|
||||||
|
# Modesetting is required.
|
||||||
|
modesetting.enable = true;
|
||||||
|
|
||||||
|
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||||
|
# Enable this if you have graphical corruption issues or application crashes after waking
|
||||||
|
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
||||||
|
# of just the bare essentials.
|
||||||
|
powerManagement.enable = true;
|
||||||
|
|
||||||
|
# Fine-grained power management. Turns off GPU when not in use.
|
||||||
|
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
|
||||||
|
# Use the NVidia open source kernel module (not to be confused with the
|
||||||
|
# independent third-party "nouveau" open source driver).
|
||||||
|
# Support is limited to the Turing and later architectures. Full list of
|
||||||
|
# supported GPUs is at:
|
||||||
|
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||||
|
# Only available from driver 515.43.04+
|
||||||
|
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||||
|
open = false;
|
||||||
|
|
||||||
|
# Enable the Nvidia settings menu,
|
||||||
|
# accessible via `nvidia-settings`.
|
||||||
|
nvidiaSettings = true;
|
||||||
|
|
||||||
|
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||||
|
# package = config.boot.kernelPackages.nvidiaPackages.none;
|
||||||
|
# package = config.boot.kernelPackages.nvidiaPackages.production;
|
||||||
|
nvidiaPersistenced = true;
|
||||||
|
forceFullCompositionPipeline = true;
|
||||||
|
|
||||||
|
prime = {
|
||||||
|
offload = {
|
||||||
|
enable = true;
|
||||||
|
enableOffloadCmd = true;
|
||||||
|
};
|
||||||
|
# sync.enable=true;
|
||||||
|
# reverseSync.enable = false;
|
||||||
|
# Make sure to use the correct Bus ID values for your system!
|
||||||
|
# intelBusId = "PCI:0:2:0";
|
||||||
|
nvidiaBusId = "PCI:1:0:0";
|
||||||
|
amdgpuBusId = "PCI:50:0:0"; #For AMD GPU
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
# Add user to extra groups
|
||||||
|
users.users.andreas = {
|
||||||
|
extraGroups = [ "video" "render" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
131
modules/nixos/hardware/graphics-nvidia-prime-amd/default.nix
Normal file
131
modules/nixos/hardware/graphics-nvidia-prime-amd/default.nix
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
{ config
|
||||||
|
, lib
|
||||||
|
, pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
inherit (lib.my-namespace) disabled enabled;
|
||||||
|
|
||||||
|
cfg = config.my-namespace.hardware.graphics-nvidia-prime-amd;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my-namespace.hardware.graphics-nvidia-prime-amd = {
|
||||||
|
enable = mkEnableOption "Enable nvidia";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
# Enable NVIDIA driver for X11 and Wayland
|
||||||
|
services.xserver.videoDrivers = [ "amdgpu" "nvidia" ];
|
||||||
|
|
||||||
|
# Enable OpenGL
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Use Beta Driver Package
|
||||||
|
boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11_beta ];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.consoleMode = "max";
|
||||||
|
|
||||||
|
# Enable required Kernel Modules
|
||||||
|
boot.initrd.kernelModules = [
|
||||||
|
"amdgpu"
|
||||||
|
"nvidia"
|
||||||
|
# "nvidia-drm"
|
||||||
|
"nvidiafb"
|
||||||
|
# "nvidia-uvm"
|
||||||
|
# "nvidia-modeset"
|
||||||
|
# "i2c-nvidia_gpu"
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
boot.kernelParams = [
|
||||||
|
"amdgpu.modeset=1"
|
||||||
|
"nvidia-drm.fbdev=1"
|
||||||
|
"nvidia-drm.modeset=0"
|
||||||
|
# "nvidia.NVreg_PreserveVideoMemoryAllocations=0"
|
||||||
|
"amd_iommu=on"
|
||||||
|
# "vfio-pci.ids=\"10de:2489,10de:228b\""
|
||||||
|
# "nomodeset"
|
||||||
|
# "nvidia_drm.modeset=1"
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
# Blacklist intel and nouveau
|
||||||
|
boot.blacklistedKernelModules = [
|
||||||
|
"i915"
|
||||||
|
"nouveau"
|
||||||
|
# "nvidia"
|
||||||
|
# "nvidia-drm"
|
||||||
|
# "nvidia-uvm"
|
||||||
|
# "nvidiafb"
|
||||||
|
# "nvidia_drm"
|
||||||
|
# "nvidia_modeset"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Extra blacklist nouveau
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
blacklist nouveau
|
||||||
|
options nouveau modeset=0
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Configure NVIDIA driver
|
||||||
|
hardware.nvidia = {
|
||||||
|
# Modesetting is required.
|
||||||
|
modesetting.enable = true;
|
||||||
|
|
||||||
|
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||||
|
# Enable this if you have graphical corruption issues or application crashes after waking
|
||||||
|
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
||||||
|
# of just the bare essentials.
|
||||||
|
powerManagement.enable = true;
|
||||||
|
|
||||||
|
# Fine-grained power management. Turns off GPU when not in use.
|
||||||
|
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
|
||||||
|
# Use the NVidia open source kernel module (not to be confused with the
|
||||||
|
# independent third-party "nouveau" open source driver).
|
||||||
|
# Support is limited to the Turing and later architectures. Full list of
|
||||||
|
# supported GPUs is at:
|
||||||
|
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||||
|
# Only available from driver 515.43.04+
|
||||||
|
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||||
|
open = false;
|
||||||
|
|
||||||
|
# Enable the Nvidia settings menu,
|
||||||
|
# accessible via `nvidia-settings`.
|
||||||
|
nvidiaSettings = true;
|
||||||
|
|
||||||
|
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||||
|
# package = config.boot.kernelPackages.nvidiaPackages.none;
|
||||||
|
# package = config.boot.kernelPackages.nvidiaPackages.production;
|
||||||
|
|
||||||
|
forceFullCompositionPipeline = false;
|
||||||
|
|
||||||
|
prime = {
|
||||||
|
offload = {
|
||||||
|
enable = true;
|
||||||
|
enableOffloadCmd = true;
|
||||||
|
};
|
||||||
|
reverseSync.enable = false;
|
||||||
|
# Make sure to use the correct Bus ID values for your system!
|
||||||
|
# intelBusId = "PCI:0:2:0";
|
||||||
|
nvidiaBusId = "PCI:01:0:0";
|
||||||
|
amdgpuBusId = "PCI:50:0:0"; #For AMD GPU
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
# Add user to extra groups
|
||||||
|
users.users.andreas = {
|
||||||
|
extraGroups = [ "video" "render" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
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
|
||||||
|
bitwarden-cli
|
||||||
|
cowsay
|
||||||
|
remmina
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
75
modules/nixos/steam/default.nix
Normal file
75
modules/nixos/steam/default.nix
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
# 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;
|
||||||
|
# };
|
||||||
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
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
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
0
overlays/.gitkeep
Normal file
0
overlays/.gitkeep
Normal file
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
|
||||||
|
''
|
||||||
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
|
||||||
|
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
156
systems/x86_64-linux/drivebystation-nix/configuration.nix
Normal file
156
systems/x86_64-linux/drivebystation-nix/configuration.nix
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
# 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.xserver = {
|
||||||
|
enable = true; # Enable the deprecated X11 teletype terminal connection system.
|
||||||
|
# Specify first device section to use nvidia GPU
|
||||||
|
#deviceSection = ''
|
||||||
|
# # Pick the 1070
|
||||||
|
# BusID "PCI:1:0:0"
|
||||||
|
#'';
|
||||||
|
desktopManager = {
|
||||||
|
# Disable xterm
|
||||||
|
xterm.enable = false;
|
||||||
|
# Enable xfce session
|
||||||
|
xfce = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
# Enable Gnome Session
|
||||||
|
gnome.enable = true;
|
||||||
|
# Disable fuckshit plasma
|
||||||
|
plasma6.enable = false;
|
||||||
|
};
|
||||||
|
# Configure Display Manager
|
||||||
|
displayManager = {
|
||||||
|
gdm.enable = false;
|
||||||
|
sddm.enable = false;
|
||||||
|
# Enable lightdm
|
||||||
|
lightdm.enable = true;
|
||||||
|
defaultSession = "xfce";
|
||||||
|
};
|
||||||
|
# Configure keymap in X11
|
||||||
|
xkb = {
|
||||||
|
layout = "us";
|
||||||
|
variant = "intl";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# 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.
|
||||||
|
hardware.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 touchpad support (enabled default in most desktopManager).
|
||||||
|
# services.xserver.libinput.enable = true;
|
||||||
|
|
||||||
|
# Install firefox.
|
||||||
|
programs.firefox.enable = true;
|
||||||
|
|
||||||
|
# Allow unfree packages
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||||
|
# wget
|
||||||
|
xfce.xfce4-whiskermenu-plugin
|
||||||
|
gnome-tweaks
|
||||||
|
];
|
||||||
|
|
||||||
|
# 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
|
||||||
|
];
|
||||||
|
networking.firewall.allowedUDPPorts = [
|
||||||
|
24800 #Synergy
|
||||||
|
];
|
||||||
|
# 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?
|
||||||
|
|
||||||
|
}
|
||||||
147
systems/x86_64-linux/drivebystation-nix/default.nix
Normal file
147
systems/x86_64-linux/drivebystation-nix/default.nix
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
# 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
|
||||||
|
];
|
||||||
|
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 Schaafsma";
|
||||||
|
extraGroups = [ "networkmanager" "wheel" ] ;
|
||||||
|
packages = with pkgs; [
|
||||||
|
# Packages from inputs
|
||||||
|
inputs.game-of-life.packages.x86_64-linux.default
|
||||||
|
inputs.zen-browser.packages.x86_64-linux.default
|
||||||
|
inputs.nixos-cosmic
|
||||||
|
inputs.trilium-next-pr.legacyPackages.x86_64-linux.trilium-next-desktop
|
||||||
|
# We want flatpak support
|
||||||
|
flatpak
|
||||||
|
# GNOME shit
|
||||||
|
gnome-software
|
||||||
|
gnomeExtensions.pop-shell
|
||||||
|
gnome-remote-desktop
|
||||||
|
|
||||||
|
soundwireserver
|
||||||
|
vscode
|
||||||
|
spotify
|
||||||
|
appimage-run
|
||||||
|
minecraft
|
||||||
|
trilium-desktop
|
||||||
|
terraform
|
||||||
|
# thunderbird
|
||||||
|
];
|
||||||
|
};
|
||||||
|
services.gnome.gnome-remote-desktop.enable = true;
|
||||||
|
my-namespace.cosmic-desktop.enable = false;
|
||||||
|
# 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;
|
||||||
|
nixpkgs.config.allowBroken = true;
|
||||||
|
# Set up system Packages
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
git
|
||||||
|
wine
|
||||||
|
bottles
|
||||||
|
gparted
|
||||||
|
ntfs3g
|
||||||
|
ntfsprogs
|
||||||
|
synergy
|
||||||
|
my-namespace.udev-steelseries
|
||||||
|
my-namespace.hello
|
||||||
|
# stuff I installed to try to get gamescope to work to no avail Gamescope is just broken it seems.
|
||||||
|
# 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-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.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 = true;
|
||||||
|
systemd.targets.suspend.enable = true;
|
||||||
|
systemd.targets.hibernate.enable = true;
|
||||||
|
systemd.targets.hybrid-sleep.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
boot.kernelParams = [ "drm.edid_firmware=DP-1: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,10 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib.my-namespace) enabled;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
my-namespace.hardware = {
|
||||||
|
# graphics-nvidia-prime-amd = enabled;
|
||||||
|
graphics-nvidia-prime-amd-testing = enabled;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,126 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
# Enable OpenGL
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Load nvidia driver for Xorg and Wayland
|
||||||
|
# boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
|
||||||
|
boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11_beta ];
|
||||||
|
# boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
|
||||||
|
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.consoleMode = "max";
|
||||||
|
|
||||||
|
boot.kernelParams = [
|
||||||
|
"amdgpu.modeset=1"
|
||||||
|
"nvidia-drm.fbdev=1"
|
||||||
|
"nvidia-drm.modeset=0"
|
||||||
|
# "nvidia.NVreg_PreserveVideoMemoryAllocations=0"
|
||||||
|
"amd_iommu=on"
|
||||||
|
# "vfio-pci.ids=\"10de:2489,10de:228b\""
|
||||||
|
# "nomodeset"
|
||||||
|
# "nvidia_drm.modeset=1"
|
||||||
|
];
|
||||||
|
boot.blacklistedKernelModules = [
|
||||||
|
"i915"
|
||||||
|
"nouveau"
|
||||||
|
# "nvidia"
|
||||||
|
# "nvidia-drm"
|
||||||
|
# "nvidia-uvm"
|
||||||
|
# "nvidiafb"
|
||||||
|
# "nvidia_drm"
|
||||||
|
# "nvidia_modeset"
|
||||||
|
];
|
||||||
|
# boot.extraModprobeConfig = ''
|
||||||
|
# blacklist nvidia
|
||||||
|
# blacklist nvidia-drm
|
||||||
|
# blacklist nvidia_drm
|
||||||
|
# blacklist nvidia-uvm
|
||||||
|
# blacklist nvidia_uvm
|
||||||
|
# blacklist nvidia_modeset
|
||||||
|
# blacklist nvidiafb
|
||||||
|
# blacklist nouveau
|
||||||
|
# options nouveau modeset=0
|
||||||
|
# '';
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
blacklist nouveau
|
||||||
|
options nouveau modeset=0
|
||||||
|
'';
|
||||||
|
# services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
services.xserver.videoDrivers = [ "amdgpu" "nvidia" ];
|
||||||
|
|
||||||
|
# services.udev.extraRules = ''
|
||||||
|
# # Remove NVIDIA USB xHCI Host Controller devices, if present
|
||||||
|
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||||
|
# # Remove NVIDIA USB Type-C UCSI devices, if present
|
||||||
|
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||||
|
# # Remove NVIDIA Audio devices, if present
|
||||||
|
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||||
|
# # Remove NVIDIA VGA/3D controller devices
|
||||||
|
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||||
|
# '';
|
||||||
|
|
||||||
|
boot.initrd.kernelModules = [
|
||||||
|
"amdgpu"
|
||||||
|
"nvidia"
|
||||||
|
# "nvidia-drm"
|
||||||
|
"nvidiafb"
|
||||||
|
# "nvidia-uvm"
|
||||||
|
# "nvidia-modeset"
|
||||||
|
# "i2c-nvidia_gpu"
|
||||||
|
];
|
||||||
|
hardware.nvidia = {
|
||||||
|
# Modesetting is required.
|
||||||
|
modesetting.enable = true;
|
||||||
|
|
||||||
|
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||||
|
# Enable this if you have graphical corruption issues or application crashes after waking
|
||||||
|
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
||||||
|
# of just the bare essentials.
|
||||||
|
powerManagement.enable = true;
|
||||||
|
|
||||||
|
# Fine-grained power management. Turns off GPU when not in use.
|
||||||
|
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
|
||||||
|
# Use the NVidia open source kernel module (not to be confused with the
|
||||||
|
# independent third-party "nouveau" open source driver).
|
||||||
|
# Support is limited to the Turing and later architectures. Full list of
|
||||||
|
# supported GPUs is at:
|
||||||
|
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||||
|
# Only available from driver 515.43.04+
|
||||||
|
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||||
|
open = false;
|
||||||
|
|
||||||
|
# Enable the Nvidia settings menu,
|
||||||
|
# accessible via `nvidia-settings`.
|
||||||
|
nvidiaSettings = true;
|
||||||
|
|
||||||
|
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||||
|
# package = config.boot.kernelPackages.nvidiaPackages.none;
|
||||||
|
# package = config.boot.kernelPackages.nvidiaPackages.production;
|
||||||
|
|
||||||
|
forceFullCompositionPipeline = false;
|
||||||
|
|
||||||
|
prime = {
|
||||||
|
offload = {
|
||||||
|
enable = true;
|
||||||
|
enableOffloadCmd = true;
|
||||||
|
};
|
||||||
|
reverseSync.enable = false;
|
||||||
|
# Make sure to use the correct Bus ID values for your system!
|
||||||
|
# intelBusId = "PCI:0:2:0";
|
||||||
|
nvidiaBusId = "PCI:01:0:0";
|
||||||
|
amdgpuBusId = "PCI:50:0:0"; #For AMD GPU
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
users.users.andreas = {
|
||||||
|
extraGroups = [ "video" "render" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
# 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/nvidia-stable.nix
|
||||||
|
# ./graphics/nvidia.nix
|
||||||
|
./acer-monitor-edid.nix
|
||||||
|
];
|
||||||
|
#boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
# boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest;
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages;
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" "4vl2loopback" ];
|
||||||
|
boot.extraModulePackages = [ pkgs.linuxPackages.v4l2loopback ];
|
||||||
|
|
||||||
|
boot.blacklistedKernelModules = [ ];
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/E846-D998";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# 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;}'
|
||||||
|
];
|
||||||
|
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 = [
|
||||||
|
pkgs.linuxPackages.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; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|
||||||
];
|
];
|
||||||
|
networking.hostName = "drivebystation-nixos-wsl";
|
||||||
|
|
||||||
# Enable Experimental Features
|
# Enable Experimental Features
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
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_TELEPHONE = "nl_NL.UTF-8";
|
||||||
LC_TIME = "nl_NL.UTF-8";
|
LC_TIME = "nl_NL.UTF-8";
|
||||||
};
|
};
|
||||||
|
# Enable the X11 windowing system
|
||||||
# Enable the X11 windowing system.
|
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
|
# Enable the GNOME Desktop Environment
|
||||||
# Enable the GNOME Desktop Environment.
|
|
||||||
services.xserver.displayManager.gdm.enable = true;
|
services.xserver.displayManager.gdm.enable = true;
|
||||||
services.xserver.desktopManager.gnome.enable = true;
|
services.xserver.desktopManager.gnome.enable = true;
|
||||||
|
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
services.xserver.xkb = {
|
services.xserver.xkb = {
|
||||||
layout = "us";
|
layout = "us";
|
||||||
variant = "intl";
|
variant = "intl";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Configure console keymap
|
# Configure console keymap
|
||||||
console.keyMap = "us-acentos";
|
console.keyMap = "us-acentos";
|
||||||
|
# Enable CUPS to print documents
|
||||||
# Enable CUPS to print documents.
|
|
||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
|
# Enable sound with pulse (pipewire)
|
||||||
# Enable sound with pipewire.
|
|
||||||
hardware.pulseaudio.enable = false;
|
hardware.pulseaudio.enable = false;
|
||||||
|
# Enable realtimekit (pulse requirement)
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
|
# Configure pipewire service
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
alsa.enable = true;
|
alsa.enable = true;
|
||||||
@@ -106,5 +102,4 @@
|
|||||||
# Before changing this value read the documentation for this option
|
# Before changing this value read the documentation for this option
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
system.stateVersion = "24.05"; # Did you read the comment?
|
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