117 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local wezterm = require("wezterm")
 | 
						|
local act = wezterm.action
 | 
						|
 | 
						|
return {
 | 
						|
	leader = { key = "z", 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" },
 | 
						|
		},
 | 
						|
	},
 | 
						|
}
 |