|
16 | 16 | ... |
17 | 17 | }: |
18 | 18 |
|
19 | | -# https://nixos.wiki/wiki/FAQ#How_can_I_install_a_package_from_unstable_while_remaining_on_the_stable_channel.3F |
20 | | -# https://discourse.nixos.org/t/differences-between-nix-channels/13998 |
21 | | - |
22 | 19 | { |
23 | 20 | # https://nixos.wiki/wiki/NixOS_modules |
24 | 21 | # https://nixos-and-flakes.thiscute.world/nixos-with-flakes/start-using-home-manager |
25 | 22 | imports = |
26 | 23 | [ |
27 | 24 | ./hardware-configuration.nix |
28 | | - ./hardware-graphics.nix |
| 25 | + #./hardware-graphics.nix |
29 | 26 | ./sysctl.nix |
30 | 27 | ./wireless_desktop.nix |
31 | 28 | ./locale.nix |
|
43 | 40 | ./docker-daemon.nix |
44 | 41 | #./smokeping.nix |
45 | 42 | ./distributed-builds.nix |
| 43 | + ./hyprland.nix |
46 | 44 | ]; |
47 | 45 |
|
48 | 46 | boot = { |
|
56 | 54 |
|
57 | 55 | # https://nixos.wiki/wiki/Linux_kernel |
58 | 56 | #kernelPackages = pkgs.linuxPackages; # need to run this old kernel to allow nvidia driver to compile :( |
59 | | - kernelPackages = pkgs.unstable.linuxPackages; |
60 | | - #boot.kernelPackages = pkgs.linuxPackages_latest; |
| 57 | + #kernelPackages = pkgs.linuxPackages; |
| 58 | + kernelPackages = pkgs.linuxPackages_latest; |
61 | 59 | #boot.kernelPackages = pkgs.linuxPackages_rpi4 |
62 | 60 |
|
63 | 61 | # # https://github.com/tolgaerok/nixos-2405-gnome/blob/main/core/boot/efi/efi.nix#L56C5-L56C21 |
|
68 | 66 | # #"nomodeset" |
69 | 67 | # ]; |
70 | 68 |
|
| 69 | + initrd.kernelModules = [ |
| 70 | + "amdgpu" |
| 71 | + ]; |
| 72 | + |
71 | 73 | blacklistedKernelModules = [ |
72 | 74 | "nouveau" |
73 | 75 | #"i915" |
|
79 | 81 |
|
80 | 82 | extraModulePackages = [ |
81 | 83 | config.boot.kernelPackages.v4l2loopback |
82 | | - #pkgs.unstable.linuxPackages.nvidiaPackages.production |
83 | 84 | ]; |
84 | 85 |
|
85 | 86 | extraModprobeConfig = '' |
|
91 | 92 | # https://fzakaria.com/2025/02/26/nix-pragmatism-nix-ld-and-envfs |
92 | 93 | # Enable nix-ld for better compatibility with non-Nix binaries |
93 | 94 | programs.nix-ld = { |
94 | | - enable = false; |
| 95 | + enable = true; |
95 | 96 | # Add commonly needed libraries |
96 | 97 | libraries = with pkgs; [ |
97 | 98 | stdenv.cc.cc.lib |
|
103 | 104 |
|
104 | 105 | # Enable envfs for better compatibility with FHS expectations |
105 | 106 | services.envfs = { |
106 | | - enable = false; |
| 107 | + enable = true; |
107 | 108 | }; |
108 | 109 |
|
109 | 110 | # For OBS |
|
131 | 132 | services.udev.packages = [ pkgs.gnome-settings-daemon ]; |
132 | 133 | # services.udev.packages = [ pkgs.gnome.gnome-settings-daemon ]; |
133 | 134 |
|
134 | | - # https://nixos.wiki/wiki/NixOS_Wiki:Audio |
135 | | - hardware.pulseaudio.enable = false; # Use Pipewire, the modern sound subsystem |
| 135 | + # # https://nixos.wiki/wiki/NixOS_Wiki:Audio |
| 136 | + # services.pulseaudio.enable = false; # Use Pipewire, the modern sound subsystem |
136 | 137 |
|
137 | 138 | security.rtkit.enable = true; # Enable RealtimeKit for audio purposes |
138 | 139 |
|
|
182 | 183 | environment.sessionVariables = { |
183 | 184 | TERM = "xterm-256color"; |
184 | 185 | #MY_VARIABLE = "my-value"; |
185 | | - #ANOTHER_VARIABLE = "another-value"; |
186 | 186 | }; |
187 | 187 |
|
188 | 188 | users.users.das = { |
|
209 | 209 | enableSSHSupport = true; |
210 | 210 | }; |
211 | 211 |
|
212 | | - # # https://wiki.hyprland.org/Nix/Hyprland-on-NixOS/ |
213 | | - programs.hyprland = { |
| 212 | + hardware.graphics = { |
| 213 | + enable = true; # auto includes mesa |
| 214 | + package = pkgs.mesa; |
| 215 | + extraPackages = with pkgs; [ |
| 216 | + libglvnd |
| 217 | + libva-vdpau-driver |
| 218 | + libvdpau-va-gl |
| 219 | + rocmPackages.clr.icd |
| 220 | + ]; |
| 221 | + }; |
| 222 | + services.xserver = { |
| 223 | + enable = true; |
| 224 | + videoDrivers = [ "amdgpu" ]; |
| 225 | + xkb = { |
| 226 | + layout = "us"; |
| 227 | + variant = ""; |
| 228 | + }; |
| 229 | + }; |
| 230 | + |
| 231 | + services.desktopManager.gnome.enable = true; |
| 232 | + services.displayManager.gdm.enable = true; |
| 233 | + |
| 234 | + # https://nixos.wiki/wiki/AMD_GPU |
| 235 | + systemd.tmpfiles.rules = [ |
| 236 | + "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}" |
| 237 | + ]; |
| 238 | + systemd.services.lactd.wantedBy = [ "multi-user.target" ]; |
| 239 | + |
| 240 | + xdg.portal = { |
214 | 241 | enable = true; |
215 | | - # Nvidia patches are no longer needed |
216 | | - #nvidiaPatches = true; |
217 | | - xwayland.enable = true; |
| 242 | + extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; |
| 243 | + config.common.default = "gtk"; |
218 | 244 | }; |
| 245 | + |
| 246 | + # # https://wiki.hyprland.org/Nix/Hyprland-on-NixOS/ |
219 | 247 | # programs.hyprland = { |
220 | 248 | # enable = true; |
221 | | - # # set the flake package |
222 | | - # package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; |
223 | | - # # make sure to also set the portal package, so that they are in sync |
224 | | - # portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; |
225 | | - # }; |
226 | | - |
227 | | - # programs.chromium.enable = true; |
228 | | - # # programs.chromium.package = pkgs.google-chrome; |
229 | | - # # https://nixos.wiki/wiki/Chromium#Enabling_native_Wayland_support |
230 | | - # nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland"; |
231 | | - # #programs.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland"; |
232 | | - |
233 | | - # programs.firefox.enable = true; |
234 | | - # # # https://github.com/TLATER/dotfiles/blob/master/nixos-modules/nvidia/default.nix |
235 | | - # programs.firefox.preferences = { |
236 | | - # "media.ffmpeg.vaapi.enabled" = true; |
237 | | - # "media.rdd-ffmpeg.enabled" = true; |
238 | | - # "media.av1.enabled" = true; # Won't work on the 2060 |
239 | | - # "gfx.x11-egl.force-enabled" = true; |
240 | | - # "widget.dmabuf.force-enabled" = true; |
| 249 | + # xwayland.enable = true; |
241 | 250 | # }; |
242 | 251 |
|
243 | 252 | # Open ports in the firewall. |
|
277 | 286 |
|
278 | 287 | # https://wiki.nixos.org/wiki/Laptop |
279 | 288 |
|
280 | | - # This value determines the NixOS release from which the default |
281 | | - # settings for stateful data, like file locations and database versions |
282 | | - # on your system were taken. It's perfectly fine and recommended to leave |
283 | | - # this value at the release version of the first install of this system. |
284 | | - # Before changing this value read the documentation for this option |
285 | | - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). |
286 | | - #system.stateVersion = "23.11"; |
287 | | - |
288 | 289 | system.stateVersion = "24.11"; |
289 | 290 |
|
290 | 291 | nixpkgs.config = { |
291 | 292 | allowUnfree = true; |
292 | | - # allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ |
293 | | - # "nvidia-x11" |
294 | | - # "nvidia-settings" |
295 | | - # "nvidia-persistenced" |
296 | | - # ]; |
297 | 293 | }; |
298 | 294 |
|
299 | | - # hardware.opengl = { |
300 | | - # enable = true; |
301 | | - # driSupport = true; |
302 | | - # driSupport32Bit = true; |
303 | | - # extraPackages = with pkgs; [ |
304 | | - # vaapiVdpau |
305 | | - # libvdpau-va-gl |
306 | | - # ]; |
307 | | - # }; |
308 | 295 | } |
0 commit comments