diff --git a/modules/home-manager/desktops/hyprland/default.nix b/modules/home-manager/desktops/hyprland/default.nix index 50ae424..fcc979c 100644 --- a/modules/home-manager/desktops/hyprland/default.nix +++ b/modules/home-manager/desktops/hyprland/default.nix @@ -8,11 +8,7 @@ }; settings = { env = [ - "LIBVA_DRIVER_NAME,nvidia" "XDG_SESSION_TYPE,wayland" - "GBM_BACKEND,nvidia-drm" - "__GLX_VENDOR_LIBRARY_NAME,nvidia" - "WLR_NO_HARDWARE_CURSORS,1" "NIXOS_OZONE_WL,1" # Gnome file manager fix "GIO_EXTRA_MODULES,${pkgs.gnome.gvfs}/lib/gio/modules" @@ -72,6 +68,8 @@ misc = { layers_hog_keyboard_focus = false; disable_splash_rendering = true; + disable_hyprland_logo = true; + background_color = "0x000000"; force_default_wallpaper = 0; vrr = 1; }; diff --git a/modules/nixos/boot/quiet.nix b/modules/nixos/boot/quiet.nix index ffd5838..25a200a 100644 --- a/modules/nixos/boot/quiet.nix +++ b/modules/nixos/boot/quiet.nix @@ -14,21 +14,24 @@ in { systemd-boot.consoleMode = "max"; }; - plymouth.enable = true; + plymouth = { + enable = true; + theme = "text"; + }; kernelParams = [ # Redirect all kernel messages to a console off screen - #"fbcon=vc:2-6" - #"console=tty1" + "fbcon=vc:2-6" + "console=tty1" "splash" "quiet" - #"rd.udev.log_level=3" - #"rd.systemd.show_status=false" - #"udev.log_priority=3" - #"boot.shell_on_fail" - #"vt.global_cursor_default=0" # no cursor blinking + "rd.udev.log_level=3" + "rd.systemd.show_status=false" + "udev.log_priority=3" + "boot.shell_on_fail" + "vt.global_cursor_default=0" # no cursor blinking ]; consoleLogLevel = 0; initrd.verbose = false; diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 77e0988..effad97 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -10,7 +10,8 @@ ./hardware/audio.nix ./hardware/gbmonctl.nix - ./hardware/nvidia.nix + ./hardware/nvidia-proprietary.nix + ./hardware/nvidia-nouveau.nix ./hardware/cc1.nix ./hardware/fv43u.nix ./hardware/virtual-camera.nix diff --git a/modules/nixos/desktops/hyprland.nix b/modules/nixos/desktops/hyprland.nix index 6ca6db3..93313fb 100644 --- a/modules/nixos/desktops/hyprland.nix +++ b/modules/nixos/desktops/hyprland.nix @@ -10,29 +10,56 @@ in { }; config = mkIf cfg.enable { - services.getty.autologinUser = "${username}"; - services.getty.extraArgs = [ "--noclear" "--noissue" "--nonewline" ]; - services.getty.loginOptions = "-p -f -- \\u"; # preserve environment - - services.dbus.enable = true; xdg.portal = { enable = true; extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-kde ]; }; - services.pcscd.enable = true; + services = { + getty.autologinUser = "${username}"; + getty.extraArgs = [ "--noclear" "--noissue" "--nonewline" ]; + getty.loginOptions = "-p -f -- \\u"; # preserve environment - # nautilus on non-gnome - services.gvfs.enable = true; - # fix pinentry on non-gnome - services.dbus.packages = with pkgs; [ gcr ]; - services.gnome.gnome-online-accounts.enable = true; - services.gnome.evolution-data-server.enable = true; + dbus.enable = true; - programs.hyprland.enable = true; - programs.kdeconnect.enable = true; + pcscd.enable = true; + + # nautilus on non-gnome + gvfs.enable = true; + # fix pinentry on non-gnome + dbus.packages = with pkgs; [ gcr ]; + gnome.gnome-online-accounts.enable = true; + gnome.evolution-data-server.enable = true; + }; + + programs = { + hyprland.enable = true; + kdeconnect.enable = true; + }; environment.sessionVariables.NIXOS_OZONE_WL = "1"; + + /* systemd.services = { + plymouth-quit-hyprland = mkIf config.boot.quiet.enable { + description = "Pause plymouth animation"; + conflicts = [ "plymouth-quit.service" ]; + after = [ + "plymouth-quit.service" + "rc-local.service" + "plymouth-start.service" + "systemd-user-sessions.service" + ]; + serviceConfig = { + Type = "oneshot"; + ExecStartPre = "${pkgs.plymouth}/bin/plymouth deactivate"; + ExecStartPost = [ + "${pkgs.coreutils}/bin/sleep 30" + "${pkgs.plymouth}/bin/plymouth quit --retain-splash" + ]; + }; + }; + }; + */ }; } diff --git a/modules/nixos/hardware/nvidia-nouveau.nix b/modules/nixos/hardware/nvidia-nouveau.nix new file mode 100644 index 0000000..2769fb2 --- /dev/null +++ b/modules/nixos/hardware/nvidia-nouveau.nix @@ -0,0 +1,31 @@ +{ pkgs, lib, config, ... }: +with lib; + +let cfg = config.hardware.nvidia.preset.nouveau; + +in { + options.hardware.nvidia.preset.nouveau = { + enable = mkEnableOption + "Enable the free Nouveau NVIDIA driver with some sane defaults"; + }; + + config = mkIf cfg.enable { + hardware.opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + }; + + boot = { + kernelParams = [ "nouveau.modeset=1" ]; + kernelModules = [ "nouveau" ]; + initrd.kernelModules = [ "nouveau" ]; + }; + + environment.systemPackages = with pkgs; [ + glxinfo + libva-utils + vulkan-tools + ]; + }; +} diff --git a/modules/nixos/hardware/nvidia.nix b/modules/nixos/hardware/nvidia-proprietary.nix similarity index 87% rename from modules/nixos/hardware/nvidia.nix rename to modules/nixos/hardware/nvidia-proprietary.nix index 91b0080..d1bf6db 100644 --- a/modules/nixos/hardware/nvidia.nix +++ b/modules/nixos/hardware/nvidia-proprietary.nix @@ -19,7 +19,7 @@ in { services.xserver.videoDrivers = [ "nvidia" ]; - boot.kernelParams = [ "nvidia_drm.fbdev=1" ]; + boot.kernelParams = [ "fbdev=1" "nvidia_drm.fbdev=1" ]; boot.kernelModules = [ "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" ]; boot.initrd.kernelModules = @@ -39,6 +39,9 @@ in { variables = { VDPAU_DRIVER = "va_gl"; LIBVA_DRIVER_NAME = "nvidia"; + GBM_BACKEND = "nvidia-drm"; + __GLX_VENDOR_LIBRARY_NAME = "nvidia"; + WLR_NO_HARDWARE_CURSORS = "1"; }; systemPackages = with pkgs; [ glxinfo