Compare commits

...

101 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
33 changed files with 1274 additions and 984 deletions

407
flake.lock generated
View File

@@ -1,12 +1,87 @@
{ {
"nodes": { "nodes": {
"aagl": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1767520119,
"narHash": "sha256-+OmNQLA9Fv5WBaxYHlPghS9XmnYWDaLt+AatCGhG+hc=",
"owner": "ezKEa",
"repo": "aagl-gtk-on-nix",
"rev": "5720d3282844b6b23b26dfac075a5f1f58ea8844",
"type": "github"
},
"original": {
"owner": "ezKEa",
"repo": "aagl-gtk-on-nix",
"type": "github"
}
},
"anikki": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1766470910,
"narHash": "sha256-iY0vJAAjY5ZveB6JIAQDHq7lFrkAVGnO0tC7YOYDFsg=",
"owner": "Hion-V",
"repo": "Anikki-flake",
"rev": "95d15448466142126c7fc13ac1dbdaf58a36a3a5",
"type": "github"
},
"original": {
"owner": "Hion-V",
"repo": "Anikki-flake",
"type": "github"
}
},
"cachyos-kernel": {
"flake": false,
"locked": {
"lastModified": 1769201405,
"narHash": "sha256-k/KQL7J9ZnLlF28E6ywGpfo5dxkuxCcEtJ/XEZDTw3M=",
"owner": "CachyOS",
"repo": "linux-cachyos",
"rev": "ff53672af48a106f52857d62c9275b165cc452ef",
"type": "github"
},
"original": {
"owner": "CachyOS",
"repo": "linux-cachyos",
"type": "github"
}
},
"cachyos-kernel-patches": {
"flake": false,
"locked": {
"lastModified": 1769199354,
"narHash": "sha256-y1DKMryOr1w4xcZnDkaZjvENIPmr3j/YB4Srtfd3I2Y=",
"owner": "CachyOS",
"repo": "kernel-patches",
"rev": "c8b990198baf3c34b64e4e5c5ffeb7c068eede1a",
"type": "github"
},
"original": {
"owner": "CachyOS",
"repo": "kernel-patches",
"type": "github"
}
},
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1731098351, "lastModified": 1754269165,
"narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=", "narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28", "rev": "444e81206df3f7d92780680e45858e31d2f07a08",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -18,11 +93,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1761588595,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -34,15 +109,15 @@
"flake-compat_2": { "flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1746162366, "lastModified": 1747046372,
"narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "nix-community", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b", "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"type": "github" "type": "github"
} }
@@ -50,11 +125,27 @@
"flake-compat_3": { "flake-compat_3": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1767039857,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "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": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -63,7 +154,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_4": { "flake-compat_5": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1650374568, "lastModified": 1650374568,
@@ -87,11 +178,29 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1730504689, "lastModified": 1754091436,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", "narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "506278e768c2a08bec68eb62932193e341f55c90", "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" "type": "github"
}, },
"original": { "original": {
@@ -102,14 +211,14 @@
}, },
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1694529238, "lastModified": 1731533236,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -120,7 +229,7 @@
}, },
"flake-utils-plus": { "flake-utils-plus": {
"inputs": { "inputs": {
"flake-utils": "flake-utils" "flake-utils": "flake-utils_2"
}, },
"locked": { "locked": {
"lastModified": 1715533576, "lastModified": 1715533576,
@@ -137,9 +246,29 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_2": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"game-of-life": { "game-of-life": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "nixpkgs": [
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1728511087, "lastModified": 1728511087,
@@ -184,11 +313,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749160002, "lastModified": 1769450270,
"narHash": "sha256-IM3xKjsKxhu7Y1WdgTltrLKiOJS8nW7D4SUDEMNr7CI=", "narHash": "sha256-pdVm/zJazDUAasTyHFX/Pbrlk9Upjxi0yzgn7GjGe4g=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "68cc9eeb3875ae9682c04629f20738e1e79d72aa", "rev": "a10c1e8f5ad2589414407f4851c221cb66270257",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -205,11 +334,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1743604125, "lastModified": 1768434960,
"narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=", "narHash": "sha256-cJbFn17oyg6qAraLr+NVeNJrXsrzJdrudkzI4H2iTcg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a", "rev": "b4d88c9ac42ae1a745283f6547701da43b6e9f9b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -226,11 +355,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1745057346, "lastModified": 1755098995,
"narHash": "sha256-71cyYKUul9owRzbcObXkzhTBcmnXJsvmk1gq0RbP5PQ=", "narHash": "sha256-6FN7XEf27DenQHDIKjrjOW3tGIaJlyqRlXarmt1v+M0=",
"owner": "taj-ny", "owner": "taj-ny",
"repo": "kwin-effects-forceblur", "repo": "kwin-effects-forceblur",
"rev": "fea9f80f27389aa8a62befb5babf40b28fed328d", "rev": "51a1d49d7fd7df3ce40ccf6ba4c4410cf6f510e1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -242,61 +371,65 @@
"lanzaboote": { "lanzaboote": {
"inputs": { "inputs": {
"crane": "crane", "crane": "crane",
"flake-compat": "flake-compat", "flake-compat": "flake-compat_2",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"pre-commit-hooks-nix": "pre-commit-hooks-nix", "pre-commit-hooks-nix": "pre-commit-hooks-nix",
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {
"lastModified": 1737639419, "lastModified": 1762205063,
"narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=", "narHash": "sha256-If6vQ+KvtKs3ARBO9G3l+4wFSCYtRBrwX1z+I+B61wQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "lanzaboote", "repo": "lanzaboote",
"rev": "a65905a09e2c43ff63be8c0e86a93712361f871e", "rev": "88b8a563ff5704f4e8d8e5118fb911fa2110ca05",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "v0.4.2", "ref": "v0.4.3",
"repo": "lanzaboote", "repo": "lanzaboote",
"type": "github" "type": "github"
} }
}, },
"nixos-cosmic": { "nix-cachyos-kernel": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "cachyos-kernel": "cachyos-kernel",
"nixpkgs": "nixpkgs_2", "cachyos-kernel-patches": "cachyos-kernel-patches",
"nixpkgs-stable": "nixpkgs-stable_2", "flake-compat": "flake-compat_3",
"rust-overlay": "rust-overlay_2" "flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1749121763, "lastModified": 1769363279,
"narHash": "sha256-TVFiyMBs+3KEzZVwf/n1zedUWzPrMPzud/2Jiho8dcE=", "narHash": "sha256-XJCuB8GWkFLRFBR6GQoxRB9/lobB45ERp0JN0Lo2nvs=",
"owner": "lilyinstarlight", "owner": "xddxdd",
"repo": "nixos-cosmic", "repo": "nix-cachyos-kernel",
"rev": "c89df80b72b4e1802fd91a35f4857868c953c1c0", "rev": "4aa98db78c1d663c3dad59775e95ad93fe58a844",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "lilyinstarlight", "owner": "xddxdd",
"repo": "nixos-cosmic", "ref": "release",
"repo": "nix-cachyos-kernel",
"type": "github" "type": "github"
} }
}, },
"nixos-wsl": { "nixos-wsl": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_4",
"nixpkgs": "nixpkgs_3" "nixpkgs": [
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1746453552, "lastModified": 1769217863,
"narHash": "sha256-r66UGha+7KVHkI7ksrcMjnw/mm9Sg4l5bQlylxHwdGU=", "narHash": "sha256-RY9kJDXD6+2Td/59LkZ0PFSereCXHdBX9wIkbYjRKCY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NixOS-WSL", "repo": "NixOS-WSL",
"rev": "be618645aa0adf461f778500172b6896d5ab2d01", "rev": "38a5250e57f583662eac3b944830e4b9e169e965",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -308,111 +441,62 @@
}, },
"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": 1730741070, "lastModified": 1765674936,
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", "narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
"owner": "NixOS", "owner": "nix-community",
"repo": "nixpkgs", "repo": "nixpkgs.lib",
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", "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": 1748995628,
"narHash": "sha256-bFufQGSAEYQgjtc4wMrobS5HWN0hDP+ZX+zthYcml9U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8eb3b6a2366a7095939cd22f0dc0e9991313294b",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1748929857, "lastModified": 1769300497,
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=", "narHash": "sha256-W7NbQnQGqUPRnpHOlLXk3g52TSQDkFVzhax9YNv9K+U=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4", "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": 1742937945, "lastModified": 1769170682,
"narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=", "narHash": "sha256-oMmN1lVQU0F0W2k6OI3bgdzp2YOHWYUAw79qzDSjenU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7", "rev": "c5296fdd05cfa2c187990dd909864da9658df755",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1748929857,
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1743448293,
"narHash": "sha256-bmEPmSjJakAp/JojZRrUvNcDX2R5/nuX6bm+seVaGhs=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "77b584d61ff80b4cef9245829a6f1dfad5afdfa3",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
@@ -428,15 +512,14 @@
"nixpkgs": [ "nixpkgs": [
"lanzaboote", "lanzaboote",
"nixpkgs" "nixpkgs"
], ]
"nixpkgs-stable": "nixpkgs-stable"
}, },
"locked": { "locked": {
"lastModified": 1731363552, "lastModified": 1750779888,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
"owner": "cachix", "owner": "cachix",
"repo": "pre-commit-hooks.nix", "repo": "pre-commit-hooks.nix",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -447,13 +530,15 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"aagl": "aagl",
"anikki": "anikki",
"game-of-life": "game-of-life", "game-of-life": "game-of-life",
"home-manager": "home-manager", "home-manager": "home-manager",
"kwin-effects-forceblur": "kwin-effects-forceblur", "kwin-effects-forceblur": "kwin-effects-forceblur",
"lanzaboote": "lanzaboote", "lanzaboote": "lanzaboote",
"nixos-cosmic": "nixos-cosmic", "nix-cachyos-kernel": "nix-cachyos-kernel",
"nixos-wsl": "nixos-wsl", "nixos-wsl": "nixos-wsl",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_3",
"snowfall-lib": "snowfall-lib", "snowfall-lib": "snowfall-lib",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"trilium-next-pr": "trilium-next-pr", "trilium-next-pr": "trilium-next-pr",
@@ -462,17 +547,14 @@
}, },
"rust-overlay": { "rust-overlay": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": "nixpkgs"
"lanzaboote",
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1731897198, "lastModified": 1764470739,
"narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=", "narHash": "sha256-sa9f81B1dWO16QtgDTWHX8DQbiHKzHndpaunY5EQtwE=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "0be641045af6d8666c11c2c40e45ffc9667839b5", "rev": "3bfa664055e1a09c6aedab5533c5fc8d6ca5741a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -484,16 +566,16 @@
"rust-overlay_2": { "rust-overlay_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixos-cosmic", "lanzaboote",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1749091064, "lastModified": 1761791894,
"narHash": "sha256-TGtYjzRX0sueFhwYsnNNFF5TTKnpnloznpIghLzxeXo=", "narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "12419593ce78f2e8e1e89a373c6515885e218acb", "rev": "59c45eb69d9222a4362673141e00ff77842cd219",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -504,18 +586,18 @@
}, },
"snowfall-lib": { "snowfall-lib": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_4", "flake-compat": "flake-compat_5",
"flake-utils-plus": "flake-utils-plus", "flake-utils-plus": "flake-utils-plus",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1736130495, "lastModified": 1765361626,
"narHash": "sha256-4i9nAJEZFv7vZMmrE0YG55I3Ggrtfo5/T07JEpEZ/RM=", "narHash": "sha256-kX0Dp/kYSRbQ+yd9e3lmmUWdNbipufvKfL2IzbrSpnY=",
"owner": "snowfallorg", "owner": "snowfallorg",
"repo": "lib", "repo": "lib",
"rev": "02d941739f98a09e81f3d2d9b3ab08918958beac", "rev": "c566ad8b7352c30ec3763435de7c8f1c46ebb357",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -531,11 +613,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747603214, "lastModified": 1769469829,
"narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=", "narHash": "sha256-wFcr32ZqspCxk4+FvIxIL0AZktRs6DuF8oOsLt59YBU=",
"owner": "mic92", "owner": "mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd", "rev": "c5eebd4eb2e3372fe12a8d70a248a6ee9dd02eff",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -574,6 +656,21 @@
"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": { "trilium-next-pr": {
"locked": { "locked": {
"lastModified": 1736678965, "lastModified": 1736678965,
@@ -592,7 +689,7 @@
}, },
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1726560853, "lastModified": 1726560853,
@@ -611,14 +708,16 @@
"zen-browser": { "zen-browser": {
"inputs": { "inputs": {
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_5" "nixpkgs": [
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1749093358, "lastModified": 1769431876,
"narHash": "sha256-Clx1BzHsSSzIXbnCW9KM3m5gW3SFgemcW9/4XH4epeM=", "narHash": "sha256-FnOW+ulwocxfYGVKV2H/7MlSbn52+hfX9oaRR6FClZ4=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "d4cf0ac2e860be17036a376ae99b233a115826bc", "rev": "d5ef79d18dca7617aefe511db8267d47f7cf953f",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -3,36 +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"; 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"; 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 = { lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.2"; url = "github:nix-community/lanzaboote/v0.4.3";
# Optional but recommended to limit the size of your system closure.
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
kwin-effects-forceblur = { kwin-effects-forceblur = {
url = "github:taj-ny/kwin-effects-forceblur"; url = "github:taj-ny/kwin-effects-forceblur";
inputs.nixpkgs.follows = "nixpkgs"; 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:
@@ -71,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
@@ -115,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

@@ -14,6 +14,7 @@ in
my-namespace.home = { my-namespace.home = {
stream-tools = enabled; stream-tools = enabled;
gnome-customizations = enabled; gnome-customizations = enabled;
vesktop-appimage = enabled;
# networking = enabled; # networking = enabled;
# personal-apps = enabled; # personal-apps = enabled;
# suites.laptop = enabled; # suites.laptop = enabled;
@@ -21,14 +22,26 @@ in
home = { home = {
packages = [ packages = [
pkgs.nil pkgs.nil
pkgs.gamemode
pkgs.beeper pkgs.beeper
pkgs.my-namespace.udev-steelseries pkgs.my-namespace.udev-steelseries
pkgs.qbittorrent pkgs.qbittorrent
pkgs.vesktop pkgs.hyfetch
pkgs.libreoffice
pkgs.localsend
# pkgs.vesktop
pkgs.obsidian pkgs.obsidian
inputs.zen-browser.packages.x86_64-linux.default inputs.zen-browser.packages.x86_64-linux.default
inputs.kwin-effects-forceblur.packages.${pkgs.system}.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,11 +20,10 @@ in
home = { home = {
packages = [ packages = [
pkgs.nil pkgs.nil
pkgs.gamemode
pkgs.beeper pkgs.beeper
pkgs.my-namespace.udev-steelseries pkgs.my-namespace.udev-steelseries
pkgs.qbittorrent pkgs.qbittorrent
pkgs.vesktop #pkgs.vesktop
]; ];
}; };
} }

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

@@ -1,32 +0,0 @@
{ config
, lib
, inputs
, pkgs
, ...
}:
let
inherit (lib) mkEnableOption mkIf;
inherit (lib.my-namespace) disabled enabled;
cfg = config.my-namespace.cosmic-desktop;
# moduleImports = {
# "enabled" = [inputs.nixos-cosmic.nixosModules.default];
# "disabled" = [];
# };
# optionalImports = { imports = []; };
in
{
options.my-namespace.cosmic-desktop = {
enable = mkEnableOption "Enable nvidia";
};
imports = [ inputs.nixos-cosmic.nixosModules.default ];
config = mkIf cfg.enable {
nix.settings = {
substituters = [ "https://cosmic.cachix.org/" ];
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
};
services.desktopManager.cosmic.enable = true;
services.displayManager.cosmic-greeter.enable = true;
};
}

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

@@ -1,57 +0,0 @@
{ config
, lib
, pkgs
, ...
}:
let
inherit (lib) mkEnableOption mkIf;
inherit (lib.my-namespace) disabled enabled;
cfg = config.my-namespace.hardware.graphics-amd-igpu-only;
in
{
options.my-namespace.hardware.graphics-amd-igpu-only = {
enable = mkEnableOption "Enable nvidia";
};
config = mkIf cfg.enable {
# Enable NVIDIA driver for X11 and Wayland
# without modesetting, x server will be run by nvidia
services.xserver.videoDrivers = [
"amdgpu"
];
# Enable OpenGL
hardware.graphics = {
enable = true;
# extraPackages = with pkgs; [ nvidia-vaapi-driver ];
};
hardware.graphics.enable32Bit = true; # For 32 bit applications
boot.loader.systemd-boot.consoleMode = "max";
# Enable required Kernel Modules
boot.initrd.kernelModules = [
"amdgpu"
];
boot.kernelParams = [
"amdgpu.modeset=1"
"amd_iommu=on"
];
# Blacklist intel and nouveau
boot.blacklistedKernelModules = [
"nouveau"
];
# Modesetting is required.
# Add user to extra groups
users.users.andreas = {
extraGroups = [ "video" "render" ];
};
};
}

View File

@@ -1,176 +0,0 @@
{ config
, lib
, pkgs
, ...
}:
let
inherit (lib) mkEnableOption mkIf;
inherit (lib.my-namespace) disabled enabled;
cfg = config.my-namespace.hardware.graphics-nvidia-prime-amd-testing;
in
{
options.my-namespace.hardware.graphics-nvidia-prime-amd-testing = {
enable = mkEnableOption "Enable nvidia";
};
config = mkIf cfg.enable {
# Enable NVIDIA driver for X11 and Wayland
# without modesetting, x server will be run by nvidia
services.xserver.videoDrivers = [
"nvidia"
# "nvidia-drm"
# "nvidia-uvm"
# "nvidia-modeset"
# "nvidiafb"
"amdgpu"
# "modesetting"
];
# Enable OpenGL
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
};
hardware.graphics.enable32Bit = true; # For 32 bit applications
# Enable Switcheroo
services.switcherooControl.enable = true;
# Use Beta Driver Package
boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11_beta ];
boot.loader.systemd-boot.consoleMode = "max";
# Enable required Kernel Modules
boot.initrd.kernelModules = [
"nvidia"
"nvidia-drm"
"nvidia-uvm"
"nvidia-modeset"
"nvidiafb"
"amdgpu"
# # "i2c-nvidia_gpu"
];
boot.kernelParams = [
# "amdgpu.modeset=1"
# "nvidia-drm.fbdev=1"
# "nvidia-drm.modeset=1"
# # "nvidia.NVreg_PreserveVideoMemoryAllocations=0"
"amd_iommu=on"
# "vfio-pci.ids=\"10de:2489,10de:228b\""
# "nomodeset"
# "nvidia_drm.modeset=1"
];
# Blacklist intel and nouveau
boot.blacklistedKernelModules = [
# "i915"
"nouveau"
# "nvidia"
# "nvidia-drm"
# "nvidia-uvm"
# "nvidiafb"
# "nvidia_drm"
# "nvidia_modeset"
];
# Extra blacklist nouveau
# boot.extraModprobeConfig = ''
# blacklist nouveau
# options nouveau modeset=0
# '';
# services.xserver.config = lib.mkForce ''
# Section "ServerLayout"
# Identifier "layout"
# Screen 0 "amdgpu"
# Inactive "nvidia"
# Option "AllowNVIDIAGPUScreens"
# EndSection
# Section "Device"
# Identifier "nvidia"
# Driver "nvidia"
# BusID "PCI:01:0:0"
# EndSection
# Section "Screen"
# Identifier "nvidia"
# Device "nvidia"
# EndSection
# Section "Device"
# Identifier "amdgpu"
# Driver "amdgpu"
# BusID "PCI:50:0:0"
# EndSection
# Section "Screen"
# Identifier "amdgpu"
# Device "amdgpu"
# EndSection
# '';
# Configure NVIDIA driver
hardware.nvidia = {
# Modesetting is required.
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement.enable = true;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = false;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
# Currently alpha-quality/buggy, so false is currently the recommended setting.
open = false;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.beta;
# package = config.boot.kernelPackages.nvidiaPackages.none;
# package = config.boot.kernelPackages.nvidiaPackages.production;
nvidiaPersistenced = true;
forceFullCompositionPipeline = true;
prime = {
offload = {
enable = true;
enableOffloadCmd = true;
};
# sync.enable=true;
# reverseSync.enable = false;
# Make sure to use the correct Bus ID values for your system!
# intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
amdgpuBusId = "PCI:50:0:0"; #For AMD GPU
};
};
# Add user to extra groups
users.users.andreas = {
extraGroups = [ "video" "render" ];
};
};
}

View File

@@ -1,170 +0,0 @@
{ config
, lib
, pkgs
, ...
}:
let
inherit (lib) mkEnableOption mkIf;
inherit (lib.my-namespace) disabled enabled;
cfg = config.my-namespace.hardware.graphics-nvidia-prime-amd;
in
{
options.my-namespace.hardware.graphics-nvidia-prime-amd = {
enable = mkEnableOption "Enable nvidia";
};
config = mkIf cfg.enable {
# Enable NVIDIA driver for X11 and Wayland
services.xserver.videoDrivers = [ "amdgpu" "nvidia" ];
services.xserver.displayManager.xserverArgs = [ "-config" "/opt/x11/xserver.conf" ];
services.xserver.config = lib.mkAfter ''
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
'';
services.switcherooControl.enable = true;
# Enable OpenGL
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
};
# Use Beta Driver Package
boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
boot.loader.systemd-boot.consoleMode = "max";
# Enable required Kernel Modules
boot.initrd.kernelModules = [
"nvidia-modeset"
"nvidia"
# "amdgpu"
"nvidia-drm"
# "nvidiafb"
# "nvidia-uvm"
# "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
'';
# 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.stable;
# package = config.boot.kernelPackages.nvidiaPackages.none;
# package = config.boot.kernelPackages.nvidiaPackages.production;
forceFullCompositionPipeline = false;
prime = {
offload = {
enable = lib.mkForce true;
enableOffloadCmd = lib.mkForce true;
};
reverseSync.enable = lib.mkForce false;
sync.enable = lib.mkForce 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" ];
};
};
}

View File

@@ -1,149 +0,0 @@
{ config, lib, pkgs, modulesPath, ... }:
let
inherit (lib) mkEnableOption mkIf;
inherit (lib.my-namespace) disabled enabled;
cfg = config.my-namespace.hardware.graphics-nvidia-specializations;
in
{
options.my-namespace.hardware.graphics-nvidia-specializations = {
enable = mkEnableOption "Enable nvidia";
};
options.nvidia-sync.enable = lib.mkEnableOption "Enable NVIDIA prime sync mode";
options.nvidia-offload.enable = lib.mkEnableOption "Enable NVIDIA prime sync mode";
config = {
specialisation."NVIDIA-SYNC".configuration = {
system.nixos.tags = [ "with-nvidia-sync" ];
nvidia-sync.enable = true;
};
specialisation."NVIDIA-OFFLOAD".configuration = {
system.nixos.tags = [ "with-nvidia-offload" ];
nvidia-offload.enable = true;
};
services.xserver.videoDrivers = [ "nvidia" "amdgpu" ];
hardware.graphics = {
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
};
boot.kernelParams = [
"nvidia.NVreg_PreserveVideoMemoryAllocations=1"
"nvidia-drm.fbdev=1"
"nvidia-drm.modeset=1"
"amdgpu.modeset=0"
];
boot.initrd.kernelModules = [
# "amdgpu"
"nvidia"
"nvidia-drm"
"nvidiafb"
# "nvidia-uvm"
# "nvidia-modeset"
# "i2c-nvidia_gpu"
];
hardware.nvidia = {
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
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.beta;
package = config.boot.kernelPackages.nvidiaPackages.production;
prime = {
amdgpuBusId = "PCI:50:0:0";
nvidiaBusId = "PCI:1:0:0";
} // lib.optionalAttrs config.nvidia-sync.enable {
sync.enable = true;
} // lib.optionalAttrs (config.nvidia-offload.enable) {
offload = {
enable = true;
enableOffloadCmd = true;
};
};
};
services.xserver.config = lib.mkAfter ''
Section "ServerLayout"
Identifier "layout"
Screen 0 "amdgpu"
Inactive "nvidia"
Option "AllowNVIDIAGPUScreens"
Option "AllowEmptyInitialConfiguration" "True"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:01:0:0"
Option "AllowEmptyInitialConfiguration" "True"
EndSection
Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration" "True"
EndSection
Section "Device"
Identifier "amdgpu"
Driver "amdgpu"
BusID "PCI:50:0:0"
Option "AllowEmptyInitialConfiguration" "True"
EndSection
Section "Screen"
Identifier "amdgpu"
Device "amdgpu"
Option "AllowEmptyInitialConfiguration" "True"
EndSection
'';
# 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
# '';
};
}

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

@@ -43,7 +43,7 @@ in
age age
wget wget
sops sops
bitwarden bitwarden-desktop #replaced bitwarden
bitwarden-cli bitwarden-cli
cowsay cowsay
remmina 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

@@ -7,7 +7,7 @@ pkgs.mkShellNoCC {
packages = with pkgs; [ packages = with pkgs; [
cowsay cowsay
lolcat lolcat
bitwarden bitwarden-desktop #replaced bitwarden
bitwarden-cli bitwarden-cli
sops sops
]; ];

View File

@@ -44,26 +44,16 @@
services = { services = {
# Enable Gnome Session # Enable Gnome Session
desktopManager.gnome.enable = true;
displayManager.gdm.enable = false; displayManager.gdm.enable = false;
displayManager.sddm.enable = true; displayManager.sddm.enable = false;
# displayManager.sddm.wayland.enable = true;
displayManager.cosmic-greeter.enable = true;
displayManager.defaultSession = "gnome"; displayManager.defaultSession = "gnome";
desktopManager.plasma6.enable = true;
xserver = { xserver = {
enable = true; # Enable the deprecated X11 teletype terminal connection system. enable = true; # Enable the deprecated X11 teletype terminal connection system.
desktopManager = {
# Disable xterm
xterm.enable = false;
# Enable xfce session
xfce = {
enable = true;
};
# Disable fuckshit plasma
};
# Configure Display Manager # Configure Display Manager
displayManager = { displayManager = {
# Enable lightdm
lightdm.enable = false; lightdm.enable = false;
}; };
# Configure keymap in X11 # Configure keymap in X11
@@ -74,40 +64,6 @@
# Specify first device section to use nvidia GPU # Specify first device section to use nvidia GPU
# services.xserver.config = lib.mkForce ''
# Section "ServerLayout"
# Identifier "layout"
# Screen 0 "amdgpu"
# Inactive "nvidia"
# Option "AllowNVIDIAGPUScreens"
# EndSection
# Section "Device"
# Identifier "nvidia"
# Driver "nvidia"
# BusID "PCI:01:0:0"
# EndSection
# Section "Screen"
# Identifier "nvidia"
# Device "nvidia"
# EndSection
# Section "Device"
# Identifier "amdgpu"
# Driver "amdgpu"
# BusID "PCI:50:0:0"
# EndSection
# Section "Screen"
# Identifier "amdgpu"
# Device "amdgpu"
# EndSection
# '';
}; };
}; };
# services.xserver.displayManager.defaultSession = "gnome-x11"; # services.xserver.displayManager.autoLogin.enable = true; # services.xserver.displayManager.defaultSession = "gnome-x11"; # services.xserver.displayManager.autoLogin.enable = true;
@@ -139,25 +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
xfce.xfce4-whiskermenu-plugin (python312.withPackages (ps: with ps; [ websockets ]))
gnome-tweaks sqlite
javaPackages.compiler.openjdk25
javaPackages.compiler.openjdk21
qt6.qtwebengine
qemu 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;
@@ -174,9 +184,11 @@
# Open ports in the firewall. # Open ports in the firewall.
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
24800 #Synergy 24800 #Synergy
53317 #localsend
]; ];
networking.firewall.allowedUDPPorts = [ networking.firewall.allowedUDPPorts = [
24800 #Synergy 24800 #Synergy
53317 #localsend
]; ];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;

View File

@@ -35,40 +35,60 @@ in
imports = [ imports = [
./configuration.nix ./configuration.nix
./video.nix ./video.nix
inputs.aagl.nixosModules.default
]; ];
config = { config = {
system.stateVersion = "24.05"; system.stateVersion = "24.05";
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
# Desktops
my-namespace.desktop-environment.xfce.enable = true;
my-namespace.desktop-environment.gnome.enable = true;
my-namespace.desktop-environment.kde.enable = true;
my-namespace.desktop-environment.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; [
# Packages from inputs # Packages from inputs
inputs.game-of-life.packages.x86_64-linux.default inputs.game-of-life.packages.x86_64-linux.default
inputs.zen-browser.packages.x86_64-linux.default inputs.zen-browser.packages.x86_64-linux.default
inputs.nixos-cosmic
inputs.trilium-next-pr.legacyPackages.x86_64-linux.trilium-next-desktop inputs.trilium-next-pr.legacyPackages.x86_64-linux.trilium-next-desktop
inputs.anikki.packages.x86_64-linux.default
# We want flatpak support # We want flatpak support
flatpak flatpak
# GNOME shit # GNOME shit
gnome-software thunderbird
gnomeExtensions.pop-shell
gnome-remote-desktop
soundwireserver soundwireserver
vscode vscode
spotify spotify
appimage-run appimage-run
minecraft prismlauncher #replaces broken minecraft package
trilium-desktop trilium-desktop
terraform terraform
virt-manager
# thunderbird # thunderbird
]; ];
}; };
programs.anime-game-launcher.enable = true; # Adds launcher and /etc/hosts rules
programs.anime-games-launcher.enable = true;
services.gnome.gnome-remote-desktop.enable = true; services.gnome.gnome-remote-desktop.enable = true;
my-namespace.cosmic-desktop.enable = false; my-namespace.keychron-keyboard.enable = true;
# lib.my-namespace.home.stream-tools.enable = true; # lib.my-namespace.home.stream-tools.enable = true;
# Open ports in the firewall. # Open ports in the firewall.
@@ -84,11 +104,21 @@ in
]; ];
# 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
@@ -98,23 +128,39 @@ in
ntfs3g ntfs3g
ntfsprogs ntfsprogs
synergy synergy
mangohud
my-namespace.udev-steelseries my-namespace.udev-steelseries
my-namespace.hello my-namespace.hello
# stuff I installed to try to get gamescope to work to no avail Gamescope is just broken it seems. kde-rounded-corners
# pkgs.mesa my-namespace.linux-wallpaperengine
# pkgs.vulkan-loader
# pkgs.vulkan-validation-layers (pkgs.writeShellScriptBin "switch-to-desktop" ''
# pkgs.vulkan-extension-layer #!/bin/sh
# pkgs.vulkan-tools # Kill Steam and return to display manager
# pkgs.libva pkill steam || true
# pkgs.libva-utils pkill gamescope || true
# End the session cleanly
loginctl terminate-session "$XDG_SESSION_ID"
'')
(pkgs.writeShellScriptBin "steamos-session-select" ''
#!/bin/sh
exec switch-to-desktop
'')
# Vulkan packages for Steam
pkgs.mesa
pkgs.vulkan-loader
pkgs.vulkan-validation-layers
pkgs.vulkan-extension-layer
pkgs.vulkan-tools
pkgs.libva
pkgs.libva-utils
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # 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 = {
@@ -134,11 +180,11 @@ 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.defaultWindowManager = "startxfce4";
services.xrdp.openFirewall = true; # services.xrdp.openFirewall = true;
services.xrdp.audio.enable = false; # 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,6 +1,8 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
boot.kernelParams = [ "drm.edid_firmware=DP-1:edid/edid.bin,DP-2:edid/edid.bin,DP-3:edid/edid.bin,DP-4:edid/edid.bin" ]; # boot.kernelParams = [ "drm.edid_firmware=DP-1:edid/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 = [
( (

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

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
inherit (lib.my-namespace) enabled;
in
{
my-namespace.hardware = {
graphics-nvidia-specializations = enabled;
# graphics-nvidia-prime-amd = enabled;
# graphics-nvidia-prime-amd-testing = enabled;
# graphics-amd-igpu-only = enabled;
};
}

View File

@@ -1,126 +0,0 @@
{ config, lib, pkgs, ... }:
{
# Enable OpenGL
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
};
# Load nvidia driver for Xorg and Wayland
# boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11_beta ];
# boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
boot.loader.systemd-boot.consoleMode = "max";
boot.kernelParams = [
"amdgpu.modeset=1"
"nvidia-drm.fbdev=1"
"nvidia-drm.modeset=0"
# "nvidia.NVreg_PreserveVideoMemoryAllocations=0"
"amd_iommu=on"
# "vfio-pci.ids=\"10de:2489,10de:228b\""
# "nomodeset"
# "nvidia_drm.modeset=1"
];
boot.blacklistedKernelModules = [
"i915"
"nouveau"
# "nvidia"
# "nvidia-drm"
# "nvidia-uvm"
# "nvidiafb"
# "nvidia_drm"
# "nvidia_modeset"
];
# boot.extraModprobeConfig = ''
# blacklist nvidia
# blacklist nvidia-drm
# blacklist nvidia_drm
# blacklist nvidia-uvm
# blacklist nvidia_uvm
# blacklist nvidia_modeset
# blacklist nvidiafb
# blacklist nouveau
# options nouveau modeset=0
# '';
boot.extraModprobeConfig = ''
blacklist nouveau
options nouveau modeset=0
'';
# services.xserver.videoDrivers = [ "nvidia" ];
services.xserver.videoDrivers = [ "amdgpu" "nvidia" ];
# services.udev.extraRules = ''
# # Remove NVIDIA USB xHCI Host Controller devices, if present
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1"
# # Remove NVIDIA USB Type-C UCSI devices, if present
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{power/control}="auto", ATTR{remove}="1"
# # Remove NVIDIA Audio devices, if present
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1"
# # Remove NVIDIA VGA/3D controller devices
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1"
# '';
boot.initrd.kernelModules = [
"amdgpu"
"nvidia"
# "nvidia-drm"
"nvidiafb"
# "nvidia-uvm"
# "nvidia-modeset"
# "i2c-nvidia_gpu"
];
hardware.nvidia = {
# Modesetting is required.
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement.enable = true;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = false;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
# Currently alpha-quality/buggy, so false is currently the recommended setting.
open = false;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.beta;
# package = config.boot.kernelPackages.nvidiaPackages.none;
# package = config.boot.kernelPackages.nvidiaPackages.production;
forceFullCompositionPipeline = false;
prime = {
offload = {
enable = true;
enableOffloadCmd = true;
};
reverseSync.enable = false;
# Make sure to use the correct Bus ID values for your system!
# intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:01:0:0";
amdgpuBusId = "PCI:50:0:0"; #For AMD GPU
};
};
users.users.andreas = {
extraGroups = [ "video" "render" ];
};
}

View File

@@ -7,29 +7,53 @@
imports = imports =
[ [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
./graphics/nvidia-stable.nix ./graphics/intel.nix
# ./graphics/nvidia.nix # ./graphics/nvidia.nix
./acer-monitor-edid.nix ./acer-monitor-edid.nix
]; ];
#boot.kernelPackages = pkgs.linuxPackages_latest; # boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-latest;
hardware.enableRedistributableFirmware = true;
# boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest; # boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest;
boot.kernelPackages = pkgs.linuxPackages; # boot.kernelPackages = pkgs.linuxPackages;
boot.loader.efi.canTouchEfiVariables = true;
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.kernelModules = [ "kvm-amd" "4vl2loopback" ]; boot.kernelModules = [ "kvm-amd" "r8125" "4vl2loopback" ];
boot.extraModulePackages = [ pkgs.linuxPackages.v4l2loopback ]; boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback r8125 ];
boot.supportedFilesystems = [ "ntfs" ];
boot.blacklistedKernelModules = [ "r8169" ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76";
fsType = "ext4";
};
boot.blacklistedKernelModules = [ ]; fileSystems."/boot" = {
fileSystems."/" = #device = "/dev/disk/by-uuid/E846-D998";
{ device = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76"; device = "/dev/disk/by-uuid/19BE-8BAA";
fsType = "ext4"; fsType = "vfat";
}; options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/boot" = # Mount ntfs partition
{ device = "/dev/disk/by-uuid/E846-D998"; # fileSystems."/run/media/627C3BDF7C3BAD23" = {
fsType = "vfat"; # device = "/dev/disk/by-uuid/627C3BDF7C3BAD23";
options = [ "fmask=0077" "dmask=0077" ]; # 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"];
# };
@@ -43,6 +67,7 @@
boot.resumeDevice = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76"; # the unlocked drive mapping boot.resumeDevice = "/dev/disk/by-uuid/563805a1-5277-4488-bbdd-c1a7ed37be76"; # the unlocked drive mapping
boot.kernelParams = [ boot.kernelParams = [
"resume_offset=78399488" #sudo filefrag -v /var/lib/swapfile|awk 'NR==4{gsub(/\./,"");print $4;}' "resume_offset=78399488" #sudo filefrag -v /var/lib/swapfile|awk 'NR==4{gsub(/\./,"");print $4;}'
"r8125.aspm=0" # realtek network adapter fix
]; ];
security.protectKernelImage = false; security.protectKernelImage = false;

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 = ''