{ config, lib, pkgs, self, ... }:

{
  programs.hyprland.enable = true;
  # Optional, hint electron apps to use wayland:
  environment.sessionVariables.NIXOS_OZONE_WL = "1";

  # display manager
  programs.regreet = {
    enable = true;
    settings = {
      GTK = {
        application_prefer_dark_theme = true;
      };
    };
  };

  # have portals
  xdg.portal.enable = true;
  xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];

  # install basic fonts
  fonts = {
    fontDir.enable = true; # fixes some programs
    packages = with pkgs; [ 
      noto-fonts # most langs and emojis
      noto-fonts-cjk-sans # gets japanese and chinese langs
      nerdfonts  # programming fonts
      corefonts  # basic web fonts
    ];
  };

  programs.hyprlock.enable = true;

  # Enable sound.
  security.rtkit.enable = true;
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    jack.enable = true;
  };

  environment.systemPackages = with pkgs; [
    kitty
    waybar
    swww
    grim
    slurp
    wl-clipboard
    brightnessctl
    helvum
    ulauncher
    playerctl
    swaynotificationcenter
    flameshot
  ];
}
