aboutsummaryrefslogtreecommitdiffstats
path: root/modules/development/nixvim/keymaps.nix
blob: 254b40d6ede78ad9674abc292cdd0ac220af88ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Keyboard shortcut configuration for nixvim
{ config, lib, ... }:
let
  cfg = config.development.nixvim;
in
{
  config.programs.nixvim.keymaps = lib.mkIf cfg.enable [
    # set the <space> key to nop for normal and visual modes as we are tyring
    # to use it as our <leader>
    {
      mode = [
        "n"
        "v"
      ];
      key = "<space>";
      action = "<nop>";
      options.desc = "Disable leader delay";
    }
    # window navigation
    {
      key = "<c-h>";
      action = "<c-w>h";
      options.desc = "Move to left window";
    }
    {
      key = "<c-j>";
      action = "<c-w>j";
      options.desc = "Move to bottom window";
    }
    {
      key = "<c-k>";
      action = "<c-w>k";
      options.desc = "Move to top window";
    }
    {
      key = "<c-l>";
      action = "<c-w>l";
      options.desc = "Move to right window";
    }
    # window resizing
    {
      key = "<C-=>";
      action = "<c-w>+";
      options.desc = "Increase window height";
    }
    {
      key = "<C-->";
      action = "<c-w>-";
      options.desc = "Decrease window height";
    }
    {
      key = "<C-.>";
      action = "<c-w>>";
      options.desc = "Increase window height";
    }
    {
      key = "<C-,>";
      action = "<c-w><";
      options.desc = "Decrease window height";
    }
    # scrolling
    {
      key = "<c-d>";
      action = "<c-d>zz";
      options.desc = "Scroll half page down and center";
    }
    {
      key = "<c-u>";
      action = "<c-u>zz";
      options.desc = "Scroll half page up and center";
    }
    {
      key = "<c-f>";
      action = "<c-f>zz";
      options.desc = "Scroll full page down and center";
    }
    {
      key = "<c-b>";
      action = "<c-b>zz";
      options.desc = "Scroll full page up and center";
    }
  ];
}