aboutsummaryrefslogtreecommitdiff
path: root/.config/wezterm/keys.lua
blob: c92054b8a2685f86ebca3d507c83f9c55e0543be (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
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),
	},
}