{
  lib,
  inputs,
  config,
  pkgs,
  username,
  project,
  host,
  version,
  ...
}: {
  # Home Manager needs a bit of information about you and the
  # paths it should manage.
  home.username = username;
  home.homeDirectory = "/home/${username}";
  home.packages = [
    (import ./ncli.nix {
      inherit pkgs host project;
      backupFiles = [
        ".gtkrc-2.0.backup"
        ".config/gtk-3.0/gtk.css.backup"
        ".config/gtk-3.0/settings.ini.backup"
        ".config/gtk-4.0/gtk.css.backup"
        ".config/gtk-4.0/settings.ini.backup"
        ".config/niri/config.kdl"
      ];
    })
  ];

  imports = [
    #./neovim-home.nix
    ./desktop-entries.nix
  ];

  # This value determines the Home Manager release that your
  # configuration is compatible with. This helps avoid breakage
  # when a new Home Manager release introduces backwards
  # incompatible changes.
  #
  # 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.
  home.stateVersion = version;

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

    zoxide = {
      enable = true;
      #enableZshIntegration = true;
      #options = [
      #  "--cmd cd"
      #];
    };

    kitty = {
      enable = true;
      settings = {
        #Disabled Because of stylix
        background_opacity = lib.mkForce "0.2"; #The higher the value, the darker the console

        background_blur = lib.mkForce 10;
      };
    };

    git = {
      enable = true;
      settings = {
        user = {
          name = "Cookiez";
          email = "jaden-puerkenauer@web.de";
          init.defaultBranch = "main";
          credentials.helper = "store";
        };
      };
    };
  }; #End of programs = {};
}
