2022-11-16 23:37:05 +01:00
|
|
|
local wezterm = require 'wezterm'
|
|
|
|
local act = wezterm.action
|
2022-10-24 15:24:37 +02:00
|
|
|
|
2022-11-16 23:37:05 +01:00
|
|
|
local default_prog
|
|
|
|
local default_cwd
|
|
|
|
local font_size
|
|
|
|
local tab_font_size
|
|
|
|
local initial_rows
|
|
|
|
local inital_cols
|
2022-10-24 15:24:37 +02:00
|
|
|
|
2022-11-16 23:37:05 +01:00
|
|
|
if string.find(wezterm.target_triple, "windows") then
|
|
|
|
default_prog = { "wsl.exe" };
|
|
|
|
default_cwd = os.getenv("HOME");
|
|
|
|
tab_font_size = 9.0;
|
|
|
|
font_size = 10.7;
|
|
|
|
initial_rows = 43;
|
|
|
|
initial_cols = 180;
|
|
|
|
end
|
|
|
|
|
|
|
|
if string.find(wezterm.target_triple, "darwin") then
|
|
|
|
tab_font_size = 15.0;
|
|
|
|
font_size = 16;
|
|
|
|
initial_rows = 38;
|
|
|
|
initial_cols = 120;
|
|
|
|
end
|
|
|
|
|
|
|
|
local keys = {
|
|
|
|
-- Keyboard Navigation
|
|
|
|
--- delete words backwards
|
|
|
|
{ key = "Backspace", mods = "CTRL", action = { SendKey = { key = "U", mods = "CTRL" } } },
|
|
|
|
{ key = "Backspace", mods = "CMD", action = { SendKey = { key = "U", mods = "CTRL" } } },
|
|
|
|
{ key = "Backspace", mods = "ALT", action = { SendKey = { key = "W", mods = "CTRL" } } },
|
|
|
|
|
|
|
|
--- home and end
|
|
|
|
{ key = "LeftArrow", mods = "CTRL", action = { SendKey = { key = "Home" } } },
|
|
|
|
{ key = "LeftArrow", mods = "CMD", action = { SendKey = { key = "Home" } } },
|
|
|
|
{ key = "RightArrow", mods = "CTRL", action = { SendKey = { key = "End" } } },
|
|
|
|
{ key = "RightArrow", mods = "CMD", action = { SendKey = { key = "End" } } },
|
|
|
|
|
|
|
|
--- move one word
|
|
|
|
{ key = "LeftArrow", mods = "ALT", action = { SendKey = { key = "LeftArrow", mods = "CTRL" } } },
|
|
|
|
{ key = "RightArrow", mods = "ALT", action = { SendKey = { key = "RightArrow", mods = "CTRL" } } },
|
|
|
|
|
|
|
|
--- ctrl + jk keyboard navigation
|
|
|
|
{ key = "k", mods = "ALT", action = { SendKey = { key = "UpArrow" } } },
|
|
|
|
{ key = "k", mods = "CMD", action = { SendKey = { key = "UpArrow" } } },
|
|
|
|
{ key = "j", mods = "ALT", action = { SendKey = { key = "DownArrow" } } },
|
|
|
|
{ key = "j", mods = "CMD", action = { SendKey = { key = "DownArrow" } } },
|
|
|
|
|
|
|
|
--- accept completion on ctrl|alt|cmd + .
|
|
|
|
{ key = ".", mods = "CTRL", action = { SendKey = { key = "RightArrow" } } },
|
|
|
|
{ key = ".", mods = "ALT", action = { SendKey = { key = "RightArrow" } } },
|
|
|
|
{ key = ".", mods = "CMD", action = { SendKey = { key = "RightArrow" } } },
|
|
|
|
|
|
|
|
-- Fullscreen
|
|
|
|
{ key = "Enter", mods = "CTRL", action = "ToggleFullScreen" },
|
|
|
|
{ key = "Enter", mods = "CMD", action = "ToggleFullScreen" },
|
|
|
|
{ key = "Enter", mods = "ALT", action = "ToggleFullScreen" },
|
|
|
|
|
|
|
|
-- Clear Screen
|
|
|
|
{ key = "l", mods = "CMD", action = { SendKey = { key = "l", mods = "CTRL" } } },
|
|
|
|
{ key = "l", mods = "ALT", action = { SendKey = { key = "l", mods = "CTRL" } } },
|
|
|
|
{ key = "k", mods = "CMD", action = { SendKey = { key = "l", mods = "CTRL" } } },
|
|
|
|
|
|
|
|
-- Copy/Paste
|
|
|
|
{ key = "c", mods = "ALT", action = "Copy" },
|
|
|
|
{ key = "c", mods = "CMD", action = "Copy" },
|
|
|
|
{ key = "v", mods = "ALT", action = "Paste" },
|
|
|
|
{ key = "v", mods = "CMD", action = "Paste" },
|
|
|
|
|
|
|
|
-- Open New Window
|
|
|
|
{ key = "t", mods = "CMD", action = { SpawnTab = "CurrentPaneDomain" } },
|
|
|
|
{ key = "t", mods = "ALT", action = { SpawnTab = "CurrentPaneDomain" } },
|
|
|
|
{ key = "n", mods = "CMD", action = "SpawnWindow" },
|
|
|
|
{ key = "n", mods = "ALT", action = "SpawnWindow" },
|
|
|
|
{ key = "w", mods = "ALT", action = { EmitEvent = "CloseCurrentTab" } },
|
|
|
|
{ key = "w", mods = "CMD", action = { EmitEvent = "CloseCurrentTab" } },
|
|
|
|
|
|
|
|
-- Open the config
|
|
|
|
{ key = ",", mods = "ALT", action = { SendString = "vim ~/.config/wezterm/wezterm.lua\r\n" } },
|
|
|
|
{ key = ",", mods = "CMD", action = { SendString = "vim ~/.config/wezterm/wezterm.lua\r\n" } },
|
|
|
|
};
|
|
|
|
|
|
|
|
-- ALT-Tab
|
|
|
|
for i = 1, 9 do
|
|
|
|
table.insert(keys, { key = tostring(i), mods = "ALT", action = wezterm.action { ActivateTab = i - 1 } })
|
|
|
|
table.insert(keys, { key = tostring(i), mods = "CTRL", action = wezterm.action { ActivateTab = i - 1 } });
|
|
|
|
end
|
|
|
|
|
|
|
|
-- Delegate close confirmation to some apps such as VIM, etc.
|
|
|
|
wezterm.on("CloseCurrentTab", function(window, pane)
|
|
|
|
function is_vim()
|
|
|
|
local current_process = pane:get_title():upper()
|
|
|
|
return current_process:sub(- #"NVIM") == "NVIM" or current_process:sub(1, #"NVIM") == "NVIM" or
|
|
|
|
current_process:sub(- #"VIM") == "VIM" or current_process:sub(1, #"VIM") == "VIM" or
|
|
|
|
current_process:sub(- #"VI") == "VI" or current_process:sub(1, #"VI") == "VI"
|
|
|
|
end
|
|
|
|
|
|
|
|
if is_vim() then
|
|
|
|
window:perform_action(wezterm.action {
|
|
|
|
SendKey = { key = "Z", mods = "CTRL" }
|
|
|
|
}, pane)
|
2022-10-24 15:24:37 +02:00
|
|
|
else
|
2022-11-16 23:37:05 +01:00
|
|
|
window:perform_action(wezterm.action {
|
|
|
|
CloseCurrentTab = { confirm = false }
|
|
|
|
}, pane)
|
2022-10-24 15:24:37 +02:00
|
|
|
end
|
2022-11-16 23:37:05 +01:00
|
|
|
end)
|
|
|
|
|
|
|
|
-- Colors
|
|
|
|
local colors = {
|
|
|
|
-- Tab Bar Ayu Mirage
|
|
|
|
}
|
|
|
|
|
|
|
|
local color_schemes = {
|
|
|
|
["Ayu"] = {
|
|
|
|
background = "#0f1419",
|
|
|
|
}
|
|
|
|
};
|
2022-10-24 15:24:37 +02:00
|
|
|
|
|
|
|
return {
|
2022-11-16 23:37:05 +01:00
|
|
|
-- General
|
|
|
|
default_prog = default_prog,
|
|
|
|
default_cwd = default_cwd,
|
|
|
|
exit_behavior = "Close",
|
|
|
|
|
|
|
|
-- Key Bindings
|
|
|
|
keys = keys,
|
|
|
|
|
|
|
|
-- Window
|
|
|
|
initial_rows = initial_rows,
|
|
|
|
initial_cols = initial_cols,
|
|
|
|
window_padding = { left = 1, right = 1, top = 0, bottom = 0 },
|
|
|
|
|
|
|
|
-- Appearance and Colors
|
|
|
|
color_scheme = "Ayu",
|
|
|
|
colors = colors,
|
|
|
|
color_schemes = color_schemes,
|
|
|
|
window_decorations = "RESIZE",
|
|
|
|
default_cursor_style = "SteadyBlock",
|
|
|
|
audible_bell = "Disabled",
|
|
|
|
font_size = font_size,
|
|
|
|
harfbuzz_features = { "calt=0", "clig=0", "liga=0" },
|
|
|
|
window_frame = { font_size = tab_font_size, }
|
2022-10-24 15:24:37 +02:00
|
|
|
}
|
2022-11-16 23:37:05 +01:00
|
|
|
|