{
  pkgs,
  inputs,
  ...
}: {
  imports = [
    inputs.nvf.homeManagerModules.default
  ];

  programs.nvf = {
    enable = true;
    enableManpages = true;

    settings.vim = {
      theme = {
        enable = true;
        transparent = true;

        name = "catppuccin";
        style = "mocha";
      };

      lsp = {
        enable = true;
        null-ls.enable = false;

        inlayHints.enable = true;
        formatOnSave = true;
        lspkind.enable = true;
        lspsaga.enable = true;
        trouble.enable = true;
      };

      debugger = {
        nvim-dap = {
          enable = true;
          ui.enable = true;
        };
      };

      options = {
        tabstop = 2;
        expandtab = false;
        autoindent = true;
        shiftwidth = 2;
      };

      clipboard = {
        enable = true;
        registers = "unnamedplus";
        providers = {
          xclip = {
            enable = true;
            package = pkgs.xclip;
          };
        };
      };

      languages = {
        enableFormat = true;
        enableExtraDiagnostics = true;

        nix.enable = true;
        nix.extraDiagnostics.enable = true;
        markdown.enable = true;

        nu.enable = true;
        bash.enable = true;

        css.enable = true;
        html = {
          enable = true;
          lsp.servers = [
            "emmet-ls"
            "superhtml"
          ];
        };

        python.enable = true;

        sql.enable = true;
        ts.enable = true;
        zig.enable = true;
        csharp.enable = true;
        rust = {
          enable = true;
          extensions.crates-nvim.enable = true;
        };
      };

      visuals = {
        nvim-web-devicons.enable = true;
        nvim-cursorline.enable = true;
        cinnamon-nvim.enable = true;
        fidget-nvim.enable = true;

        highlight-undo.enable = true;
        indent-blankline.enable = true;
      };

      statusline = {
        lualine = {
          enable = true;
        };
      };

      autopairs.nvim-autopairs.enable = true;

      autocomplete = {
        nvim-cmp.enable = true;
        blink-cmp.enable = false;
      };

      snippets.luasnip.enable = true;

      telescope.enable = true;

      git = {
        enable = true;
        gitsigns.enable = true;
        gitsigns.codeActions.enable = false;
      };

      dashboard.alpha.enable = true;

      notify.nvim-notify.enable = true;

      projects.project-nvim.enable = true;

      utility = {
        ccc.enable = true;
        diffview-nvim.enable = true;
        icon-picker.enable = true;
        surround.enable = true;

        motion = {
          hop.enable = true;
          leap.enable = true;
        };
      };

      comments.comment-nvim.enable = true;

      ui = {
        noice.enable = true;
        colorizer.enable = true;
        illuminate.enable = true;

        fastaction.enable = true;
      };
    };
  };
}
