{
  pkgs,
  inputs,
  common,
  ...
}:
let
  username = common.username;
  dir = common.dir;
in
{
  imports = [
    inputs.catppuccin.homeModules.catppuccin
    ./btop.nix
    ./cava
    ./cursors.nix
    ./default-applications.nix
    ./development
    ./fastfetch.nix
    ./fish.nix
    ./freetube.nix
    ./gtk.nix
    ./kitty.nix
    ./media
    ./nextcloud.nix
    ./rofi
    ./wlogout
    ./hyprland
    ./spicetify.nix
    ./yazi
    ./zen
  ];

  dconf.enable = true;

  home = {
    username = username;
    homeDirectory = dir.home;

    sessionVariables = {
      XDG_PICTURES_DIR = dir.pictures; # Define the default dir for pictures
    };

    # You can update Home Manager without changing this value. See
    # the Home Manager release notes for a list of state version
    # changes in each release.
    stateVersion = common.system.version;
  };

  programs = {
    btop.enable = true;

    # Let Home Manager install and manage itself.
    home-manager.enable = true;
  };

  services = {
    gpg-agent = {
      enable = true;
      pinentryPackage = pkgs.pinentry-curses;
    };
  };
}
