dotfiles/terminal/.config/wezterm/maps.lua
Marty Oehme 5941f6f77a
vifm: Extend fzf mapping functionality
Extended functionality to work in current directory with lower-case
letters and from home directory using upper-case. So, <leader>f
will search files in current dir, <leader>F in home dir.
Same for <leader>d/D and <leader>w/W.

HACK Also made it use fd instead of find by default for the speedup.
This should probably only be done after detecting if fd is even installed
on the system but I do not have time for this right now.
2023-12-04 08:41:24 +01:00

139 lines
4.2 KiB
Lua

local wezterm = require("wezterm")
local act = wezterm.action
local keys = {
{ key = "O", mods = "CTRL", action = act.ShowDebugOverlay },
{ key = "[", mods = "CTRL", action = act.ScrollToPrompt(-1) },
{ key = "]", mods = "CTRL", action = act.ScrollToPrompt(1) },
{ -- vertical pane
key = "\\",
mods = "LEADER",
action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }),
},
{ -- horizontal pane
key = "-",
mods = "LEADER",
action = act.SplitVertical({ domain = "CurrentPaneDomain" }),
}, -- pane movement keys
{
key = "h",
mods = "CTRL",
action = act.EmitEvent("ActivatePaneDirection-left"),
},
{
key = "j",
mods = "CTRL",
action = act.EmitEvent("ActivatePaneDirection-down"),
},
{
key = "k",
mods = "CTRL",
action = act.EmitEvent("ActivatePaneDirection-up"),
},
{
key = "l",
mods = "CTRL",
action = act.EmitEvent("ActivatePaneDirection-right"),
},
{ key = "x", mods = "LEADER", action = act.CloseCurrentPane({ confirm = false }) },
{ key = "z", mods = "LEADER", action = act.TogglePaneZoomState },
{ key = " ", mods = "LEADER", action = act.RotatePanes("Clockwise") },
{ key = "q", mods = "LEADER", action = act.PaneSelect({ mode = "Activate" }) },
{
key = "Q",
mods = "LEADER",
action = act.PaneSelect({ mode = "SwapWithActive" }),
},
{ key = "c", mods = "LEADER", action = act.SpawnTab("CurrentPaneDomain") },
{ key = ",", mods = "LEADER", action = act.MoveTabRelative(-1) },
{ key = ".", mods = "LEADER", action = act.MoveTabRelative(1) }, -- workspace selection
{
key = "s",
mods = "LEADER",
action = act.ShowLauncherArgs({ flags = "FUZZY|WORKSPACES" }),
},
{ key = "t", mods = "LEADER", action = act.ShowTabNavigator },
{ key = "[", mods = "LEADER", action = act.ActivateCopyMode },
{
key = "r",
mods = "LEADER",
action = act.ActivateKeyTable({
name = "resize_pane",
one_shot = false,
timeout_milliseconds = 2000,
replace_current = true,
}),
},
{ key = "f", mods = "LEADER", action = act.QuickSelect },
-- open web link
{
key = "F",
mods = "LEADER",
action = wezterm.action.QuickSelectArgs({
patterns = { "https?://\\S+" },
action = wezterm.action_callback(function(window, pane)
local url = window:get_selection_text_for_pane(pane)
wezterm.log_info("opening: " .. url)
wezterm.open_with(url)
end),
}),
},
{
key = "/",
mods = "LEADER",
action = act.Search("CurrentSelectionOrEmptyString"),
},
{
key = "b",
mods = "LEADER",
action = act.ActivateKeyTable({
name = "scroll_mode",
one_shot = false,
replace_current = true,
timeout_milliseconds = 15000,
}),
},
{ key = "e", mods = "LEADER", action = act.EmitEvent("edit-scrollback") },
{
key = "l",
mods = "LEADER",
action = act.EmitEvent("ActivatePaneDirection-Right"),
},
{ key = "a", mods = "CTRL|ALT", action = act.EmitEvent("toggle-leader") },
}
-- Leader + number to activate that tab
for i = 1, 8 do
table.insert(keys, {
key = tostring(i),
mods = "LEADER",
action = act.ActivateTab(i - 1),
})
end
-- key table sub modes
local key_tables = {
-- mode to change size of any panes
resize_pane = {
{ key = "h", action = act.AdjustPaneSize({ "Left", 1 }) },
{ key = "l", action = act.AdjustPaneSize({ "Right", 1 }) },
{ key = "k", action = act.AdjustPaneSize({ "Up", 1 }) },
{ key = "j", action = act.AdjustPaneSize({ "Down", 1 }) },
{ key = "H", action = act.AdjustPaneSize({ "Left", 10 }) },
{ key = "L", action = act.AdjustPaneSize({ "Right", 10 }) },
{ key = "K", action = act.AdjustPaneSize({ "Up", 10 }) },
{ key = "J", action = act.AdjustPaneSize({ "Down", 10 }) },
{ key = "Escape", action = "PopKeyTable" },
},
scroll_mode = {
{ key = "y", mods = "CTRL", action = act.ScrollByLine(-1) },
{ key = "e", mods = "CTRL", action = act.ScrollByLine(1) },
{ key = "f", mods = "CTRL", action = act.ScrollByPage(1) },
{ key = "b", mods = "CTRL", action = act.ScrollByPage(-1) },
{ key = "d", mods = "CTRL", action = act.ScrollByPage(0.5) },
{ key = "u", mods = "CTRL", action = act.ScrollByPage(-0.5) },
{ key = "g", mods = "CTRL", action = act.ScrollToTop },
{ key = "G", mods = "CTRL", action = act.ScrollToBottom },
{ key = "Escape", action = "PopKeyTable" },
},
}
return { keys = keys, key_tables = key_tables }