206 lines
9.3 KiB
Lua
206 lines
9.3 KiB
Lua
local wezterm = require("wezterm")
|
|
local act = wezterm.action
|
|
local default_prog = { "pwsh.exe", "-NoProfile", "-Command", "& { . ~/.profile.ps1; $host.EnterNestedPrompt() }" }
|
|
|
|
return {
|
|
default_prog = default_prog,
|
|
check_for_updates = true,
|
|
term = "xterm-256color",
|
|
use_ime = true,
|
|
|
|
----------------
|
|
-- Appearance --
|
|
----------------
|
|
window_background_opacity = 1,
|
|
color_scheme = "Catppuccin Mocha",
|
|
window_padding = {
|
|
left = 3,
|
|
right = 3,
|
|
top = 3,
|
|
bottom = 3,
|
|
},
|
|
|
|
inactive_pane_hsb = {
|
|
saturation = 1,
|
|
brightness = 1,
|
|
},
|
|
|
|
initial_rows = 50,
|
|
initial_cols = 140,
|
|
|
|
use_fancy_tab_bar = false,
|
|
hide_tab_bar_if_only_one_tab = true,
|
|
tab_bar_at_bottom = true,
|
|
-- How many lines of scrollback you want to retain per tab
|
|
scrollback_lines = 3500,
|
|
enable_scroll_bar = true,
|
|
|
|
-----------
|
|
-- Fonts --
|
|
-----------
|
|
--disable_default_key_bindings = true,
|
|
--line_height = 1,
|
|
font = wezterm.font("Fira Code Nerd Font"),
|
|
font = wezterm.font("JetBrains Mono", { weight = "Bold", italic = false }),
|
|
font_size = 14.0,
|
|
|
|
-----------
|
|
-- Keys --
|
|
-----------
|
|
-- Rather than emitting fancy composed characters when alt is pressed, treat the
|
|
-- input more like old school ascii with ALT held down
|
|
send_composed_key_when_left_alt_is_pressed = false,
|
|
send_composed_key_when_right_alt_is_pressed = false,
|
|
|
|
-- change here to key="b", mods="CMD" for ^+b equivalent in tmux.
|
|
leader = { key = "b", mods = "CTRL", timeout_milliseconds = 1000 },
|
|
keys = {
|
|
{
|
|
key = " ",
|
|
mods = "CTRL",
|
|
action = act.SendKey({
|
|
key = " ",
|
|
mods = "CTRL",
|
|
}),
|
|
},
|
|
{ key = "LeftArrow", mods = "OPT", action = act.SendString("\x1bb") },
|
|
{ key = "RightArrow", mods = "OPT", action = act.SendString("\x1bf") },
|
|
|
|
-- The physical CMD key on OSX is the Alt key on Win/*nix, so map the common Alt-combo commands.
|
|
{ key = ".", mods = "CMD", action = act.SendString("\x1b.") },
|
|
{ key = "p", mods = "CMD", action = act.SendString("\x1bp") },
|
|
{ key = "n", mods = "CMD", action = act.SendString("\x1bn") },
|
|
{ key = "b", mods = "CMD", action = act.SendString("\x1bb") },
|
|
{ key = "f", mods = "CMD", action = act.SendString("\x1bf") },
|
|
|
|
-- Window management
|
|
{ key = "a", mods = "LEADER", action = act({ SendString = "`" }) },
|
|
{ key = "h", mods = "LEADER", action = act({ SplitVertical = { domain = "CurrentPaneDomain" } }) },
|
|
{ key = "s", mods = "LEADER", action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }) },
|
|
{ key = "z", mods = "LEADER", action = "TogglePaneZoomState" },
|
|
{ key = "c", mods = "LEADER", action = act({ SpawnTab = "CurrentPaneDomain" }) },
|
|
|
|
{ key = "LeftArrow", mods = "LEADER", action = act.ActivatePaneDirection("Left") },
|
|
{ key = "DownArrow", mods = "LEADER", action = act.ActivatePaneDirection("Down") },
|
|
{ key = "UpArrow", mods = "LEADER", action = act.ActivatePaneDirection("Up") },
|
|
{ key = "RightArrow", mods = "LEADER", action = act.ActivatePaneDirection("Right") },
|
|
|
|
{ key = "H", mods = "LEADER", action = act({ AdjustPaneSize = { "Left", 5 } }) },
|
|
{ key = "J", mods = "LEADER", action = act({ AdjustPaneSize = { "Down", 5 } }) },
|
|
{ key = "K", mods = "LEADER", action = act({ AdjustPaneSize = { "Up", 5 } }) },
|
|
{ key = "L", mods = "LEADER", action = act({ AdjustPaneSize = { "Right", 5 } }) },
|
|
|
|
{ key = "`", mods = "LEADER", action = act.ActivateLastTab },
|
|
{ key = " ", mods = "LEADER", action = act.ActivateTabRelative(1) },
|
|
{ key = "1", mods = "LEADER", action = act({ ActivateTab = 0 }) },
|
|
{ key = "2", mods = "LEADER", action = act({ ActivateTab = 1 }) },
|
|
{ key = "3", mods = "LEADER", action = act({ ActivateTab = 2 }) },
|
|
{ key = "4", mods = "LEADER", action = act({ ActivateTab = 3 }) },
|
|
{ key = "5", mods = "LEADER", action = act({ ActivateTab = 4 }) },
|
|
{ key = "6", mods = "LEADER", action = act({ ActivateTab = 5 }) },
|
|
{ key = "7", mods = "LEADER", action = act({ ActivateTab = 6 }) },
|
|
{ key = "8", mods = "LEADER", action = act({ ActivateTab = 7 }) },
|
|
{ key = "9", mods = "LEADER", action = act({ ActivateTab = 8 }) },
|
|
{ key = "x", mods = "LEADER", action = act({ CloseCurrentPane = { confirm = true } }) },
|
|
|
|
-- Activate Copy Mode
|
|
{ key = "[", mods = "LEADER", action = act.ActivateCopyMode },
|
|
-- Paste from Copy Mode
|
|
{ key = "]", mods = "LEADER", action = act.PasteFrom("PrimarySelection") },
|
|
},
|
|
|
|
key_tables = {
|
|
-- added new shortcuts to the end
|
|
copy_mode = {
|
|
{ key = "c", mods = "CTRL", action = act.CopyMode("Close") },
|
|
{ key = "g", mods = "CTRL", action = act.CopyMode("Close") },
|
|
{ key = "q", mods = "NONE", action = act.CopyMode("Close") },
|
|
{ key = "Escape", mods = "NONE", 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 = "LeftArrow", mods = "NONE", action = act.CopyMode("MoveLeft") },
|
|
{ key = "DownArrow", mods = "NONE", action = act.CopyMode("MoveDown") },
|
|
{ key = "UpArrow", mods = "NONE", action = act.CopyMode("MoveUp") },
|
|
{ key = "RightArrow", mods = "NONE", action = act.CopyMode("MoveRight") },
|
|
|
|
{ key = "RightArrow", mods = "ALT", action = act.CopyMode("MoveForwardWord") },
|
|
{ key = "f", mods = "ALT", action = act.CopyMode("MoveForwardWord") },
|
|
{ key = "Tab", mods = "NONE", action = act.CopyMode("MoveForwardWord") },
|
|
{ key = "w", mods = "NONE", action = act.CopyMode("MoveForwardWord") },
|
|
|
|
{ key = "LeftArrow", mods = "ALT", action = act.CopyMode("MoveBackwardWord") },
|
|
{ key = "b", mods = "ALT", action = act.CopyMode("MoveBackwardWord") },
|
|
{ key = "Tab", mods = "SHIFT", action = act.CopyMode("MoveBackwardWord") },
|
|
{ key = "b", mods = "NONE", action = act.CopyMode("MoveBackwardWord") },
|
|
|
|
{ key = "0", mods = "NONE", action = act.CopyMode("MoveToStartOfLine") },
|
|
{ key = "Enter", mods = "NONE", action = act.CopyMode("MoveToStartOfNextLine") },
|
|
|
|
{ key = "$", mods = "NONE", action = act.CopyMode("MoveToEndOfLineContent") },
|
|
{ key = "$", mods = "SHIFT", action = act.CopyMode("MoveToEndOfLineContent") },
|
|
{ key = "^", mods = "NONE", action = act.CopyMode("MoveToStartOfLineContent") },
|
|
{ key = "^", mods = "SHIFT", action = act.CopyMode("MoveToStartOfLineContent") },
|
|
{ key = "m", mods = "ALT", action = act.CopyMode("MoveToStartOfLineContent") },
|
|
|
|
{ key = " ", mods = "NONE", action = act.CopyMode({ SetSelectionMode = "Cell" }) },
|
|
{ key = "v", mods = "NONE", action = act.CopyMode({ SetSelectionMode = "Cell" }) },
|
|
{ key = "V", mods = "NONE", action = act.CopyMode({ SetSelectionMode = "Line" }) },
|
|
{ key = "V", mods = "SHIFT", action = act.CopyMode({ SetSelectionMode = "Line" }) },
|
|
{ key = "v", mods = "CTRL", action = act.CopyMode({ SetSelectionMode = "Block" }) },
|
|
|
|
{ key = "G", mods = "NONE", action = act.CopyMode("MoveToScrollbackBottom") },
|
|
{ key = "G", mods = "SHIFT", action = act.CopyMode("MoveToScrollbackBottom") },
|
|
{ key = "g", mods = "NONE", action = act.CopyMode("MoveToScrollbackTop") },
|
|
|
|
{ key = "H", mods = "NONE", action = act.CopyMode("MoveToViewportTop") },
|
|
{ key = "H", mods = "SHIFT", action = act.CopyMode("MoveToViewportTop") },
|
|
{ key = "M", mods = "NONE", action = act.CopyMode("MoveToViewportMiddle") },
|
|
{ key = "M", mods = "SHIFT", action = act.CopyMode("MoveToViewportMiddle") },
|
|
{ key = "L", mods = "NONE", action = act.CopyMode("MoveToViewportBottom") },
|
|
{ key = "L", mods = "SHIFT", action = act.CopyMode("MoveToViewportBottom") },
|
|
|
|
{ key = "o", mods = "NONE", action = act.CopyMode("MoveToSelectionOtherEnd") },
|
|
{ key = "O", mods = "NONE", action = act.CopyMode("MoveToSelectionOtherEndHoriz") },
|
|
{ key = "O", mods = "SHIFT", action = act.CopyMode("MoveToSelectionOtherEndHoriz") },
|
|
|
|
{ key = "PageUp", mods = "NONE", action = act.CopyMode("PageUp") },
|
|
{ key = "PageDown", mods = "NONE", action = act.CopyMode("PageDown") },
|
|
|
|
{ key = "b", mods = "CTRL", action = act.CopyMode("PageUp") },
|
|
{ key = "f", mods = "CTRL", action = act.CopyMode("PageDown") },
|
|
|
|
-- Enter y to copy and quit the copy mode.
|
|
{
|
|
key = "y",
|
|
mods = "NONE",
|
|
action = act.Multiple({
|
|
act.CopyTo("ClipboardAndPrimarySelection"),
|
|
act.CopyMode("Close"),
|
|
}),
|
|
},
|
|
-- Enter search mode to edit the pattern.
|
|
-- When the search pattern is an empty string the existing pattern is preserved
|
|
{ key = "/", mods = "NONE", action = act({ Search = { CaseSensitiveString = "" } }) },
|
|
{ key = "?", mods = "NONE", action = act({ Search = { CaseInSensitiveString = "" } }) },
|
|
{ key = "n", mods = "CTRL", action = act({ CopyMode = "NextMatch" }) },
|
|
{ key = "p", mods = "CTRL", action = act({ CopyMode = "PriorMatch" }) },
|
|
},
|
|
|
|
search_mode = {
|
|
{ key = "Escape", mods = "NONE", action = act({ CopyMode = "Close" }) },
|
|
-- Go back to copy mode when pressing enter, so that we can use unmodified keys like "n"
|
|
-- to navigate search results without conflicting with typing into the search area.
|
|
{ key = "Enter", mods = "NONE", action = "ActivateCopyMode" },
|
|
{ key = "c", mods = "CTRL", action = "ActivateCopyMode" },
|
|
{ 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") },
|
|
},
|
|
},
|
|
}
|