{
  lib,
  pkgs,
  inputs,
  ...
}: {
  colorScheme = inputs.nix-colors.colorSchemes.catppuccin-mocha;

  home = {
    packages = with pkgs;
      [
        duf
        eternal-terminal
        glow
        grc
        iamb
        jamesdsp
        jetbrains-toolbox
        jdk21
        killall
        libnotify
        lm_sensors
        loupe
        mpv
        playerctl
        prismlauncher
        slack
        telegram-desktop
        vesktop
        youki
        jetbrains.clion
        jetbrains.idea-ultimate
      ]
      ++ (with inputs; [
        nixvim.packages.${pkgs.system}.default
      ])
      ++ (with inputs.chaotic.packages.${pkgs.system}; [
        distrobox_git
        firefox_nightly
      ]);

    pointerCursor = {
      gtk.enable = true;
      x11.enable = true;
      name = "Catppuccin-Mocha-Green-Cursors";
      package = pkgs.catppuccin-cursors.mochaGreen;
      size = 24;
    };

    stateVersion = "24.05";
  };

  dconf.settings = {
    "org/virt-manager/virt-manager/connections" = {
      autoconnect = ["qemu:///system"];
      uris = ["qemu:///system"];
    };
  };

  xdg.enable = true;

  catppuccin = {
    enable = true;
    flavor = "mocha";
    accent = "green";
  };

  gtk = {
    enable = true;

    catppuccin = {
      enable = true;
      icon.enable = true;
      cursor.enable = true;
      size = "standard";
      tweaks = ["rimless"];
    };
  };

  qt = {
    enable = true;
    style.name = "kvantum";
    style.catppuccin.enable = true;
  };

  programs = {
    nix-index-database.comma.enable = true;
    nix-index.enable = true;
    ripgrep.enable = true;

    fzf = {
      enable = true;
      catppuccin.enable = true;
      colors = with lib; {
        bg = mkForce "-1";
        "bg+" = mkForce "-1";
      };
    };

    eza = {
      enable = true;
      git = true;
      icons = true;
    };

    btop = {
      enable = true;
      catppuccin.enable = true;
    };

    direnv = {
      enable = true;
      nix-direnv.enable = true;
    };
  };

  systemd.user.startServices = "sd-switch";

  nix.package = lib.mkForce pkgs.nixSuper;
}
