{ pkgs, lib, ... }: { programs.hyprland = { enable = true; xwayland.enable = true; }; services.getty.autologinUser = "anish"; # Boot straight into Hyprland from the first virtual console on any machine. # No display manager required; tty2-6 remain available as plain shells. environment.loginShellInit = '' if [ "$(tty)" = "/dev/tty1" ]; then exec ${pkgs.hyprland}/bin/Hyprland fi ''; # Machine-agnostic Wayland session variables. # GPU/vendor specific variables live with their hardware module (e.g. modules/hardware/nvidia.nix). environment.sessionVariables = { NIXOS_OZONE_WL = "1"; HYPRCURSOR_ENABLED = "1"; MOZ_ENABLE_WAYLAND = "1"; QT_QPA_PLATFORM = "wayland;xcb"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; CLUTTER_BACKEND = "wayland"; GDK_BACKEND = "wayland,x11,*"; }; # Fonts used across the desktop shell (Silicon Volt theme): # JetBrains Mono for terminal/UI mono, IBM Plex Sans for UI sans, # Instrument Serif for display italics, Nanum Gothic Coding as mono fallback. fonts.packages = with pkgs; [ nerd-fonts.jetbrains-mono nerd-fonts.fira-code font-awesome ibm-plex nanum-gothic-coding ] ++ lib.optional (lib.hasAttr "instrument-serif" pkgs) pkgs.instrument-serif; }