{
  config,
  lib,
  pkgs,
  inputs',
  ...
}: let
  cfg = config.modules.system.programs.editors.helix;
  inherit (config.modules.other.system) username;
  inherit (lib) mkIf getExe makeBinPath;
in {
  config = mkIf cfg.enable {
    home-manager.users.${username} = {
      programs.helix = {
        enable = true;
        # thanks fuf, this is great!
        package = inputs'.helix.packages.default.overrideAttrs (previousAttrs: {
          makeWrapperArgs = with pkgs;
            previousAttrs.makeWrapperArgs
            or []
            ++ [
              "--suffix"
              "PATH"
              ":"
              (makeBinPath [
                clang-tools
                marksman
                nil
                bash-language-server
                shellcheck
                typst-lsp
              ])
            ];
        });
        settings = {
          editor = {
            indent-guides.render = true;
            lsp.display-inlay-hints = true;
            line-number = "relative";
            mouse = true;
            bufferline = "multiple";
            soft-wrap.enable = true;
            lsp.display-messages = true;
            cursor-shape = {insert = "bar";};
            statusline.left = ["mode" "spinner" "version-control" "file-name"];
          };
          keys.normal = {
            C-g = [":new" ":insert-output lazygit" ":buffer-close!" ":redraw"];
            esc = ["collapse_selection" "keep_primary_selection"];
            A-H = "goto_previous_buffer";
            A-L = "goto_next_buffer";
            A-w = ":buffer-close";
          };
        };
        languages = {
          language-server = {
            nil = {
              command = getExe pkgs.nil;
              config.nil.formatting.command = ["${getExe pkgs.alejandra}" "-q"];
            };
          };
        };
      };
    };
  };
}
