Move wezterm config into separated files, add statusbar

This commit is contained in:
Evie Litherland-Smith 2023-02-14 12:01:37 +00:00
parent 0eaf1dd436
commit 66793d4c22
5 changed files with 333 additions and 250 deletions

View file

@ -0,0 +1,81 @@
local wezterm = require("wezterm")
local act = wezterm.action
return {
copy_mode = {
{ key = "Tab", mods = "NONE", action = act.CopyMode("MoveForwardWord") },
{ key = "Tab", mods = "SHIFT", action = act.CopyMode("MoveBackwardWord") },
{ key = "Enter", mods = "NONE", action = act.CopyMode("MoveToStartOfNextLine") },
{ key = "Escape", mods = "NONE", action = act.CopyMode("Close") },
{ key = "Space", mods = "NONE", action = act.CopyMode({ SetSelectionMode = "Cell" }) },
{ key = "$", mods = "NONE", action = act.CopyMode("MoveToEndOfLineContent") },
{ key = "$", mods = "SHIFT", action = act.CopyMode("MoveToEndOfLineContent") },
{ key = ",", mods = "NONE", action = act.CopyMode("JumpReverse") },
{ key = "0", mods = "NONE", action = act.CopyMode("MoveToStartOfLine") },
{ key = ";", mods = "NONE", action = act.CopyMode("JumpAgain") },
{ key = "F", mods = "NONE", action = act.CopyMode({ JumpBackward = { prev_char = false } }) },
{ key = "F", mods = "SHIFT", action = act.CopyMode({ JumpBackward = { prev_char = false } }) },
{ key = "G", mods = "NONE", action = act.CopyMode("MoveToScrollbackBottom") },
{ key = "G", mods = "SHIFT", action = act.CopyMode("MoveToScrollbackBottom") },
{ key = "H", mods = "NONE", action = act.CopyMode("MoveToViewportTop") },
{ key = "H", mods = "SHIFT", action = act.CopyMode("MoveToViewportTop") },
{ key = "L", mods = "NONE", action = act.CopyMode("MoveToViewportBottom") },
{ key = "L", mods = "SHIFT", action = act.CopyMode("MoveToViewportBottom") },
{ key = "M", mods = "NONE", action = act.CopyMode("MoveToViewportMiddle") },
{ key = "M", mods = "SHIFT", action = act.CopyMode("MoveToViewportMiddle") },
{ key = "O", mods = "NONE", action = act.CopyMode("MoveToSelectionOtherEndHoriz") },
{ key = "O", mods = "SHIFT", action = act.CopyMode("MoveToSelectionOtherEndHoriz") },
{ key = "T", mods = "NONE", action = act.CopyMode({ JumpBackward = { prev_char = true } }) },
{ key = "T", mods = "SHIFT", action = act.CopyMode({ JumpBackward = { prev_char = true } }) },
{ key = "V", mods = "NONE", action = act.CopyMode({ SetSelectionMode = "Line" }) },
{ key = "V", mods = "SHIFT", action = act.CopyMode({ SetSelectionMode = "Line" }) },
{ key = "^", mods = "NONE", action = act.CopyMode("MoveToStartOfLineContent") },
{ key = "^", mods = "SHIFT", action = act.CopyMode("MoveToStartOfLineContent") },
{ key = "b", mods = "NONE", action = act.CopyMode("MoveBackwardWord") },
{ key = "b", mods = "ALT", action = act.CopyMode("MoveBackwardWord") },
{ key = "b", mods = "CTRL", action = act.CopyMode("PageUp") },
{ key = "c", mods = "CTRL", action = act.CopyMode("Close") },
{ key = "f", mods = "NONE", action = act.CopyMode({ JumpForward = { prev_char = false } }) },
{ key = "f", mods = "ALT", action = act.CopyMode("MoveForwardWord") },
{ key = "f", mods = "CTRL", action = act.CopyMode("PageDown") },
{ key = "g", mods = "NONE", action = act.CopyMode("MoveToScrollbackTop") },
{ key = "g", mods = "CTRL", action = act.CopyMode("Close") },
{ key = "h", mods = "NONE", action = act.CopyMode("MoveLeft") },
{ key = "j", mods = "NONE", action = act.CopyMode("MoveDown") },
{ key = "k", mods = "NONE", action = act.CopyMode("MoveUp") },
{ key = "l", mods = "NONE", action = act.CopyMode("MoveRight") },
{ key = "m", mods = "ALT", action = act.CopyMode("MoveToStartOfLineContent") },
{ key = "o", mods = "NONE", action = act.CopyMode("MoveToSelectionOtherEnd") },
{ key = "q", mods = "NONE", action = act.CopyMode("Close") },
{ key = "t", mods = "NONE", action = act.CopyMode({ JumpForward = { prev_char = true } }) },
{ key = "v", mods = "NONE", action = act.CopyMode({ SetSelectionMode = "Cell" }) },
{ key = "v", mods = "CTRL", action = act.CopyMode({ SetSelectionMode = "Block" }) },
{ key = "w", mods = "NONE", action = act.CopyMode("MoveForwardWord") },
{
key = "y",
mods = "NONE",
action = act.Multiple({ { CopyTo = "ClipboardAndPrimarySelection" }, { CopyMode = "Close" } }),
},
{ key = "PageUp", mods = "NONE", action = act.CopyMode("PageUp") },
{ key = "PageDown", mods = "NONE", action = act.CopyMode("PageDown") },
{ key = "LeftArrow", mods = "NONE", action = act.CopyMode("MoveLeft") },
{ key = "LeftArrow", mods = "ALT", action = act.CopyMode("MoveBackwardWord") },
{ key = "RightArrow", mods = "NONE", action = act.CopyMode("MoveRight") },
{ key = "RightArrow", mods = "ALT", action = act.CopyMode("MoveForwardWord") },
{ key = "UpArrow", mods = "NONE", action = act.CopyMode("MoveUp") },
{ key = "DownArrow", mods = "NONE", action = act.CopyMode("MoveDown") },
},
search_mode = {
{ key = "Enter", mods = "NONE", action = act.CopyMode("PriorMatch") },
{ key = "Escape", mods = "NONE", action = act.CopyMode("Close") },
{ key = "n", mods = "CTRL", action = act.CopyMode("NextMatch") },
{ key = "p", mods = "CTRL", action = act.CopyMode("PriorMatch") },
{ key = "r", mods = "CTRL", action = act.CopyMode("CycleMatchType") },
{ key = "u", mods = "CTRL", action = act.CopyMode("ClearPattern") },
{ key = "PageUp", mods = "NONE", action = act.CopyMode("PriorMatchPage") },
{ key = "PageDown", mods = "NONE", action = act.CopyMode("NextMatchPage") },
{ key = "UpArrow", mods = "NONE", action = act.CopyMode("PriorMatch") },
{ key = "DownArrow", mods = "NONE", action = act.CopyMode("NextMatch") },
},
}

124
config/wezterm/keys.lua Normal file
View file

@ -0,0 +1,124 @@
local wezterm = require("wezterm")
local act = wezterm.action
return {
{ key = "h", mods = "ALT", action = act.EmitEvent("ActivatePaneDirection-left") },
{ key = "j", mods = "ALT", action = act.EmitEvent("ActivatePaneDirection-down") },
{ key = "k", mods = "ALT", action = act.EmitEvent("ActivatePaneDirection-up") },
{ key = "l", mods = "ALT", action = act.EmitEvent("ActivatePaneDirection-right") },
{ key = "1", mods = "ALT", action = act.ActivateTab(0) },
{ key = "2", mods = "ALT", action = act.ActivateTab(1) },
{ key = "3", mods = "ALT", action = act.ActivateTab(2) },
{ key = "4", mods = "ALT", action = act.ActivateTab(3) },
{ key = "5", mods = "ALT", action = act.ActivateTab(4) },
{ key = "6", mods = "ALT", action = act.ActivateTab(5) },
{ key = "7", mods = "ALT", action = act.ActivateTab(6) },
{ key = "8", mods = "ALT", action = act.ActivateTab(7) },
{ key = "9", mods = "ALT", action = act.ActivateTab(8) },
{ key = "0", mods = "ALT", action = act.ActivateTab(-1) },
{ key = "Enter", mods = "ALT", action = act.SplitVertical({ domain = "CurrentPaneDomain" }) },
{ key = "Enter", mods = "SHIFT|ALT", action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }) },
{ key = "Tab", mods = "CTRL", action = act.ActivateTabRelative(1) },
{ key = "Tab", mods = "SHIFT|CTRL", action = act.ActivateTabRelative(-1) },
{ key = "Enter", mods = "SUPER", action = act.ToggleFullScreen },
{ key = ")", mods = "CTRL", action = act.ResetFontSize },
{ key = ")", mods = "SHIFT|CTRL", action = act.ResetFontSize },
{ key = "0", mods = "CTRL", action = act.ResetFontSize },
{ key = "0", mods = "SHIFT|CTRL", action = act.ResetFontSize },
{ key = "+", mods = "CTRL", action = act.IncreaseFontSize },
{ key = "+", mods = "SHIFT|CTRL", action = act.IncreaseFontSize },
{ key = "-", mods = "CTRL", action = act.DecreaseFontSize },
{ key = "-", mods = "SHIFT|CTRL", action = act.DecreaseFontSize },
{ key = "=", mods = "CTRL", action = act.IncreaseFontSize },
{ key = "=", mods = "SHIFT|CTRL", action = act.IncreaseFontSize },
{ key = "C", mods = "CTRL", action = act.CopyTo("Clipboard") },
{ key = "C", mods = "SHIFT|CTRL", action = act.CopyTo("Clipboard") },
{ key = "F", mods = "CTRL", action = act.Search("CurrentSelectionOrEmptyString") },
{ key = "F", mods = "SHIFT|CTRL", action = act.Search("CurrentSelectionOrEmptyString") },
{ key = "K", mods = "CTRL", action = act.ClearScrollback("ScrollbackOnly") },
{ key = "K", mods = "SHIFT|CTRL", action = act.ClearScrollback("ScrollbackOnly") },
{ key = "L", mods = "CTRL", action = act.ShowDebugOverlay },
{ key = "L", mods = "SHIFT|CTRL", action = act.ShowDebugOverlay },
{ key = "M", mods = "CTRL", action = act.Hide },
{ key = "M", mods = "SHIFT|CTRL", action = act.Hide },
{ key = "N", mods = "CTRL", action = act.SpawnWindow },
{ key = "N", mods = "SHIFT|CTRL", action = act.SpawnWindow },
{ key = "P", mods = "CTRL", action = act.PaneSelect({ alphabet = "", mode = "Activate" }) },
{ key = "P", mods = "SHIFT|CTRL", action = act.PaneSelect({ alphabet = "", mode = "Activate" }) },
{ key = "R", mods = "CTRL", action = act.ReloadConfiguration },
{ key = "R", mods = "SHIFT|CTRL", action = act.ReloadConfiguration },
{ key = "T", mods = "CTRL", action = act.SpawnTab("CurrentPaneDomain") },
{ key = "T", mods = "SHIFT|CTRL", action = act.SpawnTab("CurrentPaneDomain") },
{
key = "U",
mods = "CTRL",
action = act.CharSelect({ copy_on_select = true, copy_to = "ClipboardAndPrimarySelection" }),
},
{
key = "U",
mods = "SHIFT|CTRL",
action = act.CharSelect({ copy_on_select = true, copy_to = "ClipboardAndPrimarySelection" }),
},
{ key = "V", mods = "CTRL", action = act.PasteFrom("Clipboard") },
{ key = "V", mods = "SHIFT|CTRL", action = act.PasteFrom("Clipboard") },
{ key = "W", mods = "CTRL", action = act.CloseCurrentTab({ confirm = true }) },
{ key = "W", mods = "SHIFT|CTRL", action = act.CloseCurrentTab({ confirm = true }) },
{ key = "X", mods = "CTRL", action = act.ActivateCopyMode },
{ key = "X", mods = "SHIFT|CTRL", action = act.ActivateCopyMode },
{ key = "Z", mods = "CTRL", action = act.TogglePaneZoomState },
{ key = "Z", mods = "SHIFT|CTRL", action = act.TogglePaneZoomState },
{ key = "[", mods = "SHIFT|SUPER", action = act.ActivateTabRelative(-1) },
{ key = "]", mods = "SHIFT|SUPER", action = act.ActivateTabRelative(1) },
{ key = "_", mods = "CTRL", action = act.DecreaseFontSize },
{ key = "_", mods = "SHIFT|CTRL", action = act.DecreaseFontSize },
{ key = "c", mods = "SHIFT|CTRL", action = act.CopyTo("Clipboard") },
{ key = "c", mods = "SUPER", action = act.CopyTo("Clipboard") },
{ key = "f", mods = "SHIFT|CTRL", action = act.Search("CurrentSelectionOrEmptyString") },
{ key = "f", mods = "SUPER", action = act.Search("CurrentSelectionOrEmptyString") },
{ key = "k", mods = "SHIFT|CTRL", action = act.ClearScrollback("ScrollbackOnly") },
{ key = "k", mods = "SUPER", action = act.ClearScrollback("ScrollbackOnly") },
{ key = "l", mods = "SHIFT|CTRL", action = act.ShowDebugOverlay },
{ key = "m", mods = "SHIFT|CTRL", action = act.Hide },
{ key = "m", mods = "SUPER", action = act.Hide },
{ key = "n", mods = "SHIFT|CTRL", action = act.SpawnWindow },
{ key = "n", mods = "SUPER", action = act.SpawnWindow },
{ key = "p", mods = "SHIFT|CTRL", action = act.PaneSelect({ alphabet = "", mode = "Activate" }) },
{ key = "r", mods = "SHIFT|CTRL", action = act.ReloadConfiguration },
{ key = "r", mods = "SUPER", action = act.ReloadConfiguration },
{ key = "t", mods = "SHIFT|CTRL", action = act.SpawnTab("CurrentPaneDomain") },
{ key = "t", mods = "SUPER", action = act.SpawnTab("CurrentPaneDomain") },
{
key = "u",
mods = "SHIFT|CTRL",
action = act.CharSelect({ copy_on_select = true, copy_to = "ClipboardAndPrimarySelection" }),
},
{ key = "v", mods = "SHIFT|CTRL", action = act.PasteFrom("Clipboard") },
{ key = "v", mods = "SUPER", action = act.PasteFrom("Clipboard") },
{ key = "w", mods = "SHIFT|CTRL", action = act.CloseCurrentTab({ confirm = true }) },
{ key = "w", mods = "SUPER", action = act.CloseCurrentTab({ confirm = true }) },
{ key = "x", mods = "SHIFT|CTRL", action = act.ActivateCopyMode },
{ key = "z", mods = "SHIFT|CTRL", action = act.TogglePaneZoomState },
{ key = "{", mods = "SUPER", action = act.ActivateTabRelative(-1) },
{ key = "{", mods = "SHIFT|SUPER", action = act.ActivateTabRelative(-1) },
{ key = "}", mods = "SUPER", action = act.ActivateTabRelative(1) },
{ key = "}", mods = "SHIFT|SUPER", action = act.ActivateTabRelative(1) },
{ key = "phys:Space", mods = "SHIFT|CTRL", action = act.QuickSelect },
{ key = "PageUp", mods = "SHIFT", action = act.ScrollByPage(-1) },
{ key = "PageUp", mods = "CTRL", action = act.ActivateTabRelative(-1) },
{ key = "PageUp", mods = "SHIFT|CTRL", action = act.MoveTabRelative(-1) },
{ key = "PageDown", mods = "SHIFT", action = act.ScrollByPage(1) },
{ key = "PageDown", mods = "CTRL", action = act.ActivateTabRelative(1) },
{ key = "PageDown", mods = "SHIFT|CTRL", action = act.MoveTabRelative(1) },
{ key = "LeftArrow", mods = "SHIFT|CTRL", action = act.ActivatePaneDirection("Left") },
{ key = "LeftArrow", mods = "SHIFT|ALT|CTRL", action = act.AdjustPaneSize({ "Left", 1 }) },
{ key = "RightArrow", mods = "SHIFT|CTRL", action = act.ActivatePaneDirection("Right") },
{ key = "RightArrow", mods = "SHIFT|ALT|CTRL", action = act.AdjustPaneSize({ "Right", 1 }) },
{ key = "UpArrow", mods = "SHIFT|CTRL", action = act.ActivatePaneDirection("Up") },
{ key = "UpArrow", mods = "SHIFT|ALT|CTRL", action = act.AdjustPaneSize({ "Up", 1 }) },
{ key = "DownArrow", mods = "SHIFT|CTRL", action = act.ActivatePaneDirection("Down") },
{ key = "DownArrow", mods = "SHIFT|ALT|CTRL", action = act.AdjustPaneSize({ "Down", 1 }) },
{ key = "Insert", mods = "SHIFT", action = act.PasteFrom("PrimarySelection") },
{ key = "Insert", mods = "CTRL", action = act.CopyTo("PrimarySelection") },
{ key = "Copy", mods = "NONE", action = act.CopyTo("Clipboard") },
{ key = "Paste", mods = "NONE", action = act.PasteFrom("Clipboard") },
}

View file

@ -0,0 +1,35 @@
local wezterm = require("wezterm")
local act = wezterm.action
local function isViProcess(pane)
-- get_foreground_process_name On Linux, macOS and Windows,
-- the process can be queried to determine this path. Other operating systems
-- (notably, FreeBSD and other unix systems) are not currently supported
return pane:get_foreground_process_name():find("n?vim") ~= nil
-- return pane:get_title():find("n?vim") ~= nil
end
local function conditionalActivatePane(window, pane, pane_direction, vim_direction)
if isViProcess(pane) then
window:perform_action(
-- This should match the keybinds you set in Neovim.
act.SendKey({ key = vim_direction, mods = "ALT" }),
pane
)
else
window:perform_action(act.ActivatePaneDirection(pane_direction), pane)
end
end
wezterm.on("ActivatePaneDirection-right", function(window, pane)
conditionalActivatePane(window, pane, "Right", "l")
end)
wezterm.on("ActivatePaneDirection-left", function(window, pane)
conditionalActivatePane(window, pane, "Left", "h")
end)
wezterm.on("ActivatePaneDirection-up", function(window, pane)
conditionalActivatePane(window, pane, "Up", "k")
end)
wezterm.on("ActivatePaneDirection-down", function(window, pane)
conditionalActivatePane(window, pane, "Down", "j")
end)

89
config/wezterm/status.lua Normal file
View file

@ -0,0 +1,89 @@
local wezterm = require("wezterm")
wezterm.on("update-right-status", function(window, pane)
-- Each element holds the text for a cell in a "powerline" style << fade
local cells = {}
-- Figure out the cwd and host of the current pane.
-- This will pick up the hostname for the remote host if your
-- shell is using OSC 7 on the remote host.
local cwd_uri = pane:get_current_working_dir()
if cwd_uri then
cwd_uri = cwd_uri:sub(8)
local slash = cwd_uri:find("/")
local cwd = ""
local hostname = ""
if slash then
hostname = cwd_uri:sub(1, slash - 1)
-- Remove the domain name portion of the hostname
local dot = hostname:find("[.]")
if dot then
hostname = hostname:sub(1, dot - 1)
end
-- and extract the cwd from the uri
cwd = cwd_uri:sub(slash)
table.insert(cells, cwd)
table.insert(cells, hostname)
end
end
-- I like my date/time in this style: "Wed Mar 3 08:14"
local date = wezterm.strftime("%a %b %-d %H:%M")
table.insert(cells, date)
-- An entry for each battery (typically 0 or 1 battery)
for _, b in ipairs(wezterm.battery_info()) do
table.insert(cells, string.format("%.0f%%", b.state_of_charge * 100))
end
-- WIP key table code - not yet used
local name = window:active_key_table()
if name then
name = "TABLE: " .. name
end
-- The powerline < symbol
local LEFT_ARROW = utf8.char(0xe0b3)
-- The filled in variant of the < symbol
local SOLID_LEFT_ARROW = utf8.char(0xe0b2)
-- Color palette for the backgrounds of each cell
local colors = {
"#3c1361",
"#52307c",
"#663a82",
"#7c5295",
"#b491c8",
}
-- Foreground color for the text across the fade
local text_fg = "#c0c0c0"
-- The elements to be formatted
local elements = {}
-- How many cells have been formatted
local num_cells = 0
-- Translate a cell into elements
function push(text, is_last)
local cell_no = num_cells + 1
table.insert(elements, { Foreground = { Color = text_fg } })
table.insert(elements, { Background = { Color = colors[cell_no] } })
table.insert(elements, { Text = " " .. text .. " " })
if not is_last then
table.insert(elements, { Foreground = { Color = colors[cell_no + 1] } })
table.insert(elements, { Text = SOLID_LEFT_ARROW })
end
num_cells = num_cells + 1
end
table.insert(elements, { Foreground = { Color = colors[num_cells + 1] } })
table.insert(elements, { Text = SOLID_LEFT_ARROW })
while #cells > 0 do
local cell = table.remove(cells, 1)
push(cell, #cells == 0)
end
window:set_right_status(wezterm.format(elements))
end)

View file

@ -1,258 +1,12 @@
local wezterm = require("wezterm")
local act = wezterm.action
wezterm.on("update-right-status", function(window, pane)
local name = window:active_key_table()
if name then
name = "TABLE: " .. name
end
window:set_right_status(name or "")
end)
local function isViProcess(pane)
-- get_foreground_process_name On Linux, macOS and Windows,
-- the process can be queried to determine this path. Other operating systems
-- (notably, FreeBSD and other unix systems) are not currently supported
return pane:get_foreground_process_name():find("n?vim") ~= nil
-- return pane:get_title():find("n?vim") ~= nil
end
local function conditionalActivatePane(window, pane, pane_direction, vim_direction)
if isViProcess(pane) then
window:perform_action(
-- This should match the keybinds you set in Neovim.
act.SendKey({ key = vim_direction, mods = "ALT" }),
pane
)
else
window:perform_action(act.ActivatePaneDirection(pane_direction), pane)
end
end
wezterm.on("ActivatePaneDirection-right", function(window, pane)
conditionalActivatePane(window, pane, "Right", "l")
end)
wezterm.on("ActivatePaneDirection-left", function(window, pane)
conditionalActivatePane(window, pane, "Left", "h")
end)
wezterm.on("ActivatePaneDirection-up", function(window, pane)
conditionalActivatePane(window, pane, "Up", "k")
end)
wezterm.on("ActivatePaneDirection-down", function(window, pane)
conditionalActivatePane(window, pane, "Down", "j")
end)
local keys = {
{ key = "Tab", mods = "CTRL", action = act.ActivateTabRelative(1) },
{ key = "Tab", mods = "SHIFT|CTRL", action = act.ActivateTabRelative(-1) },
{ key = "Enter", mods = "SUPER", action = act.ToggleFullScreen },
{ key = ")", mods = "CTRL", action = act.ResetFontSize },
{ key = ")", mods = "SHIFT|CTRL", action = act.ResetFontSize },
{ key = "0", mods = "CTRL", action = act.ResetFontSize },
{ key = "0", mods = "SHIFT|CTRL", action = act.ResetFontSize },
{ key = "+", mods = "CTRL", action = act.IncreaseFontSize },
{ key = "+", mods = "SHIFT|CTRL", action = act.IncreaseFontSize },
{ key = "-", mods = "CTRL", action = act.DecreaseFontSize },
{ key = "-", mods = "SHIFT|CTRL", action = act.DecreaseFontSize },
{ key = "=", mods = "CTRL", action = act.IncreaseFontSize },
{ key = "=", mods = "SHIFT|CTRL", action = act.IncreaseFontSize },
{ key = "C", mods = "CTRL", action = act.CopyTo("Clipboard") },
{ key = "C", mods = "SHIFT|CTRL", action = act.CopyTo("Clipboard") },
{ key = "F", mods = "CTRL", action = act.Search("CurrentSelectionOrEmptyString") },
{ key = "F", mods = "SHIFT|CTRL", action = act.Search("CurrentSelectionOrEmptyString") },
{ key = "K", mods = "CTRL", action = act.ClearScrollback("ScrollbackOnly") },
{ key = "K", mods = "SHIFT|CTRL", action = act.ClearScrollback("ScrollbackOnly") },
{ key = "L", mods = "CTRL", action = act.ShowDebugOverlay },
{ key = "L", mods = "SHIFT|CTRL", action = act.ShowDebugOverlay },
{ key = "M", mods = "CTRL", action = act.Hide },
{ key = "M", mods = "SHIFT|CTRL", action = act.Hide },
{ key = "N", mods = "CTRL", action = act.SpawnWindow },
{ key = "N", mods = "SHIFT|CTRL", action = act.SpawnWindow },
{ key = "P", mods = "CTRL", action = act.PaneSelect({ alphabet = "", mode = "Activate" }) },
{ key = "P", mods = "SHIFT|CTRL", action = act.PaneSelect({ alphabet = "", mode = "Activate" }) },
{ key = "R", mods = "CTRL", action = act.ReloadConfiguration },
{ key = "R", mods = "SHIFT|CTRL", action = act.ReloadConfiguration },
{ key = "T", mods = "CTRL", action = act.SpawnTab("CurrentPaneDomain") },
{ key = "T", mods = "SHIFT|CTRL", action = act.SpawnTab("CurrentPaneDomain") },
{
key = "U",
mods = "CTRL",
action = act.CharSelect({ copy_on_select = true, copy_to = "ClipboardAndPrimarySelection" }),
},
{
key = "U",
mods = "SHIFT|CTRL",
action = act.CharSelect({ copy_on_select = true, copy_to = "ClipboardAndPrimarySelection" }),
},
{ key = "V", mods = "CTRL", action = act.PasteFrom("Clipboard") },
{ key = "V", mods = "SHIFT|CTRL", action = act.PasteFrom("Clipboard") },
{ key = "W", mods = "CTRL", action = act.CloseCurrentTab({ confirm = true }) },
{ key = "W", mods = "SHIFT|CTRL", action = act.CloseCurrentTab({ confirm = true }) },
{ key = "X", mods = "CTRL", action = act.ActivateCopyMode },
{ key = "X", mods = "SHIFT|CTRL", action = act.ActivateCopyMode },
{ key = "Z", mods = "CTRL", action = act.TogglePaneZoomState },
{ key = "Z", mods = "SHIFT|CTRL", action = act.TogglePaneZoomState },
{ key = "[", mods = "SHIFT|SUPER", action = act.ActivateTabRelative(-1) },
{ key = "]", mods = "SHIFT|SUPER", action = act.ActivateTabRelative(1) },
{ key = "_", mods = "CTRL", action = act.DecreaseFontSize },
{ key = "_", mods = "SHIFT|CTRL", action = act.DecreaseFontSize },
{ key = "c", mods = "SHIFT|CTRL", action = act.CopyTo("Clipboard") },
{ key = "c", mods = "SUPER", action = act.CopyTo("Clipboard") },
{ key = "f", mods = "SHIFT|CTRL", action = act.Search("CurrentSelectionOrEmptyString") },
{ key = "f", mods = "SUPER", action = act.Search("CurrentSelectionOrEmptyString") },
{ key = "k", mods = "SHIFT|CTRL", action = act.ClearScrollback("ScrollbackOnly") },
{ key = "k", mods = "SUPER", action = act.ClearScrollback("ScrollbackOnly") },
{ key = "l", mods = "SHIFT|CTRL", action = act.ShowDebugOverlay },
{ key = "m", mods = "SHIFT|CTRL", action = act.Hide },
{ key = "m", mods = "SUPER", action = act.Hide },
{ key = "n", mods = "SHIFT|CTRL", action = act.SpawnWindow },
{ key = "n", mods = "SUPER", action = act.SpawnWindow },
{ key = "p", mods = "SHIFT|CTRL", action = act.PaneSelect({ alphabet = "", mode = "Activate" }) },
{ key = "r", mods = "SHIFT|CTRL", action = act.ReloadConfiguration },
{ key = "r", mods = "SUPER", action = act.ReloadConfiguration },
{ key = "t", mods = "SHIFT|CTRL", action = act.SpawnTab("CurrentPaneDomain") },
{ key = "t", mods = "SUPER", action = act.SpawnTab("CurrentPaneDomain") },
{
key = "u",
mods = "SHIFT|CTRL",
action = act.CharSelect({ copy_on_select = true, copy_to = "ClipboardAndPrimarySelection" }),
},
{ key = "v", mods = "SHIFT|CTRL", action = act.PasteFrom("Clipboard") },
{ key = "v", mods = "SUPER", action = act.PasteFrom("Clipboard") },
{ key = "w", mods = "SHIFT|CTRL", action = act.CloseCurrentTab({ confirm = true }) },
{ key = "w", mods = "SUPER", action = act.CloseCurrentTab({ confirm = true }) },
{ key = "x", mods = "SHIFT|CTRL", action = act.ActivateCopyMode },
{ key = "z", mods = "SHIFT|CTRL", action = act.TogglePaneZoomState },
{ key = "{", mods = "SUPER", action = act.ActivateTabRelative(-1) },
{ key = "{", mods = "SHIFT|SUPER", action = act.ActivateTabRelative(-1) },
{ key = "}", mods = "SUPER", action = act.ActivateTabRelative(1) },
{ key = "}", mods = "SHIFT|SUPER", action = act.ActivateTabRelative(1) },
{ key = "phys:Space", mods = "SHIFT|CTRL", action = act.QuickSelect },
{ key = "PageUp", mods = "SHIFT", action = act.ScrollByPage(-1) },
{ key = "PageUp", mods = "CTRL", action = act.ActivateTabRelative(-1) },
{ key = "PageUp", mods = "SHIFT|CTRL", action = act.MoveTabRelative(-1) },
{ key = "PageDown", mods = "SHIFT", action = act.ScrollByPage(1) },
{ key = "PageDown", mods = "CTRL", action = act.ActivateTabRelative(1) },
{ key = "PageDown", mods = "SHIFT|CTRL", action = act.MoveTabRelative(1) },
{ key = "LeftArrow", mods = "SHIFT|CTRL", action = act.ActivatePaneDirection("Left") },
{ key = "LeftArrow", mods = "SHIFT|ALT|CTRL", action = act.AdjustPaneSize({ "Left", 1 }) },
{ key = "RightArrow", mods = "SHIFT|CTRL", action = act.ActivatePaneDirection("Right") },
{ key = "RightArrow", mods = "SHIFT|ALT|CTRL", action = act.AdjustPaneSize({ "Right", 1 }) },
{ key = "UpArrow", mods = "SHIFT|CTRL", action = act.ActivatePaneDirection("Up") },
{ key = "UpArrow", mods = "SHIFT|ALT|CTRL", action = act.AdjustPaneSize({ "Up", 1 }) },
{ key = "DownArrow", mods = "SHIFT|CTRL", action = act.ActivatePaneDirection("Down") },
{ key = "DownArrow", mods = "SHIFT|ALT|CTRL", action = act.AdjustPaneSize({ "Down", 1 }) },
{ key = "Insert", mods = "SHIFT", action = act.PasteFrom("PrimarySelection") },
{ key = "Insert", mods = "CTRL", action = act.CopyTo("PrimarySelection") },
{ key = "Copy", mods = "NONE", action = act.CopyTo("Clipboard") },
{ key = "Paste", mods = "NONE", action = act.PasteFrom("Clipboard") },
}
local keys_tiling = {
{ key = "h", mods = "ALT", action = act.EmitEvent("ActivatePaneDirection-left") },
{ key = "j", mods = "ALT", action = act.EmitEvent("ActivatePaneDirection-down") },
{ key = "k", mods = "ALT", action = act.EmitEvent("ActivatePaneDirection-up") },
{ key = "l", mods = "ALT", action = act.EmitEvent("ActivatePaneDirection-right") },
{ key = "1", mods = "ALT", action = act.ActivateTab(0) },
{ key = "2", mods = "ALT", action = act.ActivateTab(1) },
{ key = "3", mods = "ALT", action = act.ActivateTab(2) },
{ key = "4", mods = "ALT", action = act.ActivateTab(3) },
{ key = "5", mods = "ALT", action = act.ActivateTab(4) },
{ key = "6", mods = "ALT", action = act.ActivateTab(5) },
{ key = "7", mods = "ALT", action = act.ActivateTab(6) },
{ key = "8", mods = "ALT", action = act.ActivateTab(7) },
{ key = "9", mods = "ALT", action = act.ActivateTab(8) },
{ key = "0", mods = "ALT", action = act.ActivateTab(-1) },
{ key = "Enter", mods = "ALT", action = act.SplitVertical({ domain = "CurrentPaneDomain" }) },
{ key = "Enter", mods = "SHIFT|ALT", action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }) },
}
local key_tables = {
copy_mode = {
{ key = "Tab", mods = "NONE", action = act.CopyMode("MoveForwardWord") },
{ key = "Tab", mods = "SHIFT", action = act.CopyMode("MoveBackwardWord") },
{ key = "Enter", mods = "NONE", action = act.CopyMode("MoveToStartOfNextLine") },
{ key = "Escape", mods = "NONE", action = act.CopyMode("Close") },
{ key = "Space", mods = "NONE", action = act.CopyMode({ SetSelectionMode = "Cell" }) },
{ key = "$", mods = "NONE", action = act.CopyMode("MoveToEndOfLineContent") },
{ key = "$", mods = "SHIFT", action = act.CopyMode("MoveToEndOfLineContent") },
{ key = ",", mods = "NONE", action = act.CopyMode("JumpReverse") },
{ key = "0", mods = "NONE", action = act.CopyMode("MoveToStartOfLine") },
{ key = ";", mods = "NONE", action = act.CopyMode("JumpAgain") },
{ key = "F", mods = "NONE", action = act.CopyMode({ JumpBackward = { prev_char = false } }) },
{ key = "F", mods = "SHIFT", action = act.CopyMode({ JumpBackward = { prev_char = false } }) },
{ key = "G", mods = "NONE", action = act.CopyMode("MoveToScrollbackBottom") },
{ key = "G", mods = "SHIFT", action = act.CopyMode("MoveToScrollbackBottom") },
{ key = "H", mods = "NONE", action = act.CopyMode("MoveToViewportTop") },
{ key = "H", mods = "SHIFT", action = act.CopyMode("MoveToViewportTop") },
{ key = "L", mods = "NONE", action = act.CopyMode("MoveToViewportBottom") },
{ key = "L", mods = "SHIFT", action = act.CopyMode("MoveToViewportBottom") },
{ key = "M", mods = "NONE", action = act.CopyMode("MoveToViewportMiddle") },
{ key = "M", mods = "SHIFT", action = act.CopyMode("MoveToViewportMiddle") },
{ key = "O", mods = "NONE", action = act.CopyMode("MoveToSelectionOtherEndHoriz") },
{ key = "O", mods = "SHIFT", action = act.CopyMode("MoveToSelectionOtherEndHoriz") },
{ key = "T", mods = "NONE", action = act.CopyMode({ JumpBackward = { prev_char = true } }) },
{ key = "T", mods = "SHIFT", action = act.CopyMode({ JumpBackward = { prev_char = true } }) },
{ key = "V", mods = "NONE", action = act.CopyMode({ SetSelectionMode = "Line" }) },
{ key = "V", mods = "SHIFT", action = act.CopyMode({ SetSelectionMode = "Line" }) },
{ key = "^", mods = "NONE", action = act.CopyMode("MoveToStartOfLineContent") },
{ key = "^", mods = "SHIFT", action = act.CopyMode("MoveToStartOfLineContent") },
{ key = "b", mods = "NONE", action = act.CopyMode("MoveBackwardWord") },
{ key = "b", mods = "ALT", action = act.CopyMode("MoveBackwardWord") },
{ key = "b", mods = "CTRL", action = act.CopyMode("PageUp") },
{ key = "c", mods = "CTRL", action = act.CopyMode("Close") },
{ key = "f", mods = "NONE", action = act.CopyMode({ JumpForward = { prev_char = false } }) },
{ key = "f", mods = "ALT", action = act.CopyMode("MoveForwardWord") },
{ key = "f", mods = "CTRL", action = act.CopyMode("PageDown") },
{ key = "g", mods = "NONE", action = act.CopyMode("MoveToScrollbackTop") },
{ key = "g", mods = "CTRL", action = act.CopyMode("Close") },
{ key = "h", mods = "NONE", action = act.CopyMode("MoveLeft") },
{ key = "j", mods = "NONE", action = act.CopyMode("MoveDown") },
{ key = "k", mods = "NONE", action = act.CopyMode("MoveUp") },
{ key = "l", mods = "NONE", action = act.CopyMode("MoveRight") },
{ key = "m", mods = "ALT", action = act.CopyMode("MoveToStartOfLineContent") },
{ key = "o", mods = "NONE", action = act.CopyMode("MoveToSelectionOtherEnd") },
{ key = "q", mods = "NONE", action = act.CopyMode("Close") },
{ key = "t", mods = "NONE", action = act.CopyMode({ JumpForward = { prev_char = true } }) },
{ key = "v", mods = "NONE", action = act.CopyMode({ SetSelectionMode = "Cell" }) },
{ key = "v", mods = "CTRL", action = act.CopyMode({ SetSelectionMode = "Block" }) },
{ key = "w", mods = "NONE", action = act.CopyMode("MoveForwardWord") },
{
key = "y",
mods = "NONE",
action = act.Multiple({ { CopyTo = "ClipboardAndPrimarySelection" }, { CopyMode = "Close" } }),
},
{ key = "PageUp", mods = "NONE", action = act.CopyMode("PageUp") },
{ key = "PageDown", mods = "NONE", action = act.CopyMode("PageDown") },
{ key = "LeftArrow", mods = "NONE", action = act.CopyMode("MoveLeft") },
{ key = "LeftArrow", mods = "ALT", action = act.CopyMode("MoveBackwardWord") },
{ key = "RightArrow", mods = "NONE", action = act.CopyMode("MoveRight") },
{ key = "RightArrow", mods = "ALT", action = act.CopyMode("MoveForwardWord") },
{ key = "UpArrow", mods = "NONE", action = act.CopyMode("MoveUp") },
{ key = "DownArrow", mods = "NONE", action = act.CopyMode("MoveDown") },
},
search_mode = {
{ key = "Enter", mods = "NONE", action = act.CopyMode("PriorMatch") },
{ key = "Escape", mods = "NONE", action = act.CopyMode("Close") },
{ key = "n", mods = "CTRL", action = act.CopyMode("NextMatch") },
{ key = "p", mods = "CTRL", action = act.CopyMode("PriorMatch") },
{ key = "r", mods = "CTRL", action = act.CopyMode("CycleMatchType") },
{ key = "u", mods = "CTRL", action = act.CopyMode("ClearPattern") },
{ key = "PageUp", mods = "NONE", action = act.CopyMode("PriorMatchPage") },
{ key = "PageDown", mods = "NONE", action = act.CopyMode("NextMatchPage") },
{ key = "UpArrow", mods = "NONE", action = act.CopyMode("PriorMatch") },
{ key = "DownArrow", mods = "NONE", action = act.CopyMode("NextMatch") },
},
}
require("status")
require("navigator")
return {
font_size = 14,
disable_default_key_bindings = true,
window_background_opacity = 0.95,
color_scheme = "nightfox",
hide_tab_bar_if_only_one_tab = true,
use_dead_keys = false,
keys = keys,
key_tables = key_tables,
keys = require("keys"),
key_tables = require("key_tables"),
}