{ config, pkgs, user, ... }:

let
  theme = pkgs.nordic;
  themeName = "Nordic";
in
{
  imports = [
    ../vim.nix
    ../ranger.nix
    ../fcitx5.nix
    ../picom.nix
    ../i3.nix
    ../polybar
    ../rofi
    ../git.nix
    ../terminal.nix
  ];

  programs.home-manager.enable = true;

  gtk = {
    enable = true;
    iconTheme = {
      name = "${themeName}";
      package = "${theme}";
    };
    theme = {
      name = "${themeName}";
      package = "${theme}";
    };
    # Remove minimize, maximize, and close buttons
    gtk3.extraConfig = {
      gtk-decoration-layout = "appmenu:none";
    };
    gtk4.extraConfig = {
      gtk-decoration-layout = "appmenu:none";
    };
  };

  qt = {
    enable = true;
    platformTheme = "gtk";
  };

  home = {
    username = "${user}";
    homeDirectory = "/home/${user}";

    stateVersion = "22.05";

    packages = with pkgs; [
      # Command line utilities
      wget
      neofetch
      trash-cli # aliased to rm in .bashrc

      # GUI applications
      firefox
      discord
      gnome.nautilus
      gimp
    ];
  };

  programs.bash = {
    enable = true;
    shellAliases = {
      g = "git";
      ga = "g add";
      gc = "g commit -m ";
      gu = "ga . && gc";
      gs = "g status";
      gi = "g init";
      gp = "g push";
      gf = "g pull";
      gC = "g clone";
      goops = "g reset --soft HEAD^";

      v = "vim";
      rm = "trash-put";
    };
  };
}
