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" }, }, }, }