Compare commits

..

147 Commits

Author SHA1 Message Date
fd8f18eeec undo accidental closing bracket removal 2026-01-27 07:26:10 +01:00
501e35ae45 remove non-functional controller fix 2026-01-27 07:25:42 +01:00
65fc0ace0e cachy kernel 2026-01-27 07:24:24 +01:00
dc8f70b344 bump flake inputs 2026-01-27 01:49:45 +01:00
5cc90d85f7 supposedly working 360 wireless controller fix 2026-01-27 01:49:31 +01:00
75491e90e7 enable performance tuning 2026-01-27 01:24:33 +01:00
819b81d8d2 fix mistake from copypasting boilerplate 2026-01-27 01:23:30 +01:00
fe4f291ef8 fix typo in dir name 2026-01-27 01:23:07 +01:00
da46fc7eca allow touching efi vars 2026-01-27 01:20:49 +01:00
58206b4c80 add performance tuning stuff 2026-01-27 01:20:40 +01:00
1e02adf3cf update vesktop appimage 2026-01-27 01:20:15 +01:00
15b75b0010 override framerate 2026-01-27 01:20:05 +01:00
6d34c7dbd0 update boot partition to new drive 2026-01-26 23:04:10 +01:00
8681424692 fix renamed warning 2026-01-23 20:05:07 +01:00
0956fccdc6 fix moved to top-level warning 2026-01-23 20:03:58 +01:00
1e187a7cee removed doubled services keyword 2026-01-23 20:03:04 +01:00
9dab3f0608 fix semicolon 2026-01-23 20:02:07 +01:00
26d59c7ca6 reference local linux-wallpaperengine package 2026-01-23 20:00:47 +01:00
9bc5922e49 remove per-home gamescope declaration 2026-01-23 20:00:29 +01:00
2e3ef5fd47 add global gamemode support 2026-01-23 19:59:54 +01:00
415f3bb057 add kitty as required for default hyprland config 2026-01-23 19:59:42 +01:00
bcc2ca5cf0 fixed another omitted semicolon 2026-01-23 19:58:54 +01:00
c202dbcdec add htop 2026-01-23 19:58:38 +01:00
f3b6a5cddd housekeeping 2026-01-23 19:58:32 +01:00
191733ec51 trying steam fixes 2026-01-23 19:57:11 +01:00
881a047c75 linux-wallpaperengine version upgrade 2026-01-23 19:56:52 +01:00
95c1b53699 fix omitted semicolon 2026-01-23 19:55:38 +01:00
aecc12a945 fix korganizer 2026-01-23 19:54:57 +01:00
b5afdc5817 use desktop-environment module 2026-01-23 19:54:23 +01:00
ab9acedf49 working desktop environment config 2026-01-23 19:53:43 +01:00
0e31504687 use cosmic greeter 2026-01-23 19:53:22 +01:00
85147137b0 intel x11 fixes 2026-01-22 09:30:51 +01:00
914b88ac82 deprecate old hardware config files 2026-01-22 09:30:27 +01:00
646f35e5d4 add more up to date wallpaperengine 2026-01-22 09:25:26 +01:00
3ed8d601a2 desktop-environment 2026-01-22 09:18:56 +01:00
02a99d31fa change to multiline for better diffs 2026-01-20 16:45:43 +01:00
2be93bd323 try to fix akonadi 2026-01-18 18:45:29 +01:00
6a43859425 use zen kernel 2026-01-18 18:45:23 +01:00
439cb8200f enable intel gpu tools 2026-01-15 18:15:45 +01:00
a812e53f06 remove nixpkgs.follows 2026-01-15 17:37:06 +01:00
8ccc4d65a9 patch problems 2026-01-15 17:36:12 +01:00
581a701151 add thunderbird and aagl 2026-01-15 16:24:35 +01:00
5fc4b9e0f3 solved I guess 2025-12-24 07:05:26 +01:00
80e89c531d resolve deprecation warning 2025-12-24 06:26:39 +01:00
f607c99ec4 remove typo 2025-12-24 06:23:40 +01:00
c92ea31991 update flake lock 2025-12-24 06:22:04 +01:00
e60e6bc8c0 changes 2025-12-24 06:21:23 +01:00
3ca9b0533b update flake 2025-12-23 06:32:02 +01:00
55b5521518 remove wallpaper engine kde plugin 2025-12-23 06:30:42 +01:00
39f1253900 anikki 2025-12-23 06:27:54 +01:00
4ff1acc318 fix gnome-keyring 2025-12-23 02:13:27 +01:00
261b704d31 enable docker 2025-12-23 02:02:28 +01:00
48b7079b32 autolaunch wallpaperengine 2025-12-23 02:02:17 +01:00
480a1598a6 update gnome keyring config 2025-12-23 02:02:07 +01:00
beb1c9eb75 update ethernet driver config 2025-12-23 02:00:32 +01:00
12fccea34f gnome-keyring configuration 2025-12-23 01:59:50 +01:00
c0c37d5fca unsuccessful attempt to make droidcam-obs work despite dependency issues 2025-12-17 18:17:46 +01:00
df73e98b85 updated flake lock 2025-12-16 00:16:10 +01:00
e95ab8bd3e gaming packages 2025-12-15 23:30:12 +01:00
c6104a7a9e keychron fixes 2025-12-15 23:30:05 +01:00
f9b40222a0 add plugdev for keychron launcher 2025-12-15 23:29:43 +01:00
866efb4718 fixed redundant line 2025-12-14 19:51:26 +01:00
6463a9e869 intel only 2025-12-14 19:47:03 +01:00
105c9737f6 clean up formatting 2025-12-14 19:46:50 +01:00
089bf927e0 gamescope session related tweaks 2025-12-14 19:44:19 +01:00
b4bc7490fc add ntfs3g 2025-12-14 19:43:22 +01:00
0dd087f4b8 steam related packages 2025-12-14 19:43:14 +01:00
f60718619f remove vesktop 2025-12-14 19:42:37 +01:00
c47509ef99 fix whitespace 2025-12-14 19:42:13 +01:00
c5767b775b enable vesktop appimage 2025-12-14 19:41:06 +01:00
ef4869d2cc add localsend package 2025-12-14 19:40:35 +01:00
0207f790ef add libreoffice package 2025-12-14 19:40:19 +01:00
b4500a59c1 add hyfetch package 2025-12-14 19:40:07 +01:00
e6f20d1d69 remove broken vesktop package 2025-12-14 19:39:31 +01:00
51e5e00ab6 add keychron keyboard config 2025-12-14 19:38:08 +01:00
31e86618c3 improved/ fixed 2025-12-14 19:37:52 +01:00
e28a22ec11 moved 2025-12-14 19:36:06 +01:00
93c3ae48c5 add keychron keyboard config module 2025-12-14 19:31:40 +01:00
1abec387cd fixes 2025-12-14 17:25:47 +01:00
081ffed1e1 vesktop appimage instead of nixpkgs 2025-12-14 17:25:31 +01:00
583a1a1905 add nvidia only config 2025-12-08 18:43:36 +01:00
48e9ae18ef remove unused patch file 2025-11-30 04:22:45 +01:00
793b7e1a30 fixed wallpaper engine 2025-11-30 04:22:20 +01:00
051b48d3ba changes 2025-11-30 03:48:54 +01:00
47ff5618e9 changes 2025-11-30 03:48:43 +01:00
ad7fb01791 remove remaining cosmic references 2025-11-30 00:32:38 +01:00
1e6daa09f6 updates 2025-11-30 00:32:11 +01:00
1557caba8b add intel nvidia hybrid graphics 2025-11-29 23:12:09 +01:00
47d716c2de disable edid on DP-4 2025-07-15 11:27:06 +02:00
d3ebbadc27 add qtwebengine 2025-07-15 10:13:39 +02:00
02aa649bb1 fix2 2025-07-15 10:06:49 +02:00
41321a5364 fix 2025-07-15 10:04:49 +02:00
95388efbc8 fix derivation 2025-07-15 10:00:30 +02:00
5e0036e591 added mpv dependencies 2025-07-15 09:44:33 +02:00
37309cd66e bla 2025-07-15 09:19:01 +02:00
1354042094 bla 2025-07-15 03:49:00 +02:00
bd75aecb14 bla 2025-07-15 03:45:46 +02:00
3a59ef19f6 changes 2025-07-15 03:19:01 +02:00
499260d83f Remove shit 2025-07-15 02:43:16 +02:00
b78ba76cd3 changes 2025-07-15 02:42:32 +02:00
093feba49d changes 2025-07-15 01:30:58 +02:00
afd823c23e disable powermanagement 2025-06-06 02:33:34 +02:00
b1e3fa601d bla 2025-06-06 02:21:15 +02:00
2f07912f1b bla 2025-06-06 02:16:42 +02:00
8701b72258 bla 2025-06-06 01:57:13 +02:00
8c305e3703 bla 2025-06-06 01:51:26 +02:00
86f61e9547 bla 2025-06-06 01:46:48 +02:00
ce387ab5db bla 2025-06-06 01:36:55 +02:00
7d07de663d add qemu 2025-05-31 23:15:36 +02:00
f19a3d129c use nvidia again 2025-05-31 23:15:12 +02:00
89fde794b8 rdp and lanzaboot 2025-04-20 23:20:04 +02:00
f451095a92 enable xrdp 2024-12-31 17:59:42 +01:00
3fad8fcf16 try to fix x11 on amd only 2024-12-31 17:58:35 +01:00
415ea15ea0 commit changes 2024-12-31 17:58:22 +01:00
48f1d774c9 add amd-igpu only config 2024-12-31 17:52:10 +01:00
b4e3457721 clean up redundant lines 2024-12-10 09:22:22 +01:00
21f5a618fa move steam to shared module 2024-12-10 09:21:33 +01:00
99b30e124a add triliumnext 2024-12-10 09:18:29 +01:00
b891969c7e add remmina 2024-12-10 09:18:17 +01:00
1cb2a609a8 add shell 2024-12-10 09:18:02 +01:00
4ff075bce4 add trilium-next 2024-12-10 09:17:50 +01:00
a496d0451b add another sops master key 2024-12-10 05:16:09 +01:00
c606f39f8f ignore vscode settings json 2024-12-10 03:58:50 +01:00
b779b84242 try to bring back gnome remote desktop (bugged upstream, no bueno, wait for fix) 2024-12-10 03:58:32 +01:00
8c0ecd90e8 clean up formatting 2024-12-10 03:57:00 +01:00
092691c665 list all inputs 2024-12-10 03:56:20 +01:00
718ca864e3 Add shared system config module 2024-12-10 03:53:46 +01:00
4454eb84fb whatever, still sorta works 2024-12-09 23:35:27 +01:00
f7823d9ad3 stable x11 config 2024-12-09 22:25:47 +01:00
72cac1e8c6 working x11 prime config 2024-12-07 21:05:09 +01:00
cf95749f84 Add synergy ports to firewall config 2024-12-07 21:04:07 +01:00
9ca20b8e24 bla 2024-12-07 18:03:00 +01:00
2f5a44b112 fix error 2024-12-07 18:02:49 +01:00
c29cae486e fix warning 2024-12-07 18:02:43 +01:00
769e1c166a try to fix modesetting 2024-12-07 18:02:36 +01:00
5a36dbc083 enable new config 2024-12-07 17:47:05 +01:00
b8d94f015f add new graphics config for testing 2024-12-07 17:46:30 +01:00
0aa885e2e4 synergy 2024-12-07 17:46:18 +01:00
94c2c9d7d5 removed redundant pkgs. prefix 2024-12-07 16:54:09 +01:00
e2086b228b buncha changes 2024-12-07 16:49:26 +01:00
3bff766ee2 add zen browser 2024-11-28 14:20:22 +01:00
f59cee41b9 Move config to working module 2024-11-27 17:12:17 +01:00
fc9c0c947c Working state with hibernation and good gaming performance on KDE 2024-11-27 16:04:28 +01:00
83db3ded50 hibernation works now 2024-11-26 14:37:36 +01:00
7645da455e swap 2024-11-21 19:26:36 +01:00
d16b77a13a fix spelling error 2024-11-21 11:05:07 +01:00
fce0f24737 add terraform to drivebystation-nix 2024-11-21 11:02:47 +01:00
34 changed files with 1744 additions and 336 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.vscode/settings.json

View File

@@ -3,9 +3,11 @@ keys:
- &andreas age19j24x89dfh4f7v58c8k64yupqas4f7qkkyper7yj9dd7vqwvvq0qkyvhxk # generated using cli - &andreas age19j24x89dfh4f7v58c8k64yupqas4f7qkkyper7yj9dd7vqwvvq0qkyvhxk # generated using cli
- hosts: - hosts:
- &th0nkpad-nixos age1ma8x6wugvc40mkst33mejq0m6r44jk6zwjjun3znyer5nztgn9vs0nwjx4 # derived from ssh host key - &th0nkpad-nixos age1ma8x6wugvc40mkst33mejq0m6r44jk6zwjjun3znyer5nztgn9vs0nwjx4 # derived from ssh host key
- &drivebystation-nix age1s5qwsuc3e4m3c4w5hl6tyja70w273gr60j9j9dcpc6mz69lemg3qpwud3h #derived from ssh host key
creation_rules: creation_rules:
- path_regex: secrets.yaml$ - path_regex: secrets.yaml$
key_groups: key_groups:
- age: - age:
- *andreas - *andreas
- *th0nkpad-nixos - *th0nkpad-nixos
- *drivebystation-nix

576
flake.lock generated
View File

@@ -1,17 +1,107 @@
{ {
"nodes": { "nodes": {
"flake-compat": { "aagl": {
"flake": false, "inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": { "locked": {
"lastModified": 1717312683, "lastModified": 1767520119,
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=", "narHash": "sha256-+OmNQLA9Fv5WBaxYHlPghS9XmnYWDaLt+AatCGhG+hc=",
"owner": "nix-community", "owner": "ezKEa",
"repo": "flake-compat", "repo": "aagl-gtk-on-nix",
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea", "rev": "5720d3282844b6b23b26dfac075a5f1f58ea8844",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "ezKEa",
"repo": "aagl-gtk-on-nix",
"type": "github"
}
},
"anikki": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1766470910,
"narHash": "sha256-iY0vJAAjY5ZveB6JIAQDHq7lFrkAVGnO0tC7YOYDFsg=",
"owner": "Hion-V",
"repo": "Anikki-flake",
"rev": "95d15448466142126c7fc13ac1dbdaf58a36a3a5",
"type": "github"
},
"original": {
"owner": "Hion-V",
"repo": "Anikki-flake",
"type": "github"
}
},
"cachyos-kernel": {
"flake": false,
"locked": {
"lastModified": 1769201405,
"narHash": "sha256-k/KQL7J9ZnLlF28E6ywGpfo5dxkuxCcEtJ/XEZDTw3M=",
"owner": "CachyOS",
"repo": "linux-cachyos",
"rev": "ff53672af48a106f52857d62c9275b165cc452ef",
"type": "github"
},
"original": {
"owner": "CachyOS",
"repo": "linux-cachyos",
"type": "github"
}
},
"cachyos-kernel-patches": {
"flake": false,
"locked": {
"lastModified": 1769199354,
"narHash": "sha256-y1DKMryOr1w4xcZnDkaZjvENIPmr3j/YB4Srtfd3I2Y=",
"owner": "CachyOS",
"repo": "kernel-patches",
"rev": "c8b990198baf3c34b64e4e5c5ffeb7c068eede1a",
"type": "github"
},
"original": {
"owner": "CachyOS",
"repo": "kernel-patches",
"type": "github"
}
},
"crane": {
"locked": {
"lastModified": 1754269165,
"narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=",
"owner": "ipetkov",
"repo": "crane",
"rev": "444e81206df3f7d92780680e45858e31d2f07a08",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1761588595,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"type": "github" "type": "github"
} }
@@ -19,11 +109,11 @@
"flake-compat_2": { "flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1747046372,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -35,11 +125,27 @@
"flake-compat_3": { "flake-compat_3": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1767039857,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -48,16 +154,71 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_5": {
"flake": false,
"locked": {
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1754091436,
"narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1768135262,
"narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1731533236,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -87,7 +248,7 @@
}, },
"flake-utils_2": { "flake-utils_2": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1694529238, "lastModified": 1694529238,
@@ -105,7 +266,9 @@
}, },
"game-of-life": { "game-of-life": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "nixpkgs": [
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1728511087, "lastModified": 1728511087,
@@ -121,6 +284,28 @@
"type": "github" "type": "github"
} }
}, },
"gitignore": {
"inputs": {
"nixpkgs": [
"lanzaboote",
"pre-commit-hooks-nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -128,11 +313,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1730837930, "lastModified": 1769450270,
"narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=", "narHash": "sha256-pdVm/zJazDUAasTyHFX/Pbrlk9Upjxi0yzgn7GjGe4g=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "2f607e07f3ac7e53541120536708e824acccfaa8", "rev": "a10c1e8f5ad2589414407f4851c221cb66270257",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -141,39 +326,110 @@
"type": "github" "type": "github"
} }
}, },
"nixos-cosmic": { "home-manager_2": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "nixpkgs": [
"nixpkgs": "nixpkgs_2", "zen-browser",
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs"
"rust-overlay": "rust-overlay" ]
}, },
"locked": { "locked": {
"lastModified": 1730776371, "lastModified": 1768434960,
"narHash": "sha256-qLH/qtoBoKZJ5I2Ry312jCVJTfXu6XcCdcXPPAyJhBM=", "narHash": "sha256-cJbFn17oyg6qAraLr+NVeNJrXsrzJdrudkzI4H2iTcg=",
"owner": "lilyinstarlight", "owner": "nix-community",
"repo": "nixos-cosmic", "repo": "home-manager",
"rev": "c62f5e8c7a9a1ebc4013b617e0e054011c747d49", "rev": "b4d88c9ac42ae1a745283f6547701da43b6e9f9b",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "lilyinstarlight", "owner": "nix-community",
"repo": "nixos-cosmic", "repo": "home-manager",
"type": "github"
}
},
"kwin-effects-forceblur": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"utils": "utils"
},
"locked": {
"lastModified": 1755098995,
"narHash": "sha256-6FN7XEf27DenQHDIKjrjOW3tGIaJlyqRlXarmt1v+M0=",
"owner": "taj-ny",
"repo": "kwin-effects-forceblur",
"rev": "51a1d49d7fd7df3ce40ccf6ba4c4410cf6f510e1",
"type": "github"
},
"original": {
"owner": "taj-ny",
"repo": "kwin-effects-forceblur",
"type": "github"
}
},
"lanzaboote": {
"inputs": {
"crane": "crane",
"flake-compat": "flake-compat_2",
"flake-parts": "flake-parts",
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1762205063,
"narHash": "sha256-If6vQ+KvtKs3ARBO9G3l+4wFSCYtRBrwX1z+I+B61wQ=",
"owner": "nix-community",
"repo": "lanzaboote",
"rev": "88b8a563ff5704f4e8d8e5118fb911fa2110ca05",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "v0.4.3",
"repo": "lanzaboote",
"type": "github"
}
},
"nix-cachyos-kernel": {
"inputs": {
"cachyos-kernel": "cachyos-kernel",
"cachyos-kernel-patches": "cachyos-kernel-patches",
"flake-compat": "flake-compat_3",
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1769363279,
"narHash": "sha256-XJCuB8GWkFLRFBR6GQoxRB9/lobB45ERp0JN0Lo2nvs=",
"owner": "xddxdd",
"repo": "nix-cachyos-kernel",
"rev": "4aa98db78c1d663c3dad59775e95ad93fe58a844",
"type": "github"
},
"original": {
"owner": "xddxdd",
"ref": "release",
"repo": "nix-cachyos-kernel",
"type": "github" "type": "github"
} }
}, },
"nixos-wsl": { "nixos-wsl": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_4",
"flake-utils": "flake-utils", "nixpkgs": [
"nixpkgs": "nixpkgs_3" "nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1726981058, "lastModified": 1769217863,
"narHash": "sha256-065MWSg1xhMdYun53S7mWKUEDviAEyxT/kl6JrjZwe4=", "narHash": "sha256-RY9kJDXD6+2Td/59LkZ0PFSereCXHdBX9wIkbYjRKCY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NixOS-WSL", "repo": "NixOS-WSL",
"rev": "f9f28d8ff5288f821f1e64ec03185a9bb0edb0d0", "rev": "38a5250e57f583662eac3b944830e4b9e169e965",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -185,91 +441,58 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1717179513, "lastModified": 1744536153,
"narHash": "sha256-vboIEwIQojofItm2xGCdZCzW96U85l9nDW3ifMuAIdM=", "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "63dacb46bf939521bdc93981b4cbb7ecb58427a0", "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "24.05", "ref": "nixpkgs-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-stable": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1730602179, "lastModified": 1765674936,
"narHash": "sha256-efgLzQAWSzJuCLiCaQUCDu4NudNlHdg2NzGLX5GYaEY=", "narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
"owner": "NixOS", "owner": "nix-community",
"repo": "nixpkgs", "repo": "nixpkgs.lib",
"rev": "3c2f1c4ca372622cb2f9de8016c9a0b1cbd0f37c", "rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "nix-community",
"ref": "nixos-24.05", "repo": "nixpkgs.lib",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1730602179,
"narHash": "sha256-efgLzQAWSzJuCLiCaQUCDu4NudNlHdg2NzGLX5GYaEY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3c2f1c4ca372622cb2f9de8016c9a0b1cbd0f37c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-24.05",
"repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1730531603, "lastModified": 1769300497,
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", "narHash": "sha256-W7NbQnQGqUPRnpHOlLXk3g52TSQDkFVzhax9YNv9K+U=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", "rev": "60f9d776547020ff3be5a2cfbd0a457fddd88ecc",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixos-unstable-small",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1726320982, "lastModified": 1769170682,
"narHash": "sha256-RuVXUwcYwaUeks6h3OLrEmg14z9aFXdWppTWPMTwdQw=", "narHash": "sha256-oMmN1lVQU0F0W2k6OI3bgdzp2YOHWYUAw79qzDSjenU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8f7492cce28977fbf8bd12c72af08b1f6c7c3e49", "rev": "c5296fdd05cfa2c187990dd909864da9658df755",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1728241625,
"narHash": "sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c31898adf5a8ed202ce5bea9f347b1c6871f32d1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -279,30 +502,80 @@
"type": "github" "type": "github"
} }
}, },
"root": { "pre-commit-hooks-nix": {
"inputs": {
"game-of-life": "game-of-life",
"home-manager": "home-manager",
"nixos-cosmic": "nixos-cosmic",
"nixos-wsl": "nixos-wsl",
"nixpkgs": "nixpkgs_4",
"snowfall-lib": "snowfall-lib",
"sops-nix": "sops-nix"
}
},
"rust-overlay": {
"inputs": { "inputs": {
"flake-compat": [
"lanzaboote",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [ "nixpkgs": [
"nixos-cosmic", "lanzaboote",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1730687492, "lastModified": 1750779888,
"narHash": "sha256-xQVadjquBA/tFxDt5A55LJ1D1AvkVWsnrKC2o+pr8F4=", "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"aagl": "aagl",
"anikki": "anikki",
"game-of-life": "game-of-life",
"home-manager": "home-manager",
"kwin-effects-forceblur": "kwin-effects-forceblur",
"lanzaboote": "lanzaboote",
"nix-cachyos-kernel": "nix-cachyos-kernel",
"nixos-wsl": "nixos-wsl",
"nixpkgs": "nixpkgs_3",
"snowfall-lib": "snowfall-lib",
"sops-nix": "sops-nix",
"trilium-next-pr": "trilium-next-pr",
"zen-browser": "zen-browser"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1764470739,
"narHash": "sha256-sa9f81B1dWO16QtgDTWHX8DQbiHKzHndpaunY5EQtwE=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "41814763a2c597755b0755dbe3e721367a5e420f", "rev": "3bfa664055e1a09c6aedab5533c5fc8d6ca5741a",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": {
"nixpkgs": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1761791894,
"narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "59c45eb69d9222a4362673141e00ff77842cd219",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -313,18 +586,18 @@
}, },
"snowfall-lib": { "snowfall-lib": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_5",
"flake-utils-plus": "flake-utils-plus", "flake-utils-plus": "flake-utils-plus",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1719005984, "lastModified": 1765361626,
"narHash": "sha256-mpFl3Jv4fKnn+5znYXG6SsBjfXHJdRG5FEqNSPx0GLA=", "narHash": "sha256-kX0Dp/kYSRbQ+yd9e3lmmUWdNbipufvKfL2IzbrSpnY=",
"owner": "snowfallorg", "owner": "snowfallorg",
"repo": "lib", "repo": "lib",
"rev": "c6238c83de101729c5de3a29586ba166a9a65622", "rev": "c566ad8b7352c30ec3763435de7c8f1c46ebb357",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -337,15 +610,14 @@
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ]
"nixpkgs-stable": "nixpkgs-stable_2"
}, },
"locked": { "locked": {
"lastModified": 1730883027, "lastModified": 1769469829,
"narHash": "sha256-pvXMOJIqRW0trsW+FzRMl6d5PbsM4rWfD5lcKCOrrwI=", "narHash": "sha256-wFcr32ZqspCxk4+FvIxIL0AZktRs6DuF8oOsLt59YBU=",
"owner": "mic92", "owner": "mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "c5ae1e214ff935f2d3593187a131becb289ea639", "rev": "c5eebd4eb2e3372fe12a8d70a248a6ee9dd02eff",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -383,6 +655,76 @@
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"trilium-next-pr": {
"locked": {
"lastModified": 1736678965,
"narHash": "sha256-2A687i3Rq0/wqJVvpgaiRPWcfnBBuBhPjKaT8cnd7o0=",
"owner": "FliegendeWurst",
"repo": "nixpkgs",
"rev": "4fcdf706929246476e52e960760b6643cb8395c4",
"type": "github"
},
"original": {
"owner": "FliegendeWurst",
"ref": "trilium-next",
"repo": "nixpkgs",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"zen-browser": {
"inputs": {
"home-manager": "home-manager_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1769431876,
"narHash": "sha256-FnOW+ulwocxfYGVKV2H/7MlSbn52+hfX9oaRR6FClZ4=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "d5ef79d18dca7617aefe511db8267d47f7cf953f",
"type": "github"
},
"original": {
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@@ -3,24 +3,54 @@
inputs = { inputs = {
# nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; # nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; # Use nixos-unstable for latest kernel and packages
nixos-wsl.url = "github:nix-community/NixOS-WSL/main"; nixos-wsl = {
url = "github:nix-community/NixOS-WSL/main";
inputs.nixpkgs.follows = "nixpkgs";
};
# Snowfallorg's Flake utility # Snowfallorg's Flake utility
snowfall-lib = { snowfall-lib = {
url = "github:snowfallorg/lib"; url = "github:snowfallorg/lib";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
game-of-life.url = "github:local-interloper/game-of-life"; game-of-life = {
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic"; url = "github:local-interloper/game-of-life";
inputs.nixpkgs.follows = "nixpkgs";
};
# Add sops-nix for secrets management # Add sops-nix for secrets management
sops-nix = { sops-nix = {
url = "github:mic92/sops-nix"; url = "github:mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
trilium-next-pr = {
url = "github:FliegendeWurst/nixpkgs/trilium-next";
# Don't follow nixpkgs as this repo has its own pinned nixpkgs
};
anikki = {
url = "github:Hion-V/Anikki-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.3";
inputs.nixpkgs.follows = "nixpkgs";
};
kwin-effects-forceblur = {
url = "github:taj-ny/kwin-effects-forceblur";
inputs.nixpkgs.follows = "nixpkgs";
};
aagl = {
url = "github:ezKEa/aagl-gtk-on-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
}; };
outputs = inputs: outputs = inputs:
@@ -59,8 +89,21 @@
lib.mkFlake { lib.mkFlake {
inherit inputs; inherit inputs;
src = ./.; src = ./.;
overlays = with inputs; [
# Use the exact kernel versions as defined in this repo.
# Guarantees you have binary cache.
nix-cachyos-kernel.overlays.pinned
# Alternatively, build the kernels on top of nixpkgs version in your flake.
# This might cause version mismatch/build failures!
# nix-cachyos-kernel.overlays.default
# Only use one of the two overlays!
];
nixos = with inputs; [ nixos = with inputs; [
# disko.nixosModules.disko # disko.nixosModules.disko
# impermanence.nixosModules.impermanence # impermanence.nixosModules.impermanence
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
@@ -77,6 +120,25 @@
systems.modules.nixos = with inputs; [ systems.modules.nixos = with inputs; [
# my-input.nixosModules.my-module # my-input.nixosModules.my-module
lanzaboote.nixosModules.lanzaboote ({ pkgs, lib, ... }: {
environment.systemPackages = [
# For debugging and troubleshooting Secure Boot.
pkgs.sbctl
];
boot.loader.systemd-boot.configurationLimit = 4;
# Lanzaboote currently replaces the systemd-boot module.
# This setting is usually set to true in configuration.nix
# generated at installation time. So we force it to false
# for now.
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.lanzaboote = {
enable = true;
pkiBundle = "/var/lib/sbctl";
};
})
]; ];
# The attribute set specified here will be passed directly to NixPkgs when # The attribute set specified here will be passed directly to NixPkgs when
@@ -84,7 +146,9 @@
channels-config = { channels-config = {
# Allow unfree packages. # Allow unfree packages.
allowUnfree = true; allowUnfree = true;
permittedInsecurePackages = [
"mbedtls-2.28.10" # needed for haxe 4.3.6
];
# # Allow certain insecure packages # # Allow certain insecure packages
# permittedInsecurePackages = [ # permittedInsecurePackages = [
# "firefox-100.0.0" # "firefox-100.0.0"

View File

@@ -1,5 +1,6 @@
{ config { config
, lib , lib
, inputs
, pkgs , pkgs
, ... , ...
}: }:
@@ -13,6 +14,7 @@ in
my-namespace.home = { my-namespace.home = {
stream-tools = enabled; stream-tools = enabled;
gnome-customizations = enabled; gnome-customizations = enabled;
vesktop-appimage = enabled;
# networking = enabled; # networking = enabled;
# personal-apps = enabled; # personal-apps = enabled;
# suites.laptop = enabled; # suites.laptop = enabled;
@@ -20,13 +22,26 @@ in
home = { home = {
packages = [ packages = [
pkgs.nil pkgs.nil
pkgs.steam
pkgs.gamemode
pkgs.beeper pkgs.beeper
pkgs.my-namespace.udev-steelseries pkgs.my-namespace.udev-steelseries
pkgs.qbittorrent pkgs.qbittorrent
pkgs.vesktop pkgs.hyfetch
pkgs.libreoffice
pkgs.localsend
# pkgs.vesktop
pkgs.obsidian pkgs.obsidian
inputs.zen-browser.packages.x86_64-linux.default
inputs.kwin-effects-forceblur.packages.${pkgs.stdenv.hostPlatform.system}.default
]; ];
}; };
# Auto-start linux-wallpaperengine for dual monitors via XDG autostart
xdg.configFile."autostart/linux-wallpaperengine.desktop".text = ''
[Desktop Entry]
Type=Application
Name=Wallpaper Engine
Exec=${pkgs.my-namespace.linux-wallpaperengine}/bin/linux-wallpaperengine --screen-root DP-1 --bg 2935872330 -f 12 --screen-root DP-2 --bg 2935872330 -f 12
X-KDE-autostart-after=panel
X-KDE-StartupNotify=false
'';
} }

View File

@@ -20,12 +20,10 @@ in
home = { home = {
packages = [ packages = [
pkgs.nil pkgs.nil
pkgs.steam
pkgs.gamemode
pkgs.beeper pkgs.beeper
pkgs.my-namespace.udev-steelseries pkgs.my-namespace.udev-steelseries
pkgs.qbittorrent pkgs.qbittorrent
pkgs.vesktop #pkgs.vesktop
]; ];
}; };
} }

View File

View File

@@ -1,28 +1,49 @@
{ {
config, # Snowfall Lib provides a customized `lib` instance with access to your flake's library
lib, # as well as the libraries available from your flake's inputs.
pkgs, lib
... , # An instance of `pkgs` with your overlays and packages applied is also available.
}: let 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) mkIf;
inherit (lib.my-namespace) enabled; inherit (lib.my-namespace) enabled;
imp = config.my-namespace.home.impermanence.enable; imp = config.my-namespace.home.impermanence.enable;
in { in
{
config = { config = {
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
inetutils inetutils
neofetch neofetch
tmux tmux
nerdfonts # nerdfonts
p7zip p7zip
rclone rclone
ripgrep ripgrep
unzip unzip
zip zip
]; ];
sessionPath = ["$HOME/bin" "$HOME/.local/bin"]; sessionPath = [ "$HOME/bin" "$HOME/.local/bin" ];
shellAliases = { shellAliases = {
# "df" = "duf -only local"; # "df" = "duf -only local";
# "du" = "dust -xd1 --skip-total"; # "du" = "dust -xd1 --skip-total";
@@ -52,8 +73,6 @@ in {
}; };
home-manager = enabled; home-manager = enabled;
}; };
services = { services = { };
};
}; };
} }

View File

@@ -16,11 +16,19 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.obs-studio = { programs.obs-studio = {
enable = true; enable = true;
plugins = [ pkgs.obs-studio-plugins.droidcam-obs ]; plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
obs-vaapi #optional AMD hardware acceleration
obs-gstreamer
obs-vkcapture
pkgs.my-namespace.droidcam-obs # Custom override with FFmpeg 6
];
}; };
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
# obs-studio config.programs.obs-studio.finalPackage
droidcam droidcam
]; ];
}; };

View File

@@ -0,0 +1,49 @@
{ config, pkgs, lib, ... }:
let
inherit (lib) mkEnableOption mkIf;
cfg = config.my-namespace.home.vesktop-appimage;
vesktopVersion = "1.6.4";
vesktopAppImage = pkgs.runCommand "vesktop-appimage" { } ''
cp ${pkgs.fetchurl {
url = "https://github.com/Vencord/Vesktop/releases/download/v${vesktopVersion}/Vesktop-${vesktopVersion}.AppImage";
sha256 = "sha256-o7A8DBQyutONeLp5rstq9hQko2xxbvYZvGGM8/YOQ8s=";
}} $out
chmod +x $out
'';
vesktopWrapped = pkgs.writeShellScriptBin "vesktop" ''
exec ${pkgs.appimage-run}/bin/appimage-run ${vesktopAppImage} "$@"
'';
vesktopIcon = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/Vencord/Vesktop/main/build/icon.svg";
sha256 = "sha256-fQ+dvbPIb4AFd9f7JqIt7+twJdEMQF9jTTwrk5p1vn8=";
};
in
{
options.my-namespace.home.vesktop-appimage = {
enable = mkEnableOption "Install Vesktop (AppImage) with Vencord support";
};
config = mkIf cfg.enable {
xdg.dataFile."icons/hicolor/scalable/apps/vesktop.svg".source = vesktopIcon;
home.packages = [
pkgs.appimage-run
vesktopWrapped
];
xdg.desktopEntries.vesktop = {
name = "Vesktop";
comment = "Discord client with Vencord (AppImage)";
exec = "${vesktopWrapped}/bin/vesktop";
icon = "vesktop";
terminal = false;
type = "Application";
categories = [ "Network" "Chat" ];
};
};
}

View File

@@ -0,0 +1,98 @@
{ config, lib, pkgs, namespace, ... }:
let
cfg = config.${namespace}.desktop-environment;
in {
options.${namespace}.desktop-environment = {
xfce = {
enable = lib.mkEnableOption "XFCE desktop environment";
};
gnome = {
enable = lib.mkEnableOption "GNOME desktop environment";
};
kde = {
enable = lib.mkEnableOption "KDE Plasma desktop environment";
};
cosmic = {
enable = lib.mkEnableOption "Cosmic desktop environment";
};
hyprland = {
enable = lib.mkEnableOption "hyprland Wayland shell";
};
};
config = lib.mkMerge [
(lib.mkIf cfg.xfce.enable {
services.xserver = {
enable = true;
desktopManager = {
xfce.enable = true;
};
};
environment.systemPackages = with pkgs; [
xfce4-pulseaudio-plugin
xfce4-clipman-plugin
xfce4-screenshooter
xfce4-whiskermenu-plugin
thunar-archive-plugin
thunar-volman
gvfs
gnome-keyring
libgnome-keyring
];
})
(lib.mkIf cfg.gnome.enable {
services.xserver = {
enable = true;
};
services.desktopManager.gnome.enable = true;
environment.systemPackages = with pkgs; [
gnome-tweaks
gnome-software
gnomeExtensions.pop-shell
gnome-remote-desktop
];
})
(lib.mkIf cfg.kde.enable {
services.xserver.enable = true;
services.desktopManager.plasma6.enable = true;
environment.systemPackages = with pkgs; [
kdePackages.qtwebsockets
kdePackages.qtwebchannel
kdePackages.korganizer
kdePackages.akonadi
kdePackages.akonadi-calendar
kdePackages.akonadi-contacts
kdePackages.kaddressbook
kdePackages.kmail
kdePackages.kdepim-runtime
kdePackages.kontact
kdePackages.kidentitymanagement
kdePackages.libkdepim
kdePackages.kwin
kdePackages.plasma-workspace
gnome-keyring
libgnome-keyring
];
})
(lib.mkIf cfg.cosmic.enable {
services.desktopManager.cosmic.enable = true;
services.desktopManager.cosmic.xwayland.enable = true;
environment.systemPackages = with pkgs; [
gnome-keyring
libgnome-keyring
];
})
(lib.mkIf cfg.hyprland.enable {
programs.hyprland.enable = true; # enable Hyprland
environment.systemPackages = with pkgs; [
pkgs.kitty # required for the default Hyprland config
];
})
];
}

View File

@@ -0,0 +1,30 @@
{ config, lib, pkgs, namespace, options, ... }:
let
cfg = config.${namespace}.gnome-keyring;
in {
options.${namespace}.gnome-keyring = {
enable = lib.mkEnableOption "Enable GNOME Keyring integration";
};
config = lib.mkIf cfg.enable {
services.gnome.gnome-keyring.enable = true;
# PAM configuration for automatic keyring unlock
security.pam.services.sddm.enableGnomeKeyring = true;
security.pam.services.login.enableGnomeKeyring = true;
security.pam.services.gdm.enableGnomeKeyring = true;
# Make KDE apps use GNOME Keyring as the Secret Service backend
environment.variables = {
# Set GNOME Keyring as the SSH agent
SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/keyring/ssh";
};
environment.systemPackages = with pkgs; [
seahorse # GUI for managing the keyring
gcr # Keyring integration
libsecret # Secret Service API library for KDE apps
];
};
}

View File

@@ -0,0 +1,120 @@
{ config, lib, pkgs, namespace, ... }:
let
cfg = config.${namespace}.keychron-keyboard;
in {
options.${namespace}.keychron-keyboard = {
enable = lib.mkEnableOption "Enable Keychron keyboard configuration";
# Add additional options here, e.g. vendor/product IDs, keymaps, etc.
};
config = lib.mkIf cfg.enable {
# Create the plugdev group and ensure users can access HID devices
users.groups.plugdev = {};
hardware.keyboard.qmk.keychronSupport = true;
services.udev.packages = with pkgs; [ qmk qmk-udev-rules ];
# Example udev rule or keychron-specific settings
services.udev.extraRules = ''
# Atmel DFU
### ATmega16U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2fef", TAG+="uaccess"
### ATmega32U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess"
### ATmega16U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", TAG+="uaccess"
### ATmega32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess"
### AT90USB64
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", TAG+="uaccess"
### AT90USB162
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", TAG+="uaccess"
### AT90USB128
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess"
# Input Club
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess"
# STM32duino
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess"
# STM32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
# BootloadHID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess"
# USBAspLoader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", TAG+="uaccess"
# USBtinyISP
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1782", ATTRS{idProduct}=="0c9f", TAG+="uaccess"
# ModemManager should ignore the following devices
# Atmel SAM-BA (Massdrop)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
# Caterina (Pro Micro)
## pid.codes shared PID
### Keyboardio Atreus 2 Bootloader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2302", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Spark Fun Electronics
### Pro Micro 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Pro Micro 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### LilyPad 3V3/8MHz (and some Pro Micro clones)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Pololu Electronics
### A-Star 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="0101", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Arduino SA
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Adafruit Industries LLC
### Feather 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000c", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000d", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000e", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## dog hunter AG
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
# hid_listen
KERNEL=="hidraw*", MODE="0666", TAG+="uaccess", TAG+="udev-acl"
# hidraw devices for WebHID (Keychron Launcher, VIA)
SUBSYSTEM=="hidraw", MODE="0666", TAG+="uaccess", TAG+="udev-acl"
# hid bootloaders
## QMK HID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2067", TAG+="uaccess"
## PJRC's HalfKay
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0478", TAG+="uaccess"
# APM32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="314b", ATTRS{idProduct}=="0106", TAG+="uaccess"
# GD32V DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", TAG+="uaccess"
# WB32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess"
# AT32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", TAG+="uaccess"
'';
#
# home.file.".config/some-config".text = ''
# # keyboard-related configuration
# '';
};
}

View File

@@ -0,0 +1,53 @@
############################################
#
# Shared System Configuration module that's always enabled by default courtesy of snowfall lib
#
############################################
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib
, # An instance of `pkgs` with your overlays and packages applied is also available.
pkgs
, # You also have access to your flake's inputs.
inputs
, # Additional metadata is provided by Snowfall Lib.
namespace
, # The namespace used for your flake, defaulting to "internal" if not set.
system
, # The system architecture for this host (eg. `x86_64-linux`).
target
, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format
, # A normalized name for the system target (eg. `iso`).
virtual
, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems
, # An attribute map of your defined hosts.
# All other arguments come from the module system.
config
, ...
}:
let
inherit (lib) mkIf;
inherit (lib.my-namespace) enabled;
in
{
config = {
boot = { };
console = { };
environment = {
systemPackages =
(with pkgs; [
age
wget
sops
bitwarden-desktop #replaced bitwarden
bitwarden-cli
cowsay
remmina
]);
};
};
}

View File

@@ -0,0 +1,23 @@
{ config, lib, pkgs, namespace, ... }:
let
cfg = config.${namespace}.performance-tuning;
in {
options.${namespace}.performance-tuning.enable = lib.mkEnableOption "XFCE desktop environment";
config = lib.mkIf cfg.enable {
boot.kernelParams = [
"nvme_core.default_ps_max_latency_us=0"
];
boot.kernel.sysctl = {
"vm.swappiness" = 10;
"vm.dirty_ratio" = 10;
"vm.dirty_background_ratio" = 5;
};
services.pipewire.extraConfig.pipewire."context.properties" = {
"default.clock.quantum" = 256;
"default.clock.min-quantum" = 128;
};
};
}

View File

@@ -28,8 +28,27 @@
# enable = true; # enable = true;
# capSysNice = true; # capSysNice = true;
# }; # };
environment.systemPackages = with pkgs; [
protonup-ng # Tool to install and manage Proton-GE
lutris
vkd3d
dxvk
corefonts
protontricks
mangohud
vkbasalt
gamescope
];
programs.steam = { programs.steam = {
enable = true; enable = true;
package = pkgs.steam.override {
extraPkgs = pkgs: with pkgs; [
gamemode
];
extraEnv = {
SDL_VIDEODRIVER = "wayland";
};
};
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server 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 localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers

View File

@@ -0,0 +1,71 @@
{ lib, pkgs, inputs, config, namespace, ... }:
let
# Import the plugin as a package derivation from your local repo
# Pass the 'inputs' parameter explicitly to make wallpaper-engine-plugin-src available
wallpaperEnginePkg = pkgs.callPackage ../../../packages/wallpaper-engine-kde-plugin/default.nix { inherit inputs; };
in {
options.${namespace}.wallpaper-engine-kde-plugin.enable =
lib.mkEnableOption "Enable Wallpaper Engine KDE plugin";
config = lib.mkIf config.${namespace}.wallpaper-engine-kde-plugin.enable {
# Add the imported package and helper script to systemPackages
environment.systemPackages = [
wallpaperEnginePkg
(pkgs.writeShellScriptBin "wallpaper-engine-kde-setup" ''
#!/usr/bin/env bash
set -e
STEAM_DIR="$HOME/.local/share/Steam"
WORKSHOP_PATH="$STEAM_DIR/steamapps/workshop/content/431960"
echo "Wallpaper Engine KDE Plugin Setup Helper"
echo "========================================"
# Check if Steam directory exists
if [ -d "$STEAM_DIR" ]; then
echo " Steam directory found at: $STEAM_DIR"
if [ -d "$WORKSHOP_PATH" ]; then
echo " Workshop content directory found at: $WORKSHOP_PATH"
echo " You can use this path in the wallpaper settings."
else
echo " Workshop content directory not found at the expected location."
echo " Please locate your Steam workshop content for Wallpaper Engine (app ID 431960)"
fi
else
echo " Steam directory not found at: $STEAM_DIR"
echo " Please install Steam and Wallpaper Engine first."
fi
# Check symlinks
if [ -L "$HOME/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde" ]; then
echo " Plugin symlink is correctly set up"
else
echo " Plugin symlink not found, attempting to create it..."
mkdir -p "$HOME/.local/share/plasma/wallpapers"
ln -sf /run/current-system/sw/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde \
"$HOME/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde"
echo " Done! Symlink created."
fi
echo ""
echo "To use Wallpaper Engine wallpapers in KDE:"
echo "1. Right-click on desktop Configure Desktop and Wallpaper"
echo "2. Select 'Wallpaper Engine' from the wallpaper type list"
echo "3. Set the path to your workshop content directory"
'')
];
systemd.user.services.wallpaperEngineSymlink = {
description = "Symlink Wallpaper Engine plugin for Plasma";
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
Type = "oneshot";
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p %h/.local/share/plasma/wallpapers";
ExecStart = "${pkgs.coreutils}/bin/ln -sfn /run/current-system/sw/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde %h/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde";
RemainAfterExit = true;
};
};
};
}

View File

@@ -0,0 +1,11 @@
{ ... }:
final: prev: {
mbedtls_2 = prev.mbedtls_2.overrideAttrs (oldAttrs: {
doCheck = false; # Skip failing PSA crypto tests
});
haxe = prev.haxe.overrideAttrs (oldAttrs: {
buildInputs = (oldAttrs.buildInputs or []) ++ [ final.mbedtls_2 ];
});
}

View File

@@ -0,0 +1,17 @@
{ ... }:
final: prev: {
synergy = prev.synergy.overrideAttrs (oldAttrs: {
postPatch = (oldAttrs.postPatch or "") + ''
# Fix deprecated Qt endl usage in QTextStream contexts only
# Don't touch cerr/cout which use std::endl
find . -name "*.cpp" -type f -exec sed -i \
's/\(outStream.*<<.*\)endl/\1Qt::endl/g; s/\(QTextStream.*<<.*\)endl/\1Qt::endl/g' {} +
find . -name "*.h" -type f -exec sed -i \
's/\(outStream.*<<.*\)endl/\1Qt::endl/g; s/\(QTextStream.*<<.*\)endl/\1Qt::endl/g' {} +
# Fix missing SIZE_MAX include
sed -i '/#include <cstring>/a#include <cstdint>' src/lib/server/InputFilter.cpp
'';
});
}

View File

@@ -0,0 +1,46 @@
{
lib,
pkgs,
stdenv,
fetchurl,
autoPatchelfHook,
namespace,
...
}:
stdenv.mkDerivation rec {
pname = "droidcam-obs";
version = "2.4.1";
src = fetchurl {
url = "https://github.com/dev47apps/droidcam-obs-plugin/releases/download/${version}/droidcam_obs_${version}_linux_x86_64.zip";
sha256 = "sha256-18IjC3+WR5XLo464RuwAtWRNSpQcsnarXu56CrxCMhM=";
};
nativeBuildInputs = [ pkgs.unzip autoPatchelfHook ];
buildInputs = with pkgs; [
stdenv.cc.cc.lib
obs-studio
];
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/lib/obs-plugins
mkdir -p $out/share/obs/obs-plugins/droidcam-obs
cp bin/64bit/*.so $out/lib/obs-plugins/
cp -r data/* $out/share/obs/obs-plugins/droidcam-obs/
runHook postInstall
'';
meta = with lib; {
description = "DroidCam OBS Plugin - Use your phone as a camera in OBS (FFmpeg 7 compatible)";
homepage = "https://www.dev47apps.com/obs/";
license = licenses.unfree;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,135 @@
{
lib,
stdenv,
fetchFromGitHub,
autoPatchelfHook,
cmake,
file,
pkg-config,
python3,
SDL2,
SDL2_mixer,
cef-binary,
egl-wayland,
ffmpeg,
fftw,
glew,
glfw,
glm,
gmp,
kissfftFloat,
libxau,
libxdmcp,
libxpm,
libxrandr,
libxxf86vm,
libdecor,
libffi,
libglut,
libpng,
libpulseaudio,
lz4,
mpv,
wayland,
wayland-protocols,
wayland-scanner,
zlib,
nix-update-script,
inputs,
namespace, ...
}:
let
cef = cef-binary.override {
version = "135.0.17"; # follow upstream. https://github.com/Almamu/linux-wallpaperengine/blob/b39f12757908eda9f4c1039613b914606568bb84/CMakeLists.txt#L47
gitRevision = "cbc1c5b";
chromiumVersion = "135.0.7049.52";
srcHashes = {
aarch64-linux = "sha256-LK5JvtcmuwCavK7LnWmMF2UDpM5iIZOmsuZS/t9koDs=";
x86_64-linux = "sha256-JKwZgOYr57GuosM31r1Lx3DczYs35HxtuUs5fxPsTcY=";
};
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "linux-wallpaperengine";
version = "0-unstable-2025-12-19";
src = fetchFromGitHub {
owner = "Almamu";
repo = "linux-wallpaperengine";
rev = "f79c29f067b2613895419e351033582464577154";
fetchSubmodules = true;
hash = "sha256-AISdouVqMXTYErQoT7oM5H+vlrw03NtpI9FqDwZ0J9A=";
};
nativeBuildInputs = [
autoPatchelfHook
cmake
file
pkg-config
python3
];
buildInputs = [
SDL2
SDL2_mixer
egl-wayland
ffmpeg
fftw
glew
glfw
glm
gmp
kissfftFloat
libxau
libxdmcp
libxpm
libxrandr
libxxf86vm
libdecor
libffi
libglut
libpng
libpulseaudio
lz4
mpv
wayland
wayland-protocols
wayland-scanner
zlib
];
cmakeFlags = [
"-DCEF_ROOT=${cef}"
"-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/share/linux-wallpaperengine"
];
postInstall = ''
rm -rf $out/bin $out/lib $out/include
chmod 755 $out/share/linux-wallpaperengine/linux-wallpaperengine
mkdir $out/bin
ln -s $out/share/linux-wallpaperengine/linux-wallpaperengine $out/bin/linux-wallpaperengine
'';
preFixup = ''
find $out/share/linux-wallpaperengine -type f -exec file {} \; | grep 'ELF' | cut -d: -f1 | while read -r elf_file; do
patchelf --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE" "$elf_file"
done
'';
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
meta = {
description = "Wallpaper Engine backgrounds for Linux";
homepage = "https://github.com/Almamu/linux-wallpaperengine";
license = lib.licenses.gpl3Plus;
mainProgram = "linux-wallpaperengine";
maintainers = [ ];
platforms = [
"x86_64-linux"
"aarch64-linux"
];
hydraPlatforms = [ "x86_64-linux" ]; # Hydra "aarch64-linux" fails with "Output limit exceeded"
};
})

View File

@@ -20,23 +20,32 @@ sops:
- recipient: age19j24x89dfh4f7v58c8k64yupqas4f7qkkyper7yj9dd7vqwvvq0qkyvhxk - recipient: age19j24x89dfh4f7v58c8k64yupqas4f7qkkyper7yj9dd7vqwvvq0qkyvhxk
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBdGZlV3R4eW5FYS9HZGYr YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4U204eXIyaDJFMXIweXp1
N3VSR0tIbzUrL0RsUEw2NkZtUWcxVG55bEIwCjQ5U0Ztd1luUEQ2SEg4RHA2RWRK NEhoYU5qa3B5Q1VpODNsSEpuT0txRWpuVDM0CmptVHNFQkpWTkJ2M3B4dWpWN0s4
K3dhN2liMDYyZElhbkZEUC9namhrc2MKLS0tIEhYTEYwQWduNkdKbGJQcTBRUWVG ZjRuc3BhckVLSzFuOGJ3WTB0YnRRRDgKLS0tIHlaSUxITUlGU3VaRWZFbENUTVY2
aDMwR1I5NG13dUhwRXg1TXI4dG9nWXMKti+hv0+7/Rz0W22bToYs1/DFzoMllHpB SWVwUGVxcGJscG5PalphZFVIS1ZjY2MKi4VvrNW1AH+fJaI/rzOltPylSiY1z3nS
7uuVpUFDuC2D40ize0UX4rJ8Yo63lhJrRpsxIhzkP/vq+wMAFrKKLg== ebrYdpyM5KKQ46uezvU4J3Qau/Inv8CkZ72vHlQ6EK2kmmZZLszwJg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1ma8x6wugvc40mkst33mejq0m6r44jk6zwjjun3znyer5nztgn9vs0nwjx4 - recipient: age1ma8x6wugvc40mkst33mejq0m6r44jk6zwjjun3znyer5nztgn9vs0nwjx4
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnK0dSTTVJWmt3aS91UmFm YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyVHVwMEZjVk8xMTNIekF1
Ui9zT3VpMlBybWJXOVdKdU5mTkprdU5WRm00CktHd2g4M1VldHhTQyszRTVTOUtt ZFlZbFhvOTJSbVN4ZmorSmFCbkxBUUxOOERJCjBjMkdxQ0V4OXEwdGF2Sno4VTh2
Mld4a3lYSHF2SytIc0RjQ1RoODQvaE0KLS0tIGN3SlpMeTEvNktNSm5oT0dXRVFr MURQMUhQV083M3lpREFRM2Qza3JLN0kKLS0tIEFoeUVsL3poajljMDEwTCtWcXRD
UmZrTXhyM2hYWW1kY05xa01PM1MzUDAK67AkP1XE445RXbVxcksRXL7MYHFjLPLV Y3NHNmVDZFZuNjlUUDdMa3N3ZVNTWkUKeO4sT0ZyTAyrMKj27fbFhQZ+bDMru6Bk
ITL404AabakBeOX9yixwymzkD1BbUYEdW6N28ntqdH5cZZfVteYdMA== j4Im41l9ClpIVQt8iz61mwKrm+QmBA9r1aL34u3lGQyKBOk4vq/m9A==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2024-11-07T10:47:23Z" - recipient: age1s5qwsuc3e4m3c4w5hl6tyja70w273gr60j9j9dcpc6mz69lemg3qpwud3h
mac: ENC[AES256_GCM,data:zqkbmx7XIHQnOVkozPLiBzsNhACbGwvWiFcFlEHhlyEeQ7rvltLlUlgivb7aawwG1RuxCwshHwLfuKRQ/iGJcXjFO4UM5VER6CAA/88UrpgXW8VBw8iuchr+Y58lu0s+98fj7VffcuWjhJ1AYvBxFaTZA6DjxFjv3l1Gyxtw6kM=,iv:XG9Qb61INy1OJZjI3cDbY9fswLqf8+QvcUMrmtKGtuQ=,tag:+JacTF/+qU+j/cm8Wn1c8g==,type:str] 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: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.1 version: 3.9.1

29
shell.nix Normal file
View File

@@ -0,0 +1,29 @@
let
nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-24.05";
pkgs = import nixpkgs { config = { }; overlays = [ ]; };
in
pkgs.mkShellNoCC {
packages = with pkgs; [
cowsay
lolcat
bitwarden-desktop #replaced bitwarden
bitwarden-cli
sops
];
GREETING = "Hello, Nix!";
shellHook = ''
echo $GREETING | cowsay | lolcat
bw config server https://vault.subsonics.nl
echo "please enter bitwarden email"
read BW_USER
echo "please enter bitwarden password"
read -s BW_PASSWORD
bw login $BW_USER $BW_PASSWORD
BW_SESSION="$(bw unlock $BW_PASSWORD --raw)"
mkdir -p ~/.config/sops/age
bw get attachment keys.txt --itemid ee6a90b0-4120-46f7-a1c6-9648316e43d5 --output ~/.config/sops/age/keys.txt
'';
}

View File

@@ -5,10 +5,10 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
imports = imports = [
[ ./hardware/hardware-configuration.nix
./hardware-configuration.nix ];
];
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
@@ -42,28 +42,37 @@
LC_TIME = "nl_NL.UTF-8"; LC_TIME = "nl_NL.UTF-8";
}; };
# Enable the X11 windowing system. services = {
services.xserver.enable = true; # Enable Gnome Session
displayManager.gdm.enable = false;
displayManager.sddm.enable = false;
# displayManager.sddm.wayland.enable = true;
displayManager.cosmic-greeter.enable = true;
displayManager.defaultSession = "gnome";
xserver = {
enable = true; # Enable the deprecated X11 teletype terminal connection system.
# Configure Display Manager
displayManager = {
lightdm.enable = false;
};
# Configure keymap in X11
xkb = {
layout = "us";
variant = "intl";
};
# Specify first device section to use nvidia GPU
# Enable the GNOME Desktop Environment. };
services.xserver.displayManager.gdm.enable = true; };
# services.xserver.displayManager.lightdm.enable = true; # services.xserver.displayManager.defaultSession = "gnome-x11"; # services.xserver.displayManager.autoLogin.enable = true;
# services.xserver.displayManager.autoLogin.enable = true;
# services.xserver.displayManager.autoLogin.user = "andreas"; # services.xserver.displayManager.autoLogin.user = "andreas";
# systemd.services."getty@tty1".enable = false; # systemd.services."getty@tty1".enable = false;
# systemd.services."autovt@tty1".enable = false; # systemd.services."autovt@tty1".enable = false;
services.xserver.desktopManager.gnome.enable = true;
services.desktopManager.plasma6.enable = true;
programs.ssh.askPassword = "${pkgs.x11_ssh_askpass}/libexec/x11-ssh-askpass"; programs.ssh.askPassword = "${pkgs.x11_ssh_askpass}/libexec/x11-ssh-askpass";
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
variant = "intl";
};
# Configure console keymap # Configure console keymap
console.keyMap = "us-acentos"; console.keyMap = "us-acentos";
@@ -71,7 +80,7 @@
services.printing.enable = true; services.printing.enable = true;
# Enable sound with pipewire. # Enable sound with pipewire.
hardware.pulseaudio.enable = false; services.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = { services.pipewire = {
enable = true; enable = true;
@@ -86,22 +95,79 @@
#media-session.enable = true; #media-session.enable = true;
}; };
# Enable gamemode for game optimization
programs.gamemode.enable = true;
# Enable touchpad support (enabled default in most desktopManager). # Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true; # services.xserver.libinput.enable = true;
# Install firefox. # Install firefox.
programs.firefox.enable = true; programs.firefox.enable = true;
# Enable XWayland for X11 application compatibility
programs.xwayland.enable = true;
# docker
virtualisation.docker = {
enable = true;
};
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# Enable --Akonadi--/ kde-pim for calendar backend
programs.kde-pim.enable = true;
services.dbus.enable = true;
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget # wget
(python312.withPackages (ps: with ps; [ websockets ]))
sqlite
javaPackages.compiler.openjdk25
javaPackages.compiler.openjdk21
qt6.qtwebengine
qemu
mpv
krita
ntfs3g
htop
]; ];
environment.etc."xdg/autostart/xwaylandvideobridge.desktop".text = ''
[Desktop Entry]
Hidden=true
'';
services.udisks2.settings = { # Should fix mounting ntfs system partition - Did not work
"udisks2.conf" = {
defaults = {
allow_mount_internal = true;
allow_mount_system = true;
};
};
};
services.gvfs.enable = true; # For file manager integration
# Disable iBus (not needed unless using Asian input methods)
i18n.inputMethod = {
enable = false;
};
virtualisation.libvirtd = {
enable = true;
qemu = {
package = pkgs.qemu_kvm;
runAsRoot = true;
swtpm.enable = true;
};
};
systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
# started in user sessions. # started in user sessions.
# programs.mtr.enable = true; # programs.mtr.enable = true;
@@ -113,11 +179,17 @@
# List services that you want to enable: # List services that you want to enable:
# Enable the OpenSSH daemon. # Enable the OpenSSH daemon.
# services.openssh.enable = true; services.openssh.enable = true;
# Open ports in the firewall. # Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ]; networking.firewall.allowedTCPPorts = [
# networking.firewall.allowedUDPPorts = [ ... ]; 24800 #Synergy
53317 #localsend
];
networking.firewall.allowedUDPPorts = [
24800 #Synergy
53317 #localsend
];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;

View File

@@ -26,6 +26,7 @@
, ... , ...
}: }:
let let
inherit (lib.my-namespace) enabled;
inherit pkgs; inherit pkgs;
installedPackages = lib.my-namespace.mkPackages pkgs; installedPackages = lib.my-namespace.mkPackages pkgs;
in in
@@ -33,76 +34,133 @@ in
# inherit system; # inherit system;
imports = [ imports = [
./configuration.nix ./configuration.nix
./steam.nix
./video.nix ./video.nix
inputs.aagl.nixosModules.default
]; ];
config = { config = {
system.stateVersion = "24.05"; system.stateVersion = "24.05";
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
# Desktops
my-namespace.desktop-environment.xfce.enable = true;
my-namespace.desktop-environment.gnome.enable = true;
my-namespace.desktop-environment.kde.enable = true;
my-namespace.desktop-environment.cosmic.enable = true;
my-namespace.performance-tuning.enable = true;
# GNOME-keyring
my-namespace.gnome-keyring.enable = true;
users.users.andreas = { users.users.andreas = {
isNormalUser = true; isNormalUser = true;
description = "Andreas Schaafsma"; description = "Andreas Schaafsma";
extraGroups = [ "networkmanager" "wheel" ]; extraGroups = [
"networkmanager"
"wheel"
"libvirtd"
"plugdev"
"docker"
"gamemode"
];
packages = with pkgs; [ packages = with pkgs; [
flatpak # Packages from inputs
gnome-software
soundwireserver
vscode
spotify
appimage-run
inputs.game-of-life.packages.x86_64-linux.default inputs.game-of-life.packages.x86_64-linux.default
inputs.nixos-cosmic inputs.zen-browser.packages.x86_64-linux.default
minecraft inputs.trilium-next-pr.legacyPackages.x86_64-linux.trilium-next-desktop
inputs.anikki.packages.x86_64-linux.default
# We want flatpak support
flatpak
# GNOME shit
thunderbird
soundwireserver
vscode
spotify
appimage-run
prismlauncher #replaces broken minecraft package
trilium-desktop trilium-desktop
terraform
virt-manager
# thunderbird # thunderbird
]; ];
}; };
programs.anime-game-launcher.enable = true; # Adds launcher and /etc/hosts rules
programs.anime-games-launcher.enable = true;
services.gnome.gnome-remote-desktop.enable = true;
my-namespace.keychron-keyboard.enable = true;
# lib.my-namespace.home.stream-tools.enable = true; # lib.my-namespace.home.stream-tools.enable = true;
# Open ports in the firewall. # Open ports in the firewall.
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
59010 #SoundWireServer 59010 #SoundWireServer
3389 #RDP 3389 #RDP
22 #ssh
]; ];
networking.firewall.allowedUDPPorts = [ networking.firewall.allowedUDPPorts = [
59010 #SoundWireServer 59010 #SoundWireServer
3389 #RDP 3389 #RDP
22 #ssh
]; ];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;
programs.gamescope.enable = true;
programs.steam.gamescopeSession = {
enable = true;
args = [
"-w" "1920"
"-h" "1080"
"-r" "172"
];
};
# Install firefox. # Install firefox.
programs.firefox.enable = true; programs.firefox.enable = true;
nixpkgs.config.allowBroken = true; nixpkgs.config.allowBroken = true;
powerManagement.cpuFreqGovernor = "performance";
# Set up system Packages # Set up system Packages
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
git git
pkgs.wine wine
pkgs.bottles # bottles
pkgs.gparted gparted
pkgs.ntfs3g ntfs3g
pkgs.ntfsprogs ntfsprogs
pkgs.my-namespace.udev-steelseries synergy
pkgs.my-namespace.hello mangohud
my-namespace.udev-steelseries
my-namespace.hello
kde-rounded-corners
my-namespace.linux-wallpaperengine
pkgs.nvtopPackages.nvidia (pkgs.writeShellScriptBin "switch-to-desktop" ''
#!/bin/sh
# stuff I installed to try to get gamescope to work to no avail Gamescope is just broken it seems. # Kill Steam and return to display manager
# pkgs.mesa pkill steam || true
# pkgs.vulkan-loader pkill gamescope || true
# pkgs.vulkan-validation-layers # End the session cleanly
# pkgs.vulkan-extension-layer loginctl terminate-session "$XDG_SESSION_ID"
# pkgs.vulkan-tools '')
# pkgs.libva (pkgs.writeShellScriptBin "steamos-session-select" ''
# pkgs.libva-utils #!/bin/sh
exec switch-to-desktop
'')
# Vulkan packages for Steam
pkgs.mesa
pkgs.vulkan-loader
pkgs.vulkan-validation-layers
pkgs.vulkan-extension-layer
pkgs.vulkan-tools
pkgs.libva
pkgs.libva-utils
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget # wget
] ]
++ installedPackages.packages; ++ installedPackages.packages;
programs.nix-ld = { programs.nix-ld = {
enable = true; enable = true;
package = pkgs.nix-ld-rs; package = pkgs.nix-ld; #replaces nix-ld-rs
}; };
services.flatpak.enable = true; services.flatpak.enable = true;
systemd.services.flatpak-repo = { systemd.services.flatpak-repo = {
@@ -124,7 +182,9 @@ in
# services.xrdp.enable = true; # services.xrdp.enable = true;
# services.xrdp.defaultWindowManager = "${pkgs.gnome-session}/bin/gnome-session"; # services.xrdp.defaultWindowManager = "${pkgs.gnome-session}/bin/gnome-session";
# services.xrdp.defaultWindowManager = "startxfce4";
# services.xrdp.openFirewall = true; # services.xrdp.openFirewall = true;
# services.xrdp.audio.enable = false;
# Disable the GNOME3/GDM auto-suspend feature that cannot be disabled in GUI! # Disable the GNOME3/GDM auto-suspend feature that cannot be disabled in GUI!

View File

@@ -1,45 +0,0 @@
# 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")
./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" ];
};
swapDevices = [ ];
# 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 possible 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;
}

View File

@@ -1,6 +1,8 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
boot.kernelParams = [ "drm.edid_firmware=DP-3:edid/edid.bin" ]; # boot.kernelParams = [ "drm.edid_firmware=DP-1:edid/edid.bin,DP-2:edid/edid.bin,DP-3:edid/edid.bin,DP-4:edid/edid.bin" ];
boot.kernelParams = [ "drm.edid_firmware=DP-2:edid/edid.bin" ];
hardware.firmware = [ hardware.firmware = [
( (
@@ -9,4 +11,4 @@
cp ${./firmware/KG271-edid.bin} $out/lib/firmware/edid/edid.bin cp ${./firmware/KG271-edid.bin} $out/lib/firmware/edid/edid.bin
'' ''
)]; )];
} }

View File

@@ -0,0 +1,82 @@
{ config, lib, pkgs, ... }:
{
############################
## Display + Mesa Settings
############################
# hardware.enableRedistributableFirmware = true;
hardware.firmware = [
pkgs.linux-firmware
# pkgs.firmwareLinuxNonfree
# pkgs.firmwareLinuxStrict
# pkgs.firmwareLinuxLatest
];
# boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelParams = [
"console=tty0"
# "efifb=off"
# "xe.force_probe=*"
"module_blacklist=nouveau,nvidia,nvidia_drm,nvidia_modeset,nvidia_uvm"
];
environment.variables.VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/intel_icd.x86_64.json";
hardware.intel-gpu-tools.enable = true;
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [
intel-media-driver # Intel VAAPI
vpl-gpu-rt # oneVPL runtime
intel-vaapi-driver # fallback
intel-compute-runtime # OpenCL/Level Zero
];
};
# Ensure Arc driver is available (usually auto-loaded)
boot.kernelModules = [ "xe" "i915" ];
# Blacklist everything for nvidia
boot.blacklistedKernelModules = [
"nouveau"
"nvidia"
"nvidia_drm"
"nvidia_modeset"
"nvidia_uvm"
];
environment.variables = {
KWIN_DRM_DEVICES = "/dev/dri/card0";
};
############################
## X / Wayland GPU Drivers
############################
# Enable modesetting driver for X11 (required for Intel Xe)
services.xserver.videoDrivers = [
"modesetting"
#"intel"
];
services.xserver.enable = true;
services.xserver.autorun = false;
services.xserver.displayManager.startx.enable = true;
# Xorg configuration for Intel Arc Battlemage (xe driver)
# Based on: https://www.reddit.com/r/crtgaming/comments/1knom2t/guide_intel_arc_b580_arch_linux_xorg/
# Intel Arc B-series at PCI 0000:03:00.0
#services.xserver.deviceSection = ''
# Option "AccelMethod" "glamor"
# BusID "PCI:3:0:0"
#'';
############################
## User Access
############################
users.users.andreas.extraGroups = [ "video" "render" ];
}

View File

@@ -0,0 +1,74 @@
{ config, lib, pkgs, ... }:
{
############################
## Display + Mesa Settings
############################
# hardware.enableRedistributableFirmware = true;
hardware.firmware = [
pkgs.linux-firmware
# pkgs.firmwareLinuxNonfree
# pkgs.firmwareLinuxStrict
# pkgs.firmwareLinuxLatest
];
# boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelParams = [
"console=tty0"
"efifb=off"
"xe.force_probe=*"
"nvidia-drm.modeset=1"
];
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver # Intel VAAPI
vpl-gpu-rt # oneVPL runtime
intel-vaapi-driver # fallback
];
};
# Ensure Arc driver is available (usually auto-loaded)
boot.kernelModules = [ "xe" ];
boot.blacklistedKernelModules = [ "nouveau" ];
############################
## X / Wayland GPU Drivers
############################
# Only specify NVIDIA. Intel Arc uses the modesetting driver automatically.
services.xserver.videoDrivers = [ "nvidia" ];
############################
## NVIDIA Configuration
############################
hardware.nvidia = {
modesetting.enable = true; # REQUIRED if any displays are on NVIDIA
open = false; # GTX 1070 → must be the proprietary driver
nvidiaSettings = true;
powerManagement.enable = false;
powerManagement.finegrained = false;
prime = {
offload.enable = false; # not a laptop, must be disabled
sync.enable = false;
};
# Correct way to pick the driver
package = config.boot.kernelPackages.nvidiaPackages.production;
};
# Remove → hardware.nvidia handles module packages
# boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
############################
## User Access
############################
users.users.andreas.extraGroups = [ "video" "render" ];
}

View File

@@ -0,0 +1,85 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
./graphics/intel.nix
# ./graphics/nvidia.nix
./acer-monitor-edid.nix
];
# boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-latest;
hardware.enableRedistributableFirmware = true;
# boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest;
# boot.kernelPackages = pkgs.linuxPackages;
boot.loader.efi.canTouchEfiVariables = true;
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.kernelModules = [ "kvm-amd" "r8125" "4vl2loopback" ];
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback r8125 ];
boot.supportedFilesystems = [ "ntfs" ];
boot.blacklistedKernelModules = [ "r8169" ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76";
fsType = "ext4";
};
fileSystems."/boot" = {
#device = "/dev/disk/by-uuid/E846-D998";
device = "/dev/disk/by-uuid/19BE-8BAA";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
# Mount ntfs partition
# fileSystems."/run/media/627C3BDF7C3BAD23" = {
# device = "/dev/disk/by-uuid/627C3BDF7C3BAD23";
# fsType = "ntfs-3g";
# options = [ "rw" "uid=1000"];
# };
# # Mount ntfs oldfiles drive partition
# fileSystems."/run/media/oldfiles" = {
# device = "/dev/disk/by-uuid/E2E26FFFE26FD677";
# fsType = "ntfs-3g";
# options = [ "rw" "uid=1000"];
# };
# # Mount The Vault
# fileSystems."/run/media/vault" = {
# device = "/dev/disk/by-uuid/3470646370642DB4";
# fsType = "ntfs-3g";
# options = [ "rw" "uid=1000"];
# };
# Try to fix hibernation
# swapDevices = [ ];
swapDevices = [ {
device = "/var/lib/swapfile";
size = 32*1024;
} ]; #resume-offset = 78399488
boot.resumeDevice = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76"; # the unlocked drive mapping
boot.kernelParams = [
"resume_offset=78399488" #sudo filefrag -v /var/lib/swapfile|awk 'NR==4{gsub(/\./,"");print $4;}'
"r8125.aspm=0" # realtek network adapter fix
];
security.protectKernelImage = false;
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still po ssible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp72s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -1,81 +0,0 @@
{ config, lib, pkgs, ... }:
{
# Enable OpenGL
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
};
# Load nvidia driver for Xorg and Wayland
# boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
# boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11_production ];
boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
boot.loader.systemd-boot.consoleMode = "max";
boot.kernelParams = [
"nvidia-drm.fbdev=1"
"nvidia-drm.modeset=1"
"nvidia.NVreg_PreserveVideoMemoryAllocations=1"
"nomodeset"
# "nvidia_drm.modeset=1"
];
boot.blacklistedKernelModules = [
"i915"
"amdgpu"
"nouveau"
];
boot.extraModprobeConfig = ''
blacklist nouveau
options nouveau modeset=0
'';
services.xserver.videoDrivers = [ "nvidia" ];
boot.initrd.kernelModules = [
"nvidia"
"nvidia-drm"
# "nvidiafb"
# "nvidia-modeset"
# "nvidia-uvm"
# "i2c-nvidia_gpu"
];
#boot.initrd.kernelModules = [ "nvidia" ];
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 = false;
# 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.stable;
# package = config.boot.kernelPackages.nvidiaPackages.production;
};
users.users.andreas = {
extraGroups = [ "video" "render" ];
};
}

View File

@@ -5,7 +5,7 @@
]; ];
boot.extraModulePackages = [ boot.extraModulePackages = [
pkgs.linuxPackages.v4l2loopback # Webcam loopback config.boot.kernelPackages.v4l2loopback # Webcam loopback
]; ];
boot.extraModprobeConfig = '' boot.extraModprobeConfig = ''