{ pkgs, lib, ... }:

{
  imports = [
    ./../../home/base.nix
    ./../../home/alacritty.nix
  ];

  home.packages = with pkgs; [
    # GUI Applications
    chromium
    discord
    element-desktop
    emacs-gtk
    papers
    jellyfin-media-player
    kitty
    libreoffice
    mpv
    mumble
    pavucontrol
    prismlauncher
    swayimg
    spotify
    thunderbird

    # Window Manager Extras
    bibata-cursors
    hyprcursor
    hypridle
    hyprlock
    hyprpaper
    hyprshot
    hyprswitch
    nautilus
    networkmanager
    rofi-rbw-wayland
    swaynotificationcenter
    waybar
    wl-clipboard
    cliphist

    # Misc tools
    bc
    catimg
    dante
    dig
    go
    hunspellDicts.en_US
    hunspellDicts.nb_NO
    jq
    nixpkgs-2211.remmina
    ollama-rocm
    openssl
    playerctl
    pwgen
    traceroute
    w3m

    (python312.withPackages (ps: with ps; [
      numpy
      pycryptodome
      requests
    ]))
  ];

  programs = {
    aerc = {
      enable = true;
      package = pkgs.aerc;
    };
    alacritty = {
      enable = true;
      settings.window.opacity = 0.92;
    };
    firefox.enable = true;
    neovim.plugins = with pkgs.vimPlugins; [ copilot-vim ];
    rbw = {
      enable = true;
      settings = {
        base_url = "https://pw.feal.no";
        email = "felix@albrigtsen.it";
        pinentry = pkgs.pinentry-gnome3;
      };
    };
    rofi = {
      enable = true;
      theme = "iggy";
      package = pkgs.rofi-wayland;
    };
    zsh = {
      shellAliases."rebuild" = "sudo nixos-rebuild switch --flake /config";
      prezto.pmodules = [ "ssh" ];
    };
  };

  home.pointerCursor = {
    name = "Bibata-Modern-Ice";
    package = pkgs.bibata-cursors;
    size = 24;
    gtk.enable = true;
    x11 = {
      enable = true;
      defaultCursor = true;
    };
  };

  xdg.mimeApps = {
    enable = true;

    defaultApplications = {
      "text/html" = "firefox.desktop";
      "x-scheme-handler/http" = "firefox.desktop";
      "x-scheme-handler/https" = "firefox.desktop";
      "x-scheme-handler/about" = "firefox.desktop";
      "x-scheme-handler/unknown" = "firefox.desktop";

      "inode/directory" = "org.gnome.Nautilus.desktop";
      "application/pdf" = "org.gnome.Papers.desktop";

    } // builtins.listToAttrs (
      builtins.map
        ( imgType: { name = "image/${imgType}"; value = "swayimg.desktop"; } )
        [ "apng" "bmp" "gif" "heic" "heif" "jpeg" "png" "svg" "svg+xml" "tiff" ]
    );
  };

  home.stateVersion = "24.11";
}