{
  config,
  lib,
  ...
}: let
  cfg = config.soispha.programs.nvim;
in {
  home-manager.users.soispha.programs.nixvim = lib.mkIf cfg.enable {
    plugins.comment = {
      enable = true;
      settings = {
        padding = true;
        sticky = true;
        mappings = {
          basic = false;
          extra = false;
        };
      };
    };
    keymaps = [
      {
        key = "gcc";
        mode = "v";
        action = "<Plug>(comment_toggle_linewise_visual)";
        options.desc = "toggle the current line in a linewise comment";
      }
      {
        key = "gbc";
        mode = "v";
        action = "<Plug>(comment_toggle_blockwise_visual)";
        options.desc = "toggle the current line in a blockwise comment";
      }
      {
        key = "gcc";
        mode = "n";
        action = "<Plug>(comment_toggle_linewise_current)";
        options.desc = "toggle the current line in a linewise comment";
      }
      {
        key = "gbc";
        mode = "n";
        action = "<Plug>(comment_toggle_blockwise_current)";
        options.desc = "toggle the current line in a blockwise comment";
      }
    ];
  };
}