{ config, lib, pkgs, inputs, ... }: let nc = config.nathan.config; in with lib; { config = mkMerge [ (mkIf nc.hyprland.enableGreetd { # Greetd for login # programs.regreet = { # enable = true; # settings = { GTK = { font_name = "Roboto 16"; }; }; # }; # services.greetd = { # enable = true; # settings = { default_session.command = "cage -s -- regreet"; }; # }; environment.systemPackages = with pkgs; [ # Greeter packages cage config.programs.regreet.package gnome.adwaita-icon-theme ]; }) (mkIf nc.hyprland.enable { # Turn on GDM for login services.xserver = { # enable = true; enable = false; autorun = true; # Enable plasma for the applications desktopManager.plasma5.enable = true; displayManager.defaultSession = "hyprland"; displayManager.gdm = { enable = true; wayland = true; }; }; # Setup drivers hardware.opengl = { # Enable vulkan driSupport = true; # Same as above, but enable 32 bit legacy support (for games) driSupport32Bit = true; }; # Basic packages that are effectively required for a graphical system environment.systemPackages = with pkgs; [ # GTK Theming gtk-engine-murrine gtk_engines gsettings-desktop-schemas lxappearance kde-gtk-config ]; qt.platformTheme = "qt5ct"; # Enable and configure hyperland programs.hyprland = { enable = true; xwayland = { enable = true; }; }; # Make swaylock work # https://github.com/NixOS/nixpkgs/issues/158025 security.pam.services.swaylock = { }; environment.sessionVariables = { MOZ_ENABLE_WAYLAND = "1"; }; }) ]; }