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
|
local wezterm = require("wezterm")
local act = wezterm.action
local act_callback = wezterm.action_callback
local function kb(mods, key, action)
return { mods = mods, key = key, action = action }
end
return {
disable_default_key_bindings = true,
keys = {
-- tabs
kb("SHIFT|CTRL", "t", act.SpawnTab("CurrentPaneDomain")),
kb("SHIFT|CTRL", "q", act.CloseCurrentTab({ confirm = false })),
kb("SHIFT|CTRL", "LeftArrow", act.ActivateTabRelative(-1)),
kb("SHIFT|CTRL", "RightArrow", act.ActivateTabRelative(1)),
-- panes
kb("SHIFT|ALT", "w", act.SplitVertical({ domain = "CurrentPaneDomain" })),
kb("SHIFT|ALT", "d", act.SplitHorizontal({ domain = "CurrentPaneDomain" })),
kb("SHIFT|ALT", "q", act.CloseCurrentPane({ confirm = false })),
kb("SHIFT|ALT", "UpArrow", act.ActivatePaneDirection("Up")),
kb("SHIFT|ALT", "DownArrow", act.ActivatePaneDirection("Down")),
kb("SHIFT|ALT", "LeftArrow", act.ActivatePaneDirection("Left")),
kb("SHIFT|ALT", "RightArrow", act.ActivatePaneDirection("Right")),
kb("", "PageUp", act.ScrollByLine(-1)),
kb("SHIFT", "PageUp", act.ScrollByLine(-5)),
kb("", "PageDown", act.ScrollByLine(1)),
kb("SHIFT", "PageDown", act.ScrollByLine(5)),
-- general
kb(
"CTRL",
"c",
act_callback(function(w, p)
local has_selection = w:get_selection_text_for_pane(p) ~= ""
if has_selection then
w:perform_action(act.CopyTo("Clipboard"), p)
else
w:perform_action(act.SendKey({ mods = "CTRL", key = "c" }), p)
end
end)
),
kb("CTRL", "v", act.PasteFrom("Clipboard")),
kb("CTRL", "f", act.Search("CurrentSelectionOrEmptyString")),
kb("SHIFT|CTRL", "l", act.ShowDebugOverlay),
},
}
|