{ pkgs, user ? "xenia", hyprland, ... }: { imports = [ ./desktop.nix hyprland.nixosModules.default ]; nixpkgs.overlays = [ (final: prev: { waybar = prev.waybar.overrideAttrs (oldAttrs: { mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; }); }) ]; environment.systemPackages = with pkgs; [ libsForQt5.polkit-kde-agent xdg-utils wlr-randr hyprpaper pipewire wireplumber wtype wl-clipboard grim slurp swayimg pamixer pavucontrol playerctl brightnessctl ]; security.pam.services.swaylock = { }; services = { blueman.enable = true; gvfs.enable = true; tumbler.enable = true; xserver.displayManager = { sessionPackages = [ hyprland.packages.${pkgs.system}.hyprland ]; defaultSession = "hyprland"; }; }; fonts = { packages = with pkgs; [ # normal fonts noto-fonts noto-fonts-cjk noto-fonts-emoji font-awesome # nerdfonts (nerdfonts.override { fonts = [ "FiraCode" ]; }) # icon fonts material-symbols emacs-all-the-icons-fonts material-design-icons weather-icons vscode-extensions.file-icons.file-icons ]; fontconfig = { enable = true; # user defined fonts # the reason there's Noto Color Emoji everywhere is to override DejaVu's # B&W emojis that would sometimes show instead of some Color emojis defaultFonts = { serif = [ "Noto Serif" "Noto Color Emoji" ]; sansSerif = [ "Noto Sans" "Noto Color Emoji" ]; monospace = [ "FiraCode Nerd Font" "Noto Sans" "Noto Color Emoji" ]; emoji = [ "Noto Color Emoji" ]; }; }; }; xdg.portal = { enable = true; extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; }; programs = { hyprland = { enable = true; package = hyprland.packages.${pkgs.system}.hyprland; xwayland.enable = true; }; thunar = { enable = true; plugins = with pkgs.xfce; [ thunar-archive-plugin thunar-volman ]; }; }; }