{ pkgs, ... }:
let
  nord = import ./theme.nix;
  themeSize = "compact"; # [ "standard" "compact" ]
  themeAccent = "all"; # [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ]
  themeVariant = "nord"; # [ "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" "black" "rimless" "normal" "float" ]
  themeColor = "dark"; # [ "standard" "light" "dark" ]
  iconThemeVariant = "all"; # [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ]
  iconScheme = "nord"; # [ "default" "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" ]

  sddmThemePkg = pkgs.sddm-astronaut.override {
    embeddedTheme = "astronaut";
    themeConfig = {
      Background = "/run/wallpaper.jpg";
    };
  };
in
{
  # Username
  user = "matt";

  # Displays
  displayLeft = {
    input = "eDP-1";
    resolution = "3456x2234"; # "3356x2160";
    refreshRate = "60.00000";
  };
  displayRight = {
    input = "DP-2";
    resolution = "3840x2160";
    refreshRate = "240.00000";
  };

  # Cursor
  cursorTheme = "macOS";
  cursorThemePkg = pkgs.apple-cursor;
  cursorSize = 24;

  # GTK
  gtkThemeSize = themeSize;
  gtkThemeAccent = themeAccent;
  gtkThemeVariant = themeVariant;
  gtkThemeColor = themeColor;
  gtkTheme = "Colloid-Dark-Compact-Nord";
  gtkThemePkg = pkgs.colloid-gtk-theme.override {
    sizeVariants = [ themeSize ];
    colorVariants = [ themeColor ];
    themeVariants = [ themeAccent ];
    tweaks = [ themeVariant ];
  };

  # Icons
  iconThemeScheme = iconScheme;
  iconTheme = "Colloid-Nord-Dark";
  iconThemePkg = pkgs.colloid-icon-theme.override {
    schemeVariants = [ iconScheme ];
    colorVariants = [ iconThemeVariant ];
  };

  # Fonts
  fontName = "JetBrainsMono NFM";
  fontPackage = pkgs.nerd-fonts.jetbrains-mono;
  fontSize = 12;

  # SDDM/Locking
  sddm = {
    themeName = "sddm-astronaut-theme";
    package = sddmThemePkg;
  };
  lockScreenTimer = 900; # 15 min
  screenOffTimer = 930; # 15.5 min
  suspendTimer = 3600; # 1hr

  # Packages needed for the theme(s)
  requiredPkgs = with pkgs; [
    adwaita-icon-theme
    adwaita-icon-theme
    apple-cursor
    catppuccin
    catppuccin-gtk
    catppuccin-qt5ct
    catppuccin-sddm
    colloid-gtk-theme
    colloid-icon-theme
    nemo
    nemo-python
    nemo-emblems
    nemo-preview
    nemo-seahorse
    nemo-fileroller
    nemo-qml-plugin-dbus
    papirus-folders
    sddm-astronaut
  ];

  defaultApps = {
    browser = pkgs.firefox;
    editor = pkgs.micro;
    fileExplorer = pkgs.nemo;
    visual = pkgs.vscodium;
    terminal = pkgs.kitty;
    office = pkgs.onlyoffice-bin_latest;
    video = pkgs.vlc;
    imageViewer = pkgs.nomacs;
  };

  theme = nord;
}
