Nabu/.config/wezterm/modules/mappings.lua

117 lines
2.7 KiB
Lua

local wezterm = require("wezterm")
local act = wezterm.action
return {
leader = { key = "a", mods = "CTRL", timeout_milliseconds = 1002 },
keys = {
{
key = "w",
mods = "CMD",
action = act.CloseCurrentPane({ confirm = true }),
},
-- activate resize mode
{
key = "r",
mods = "LEADER",
action = act.ActivateKeyTable({
name = "resize_pane",
one_shot = false,
}),
},
-- focus panes
{
key = "k",
mods = "LEADER",
action = act.ActivatePaneDirection("Left"),
},
{
key = "i",
mods = "LEADER",
action = act.ActivatePaneDirection("Right"),
},
{
key = "e",
mods = "LEADER",
action = act.ActivatePaneDirection("Up"),
},
{
key = "n",
mods = "LEADER",
action = act.ActivatePaneDirection("Down"),
},
-- add new panes
{
key = "v",
mods = "LEADER",
action = act.SplitVertical({ domain = "CurrentPaneDomain" }),
},
{
key = "h",
mods = "LEADER",
action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }),
},
-- Rename current workspace
{
key = "$",
mods = "LEADER|SHIFT",
action = act.PromptInputLine({
description = "Enter new workspace name",
action = wezterm.action_callback(function(window, pane, line)
if line then
wezterm.mux.rename_workspace(wezterm.mux.get_active_workspace(), line)
end
end),
}),
},
-- Prompt for a name to use for a new workspace and switch to it.
{
key = "w",
mods = "LEADER|SHIFT",
action = act.PromptInputLine({
description = wezterm.format({
{ Attribute = { Intensity = "Bold" } },
{ Foreground = { AnsiColor = "Fuchsia" } },
{ Text = "Enter name for new workspace" },
}),
action = wezterm.action_callback(function(window, pane, line)
-- line will be `nil` if they hit escape without entering anything
-- An empty string if they just hit enter
-- Or the actual line of text they wrote
if line then
window:perform_action(
act.SwitchToWorkspace({
name = line,
}),
pane
)
end
end),
}),
},
},
key_tables = {
resize_pane = {
{ key = "LeftArrow", action = act.AdjustPaneSize({ "Left", 5 }) },
{ key = "k", action = act.AdjustPaneSize({ "Left", 5 }) },
{ key = "RightArrow", action = act.AdjustPaneSize({ "Right", 5 }) },
{ key = "i", action = act.AdjustPaneSize({ "Right", 5 }) },
{ key = "UpArrow", action = act.AdjustPaneSize({ "Up", 2 }) },
{ key = "e", action = act.AdjustPaneSize({ "Up", 3 }) },
{ key = "DownArrow", action = act.AdjustPaneSize({ "Down", 2 }) },
{ key = "n", action = act.AdjustPaneSize({ "Down", 2 }) },
{ key = "Escape", action = "PopKeyTable" },
},
},
}