{ ... }:
let
  stepVertical = 2;
  stepHorizontal = 4;
in
{
  text = ''
    -- Switch windows.
    rekey_normal("<Leader>a", "<C-w>h")
    rekey_normal("<Leader>d", "<C-w>l")
    rekey_normal("<Leader>s", "<C-w>j")
    rekey_normal("<Leader>w", "<C-w>k")

    -- Switch buffers.
    rekey_normal("<Leader>E", "<cmd>BufferLineMoveNext<cr>")
    rekey_normal("<Leader>Q", "<cmd>BufferLineMovePrev<cr>")
    rekey_normal("<Leader>e", "<cmd>BufferLineCycleNext<cr>")
    rekey_normal("<Leader>q", "<cmd>BufferLineCyclePrev<cr>")

    -- Splits.
    rekey_normal("<Leader>\\",  "<cmd>vsplit<cr>")
    rekey_normal("<Leader>-", "<cmd>split<cr>")
    rekey_normal("<Leader>=",  "<C-w>=") -- Equalize split sizes.
    rekey_normal("<Leader>c",  "<C-w>q") -- Close split.

    -- Resize splits.
    rekey_normal("<Leader>h", "${toString stepHorizontal}<C-w><")
    rekey_normal("<Leader>l", "${toString stepHorizontal}<C-w>>")
    rekey_normal("<Leader>j", "${toString stepVertical}<C-w>+")
    rekey_normal("<Leader>k", "${toString stepVertical}<C-w>-")

    -- Move splits.
    rekey_normal("<Leader>A", "<C-w>A")
    rekey_normal("<Leader>D", "<C-w>D")
    rekey_normal("<Leader>S", "<C-w>S")
    rekey_normal("<Leader>W", "<C-w>W")
  '';
}