127 lines
3.7 KiB
Lua
127 lines
3.7 KiB
Lua
-- Pull in the wezterm API
|
|
local wezterm = require 'wezterm'
|
|
|
|
-- This table will hold the configuration.
|
|
|
|
local config = {}
|
|
local keys = {}
|
|
local mouse_bindings = {}
|
|
local launch_menu = {}
|
|
|
|
if wezterm.config_builder then
|
|
config = wezterm.config_builder()
|
|
end
|
|
|
|
local mux = wezterm.mux
|
|
local act = wezterm.action
|
|
|
|
wezterm.on('format-window-title', function(tab, pane, tabs, panes, config)
|
|
local zoomed = 'wezterm: '
|
|
if tab.active_pane.is_zoomed then
|
|
zoomed = '[Z] '
|
|
end
|
|
|
|
local index = ''
|
|
if #tabs > 1 then
|
|
index = string.format('[%d/%d] ', tab.tab_index + 1, #tabs)
|
|
end
|
|
|
|
return zoomed .. index .. tab.active_pane.title
|
|
end)
|
|
|
|
config.enable_kitty_graphics = true
|
|
|
|
config.ssh_backend = "Ssh2"
|
|
config.ssh_domains = {}
|
|
|
|
config.leader = { key = 'a', mods = 'CTRL', timeout_milliseconds = 1000 }
|
|
|
|
config.use_fancy_tab_bar = true
|
|
config.enable_scroll_bar = true
|
|
config.initial_rows = 48
|
|
config.initial_cols = 160
|
|
config.window_decorations = "INTEGRATED_BUTTONS | RESIZE"
|
|
|
|
config.default_prog = { 'pwsh.exe', '-NoLogo' }
|
|
|
|
config.font = wezterm.font('CaskaydiaCove NFM', { weight = 'Regular' })
|
|
config.font_size = 10.0
|
|
|
|
config.front_end = "WebGpu"
|
|
config.webgpu_power_preference = 'HighPerformance'
|
|
config.max_fps = 120
|
|
config.animation_fps = 120
|
|
config.scrollback_lines = 10000
|
|
config.default_cursor_style = "SteadyBar"
|
|
config.color_scheme = 'Adventure'
|
|
config.window_background_opacity = 1.0
|
|
config.window_background_gradient = {
|
|
orientation = 'Vertical',
|
|
colors = {
|
|
'#000000', '#000100', '#000200', '#000300', '#000400', '#000500',
|
|
'#000600', '#000700', '#000800', '#000900', '#001200',
|
|
},
|
|
interpolation = 'Linear',
|
|
blend = 'Rgb',
|
|
}
|
|
|
|
config.launch_menu = {
|
|
{
|
|
label = "PowerShell",
|
|
args = {"C:/Program Files/PowerShell/7/pwsh.exe", "-WorkingDirectory", wezterm.home_dir},
|
|
domain = {DomainName="local"}
|
|
},
|
|
{
|
|
label = 'cmd',
|
|
args = {'cmd.exe'}
|
|
},
|
|
{
|
|
label = 'Ubuntu',
|
|
args = {'wsl','-d','Ubuntu'}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-- switch active tab
|
|
local act = wezterm.action
|
|
|
|
config.keys = {
|
|
{
|
|
key = 'a', mods = 'LEADER|CTRL', action = act.SendKey { key = 'a', mods = 'CTRL' }},
|
|
-- Panes
|
|
{ key = "\\", mods="LEADER", action=act{SplitVertical={domain="CurrentPaneDomain"}}},
|
|
{ key = "|", mods="LEADER|SHIFT", action=act{SplitHorizontal={domain="CurrentPaneDomain"}}},
|
|
{ key = "w", mods="CTRL|SHIFT", action=act{CloseCurrentPane={confirm=true}}},
|
|
{ key = "LeftArrow", mods="CTRL|SHIFT", action=act{ActivatePaneDirection="Left"}},
|
|
{ key = "RightArrow", mods="CTRL|SHIFT", action=act{ActivatePaneDirection="Right"}},
|
|
{ key = "UpArrow", mods="CTRL|SHIFT", action=act{ActivatePaneDirection="Up"}},
|
|
{ key = "DownArrow", mods="CTRL|SHIFT", action=act{ActivatePaneDirection="Down"}},
|
|
-- Tabs
|
|
{ key = 'n', mods = 'CTRL|SHIFT', action=act.SpawnTab 'DefaultDomain'},
|
|
{ key = 'u', mods = 'CTRL|SHIFT', action=act.SpawnTab { DomainName = 'WSL:Ubuntu'}},
|
|
{ key = "Tab", mods="CTRL", action=act{ActivateTabRelative=-1}},
|
|
{ key = "Tab", mods="CTRL|SHIFT", action=act{ActivateTabRelative=1}},
|
|
{ key = "1", mods="CTRL", action=act{ActivateTab=(1-1)}},
|
|
{ key = "2", mods="CTRL", action=act{ActivateTab=(2-1)}},
|
|
{ key = "3", mods="CTRL", action=act{ActivateTab=(3-1)}},
|
|
{ key = "4", mods="CTRL", action=act{ActivateTab=(4-1)}},
|
|
{ key = "5", mods="CTRL", action=act{ActivateTab=(5-1)}},
|
|
{ key = "6", mods="CTRL", action=act{ActivateTab=(6-1)}},
|
|
{ key = "7", mods="CTRL", action=act{ActivateTab=(7-1)}},
|
|
{ key = "8", mods="CTRL", action=act{ActivateTab=(8-1)}},
|
|
{ key = "9", mods="CTRL", action=act{ActivateTab=(9-1)}},
|
|
}
|
|
|
|
-- triple click on my output to select it
|
|
mouse_bindings = {
|
|
{
|
|
event = { Down = { streak = 3, button = 'Left' } },
|
|
action = act.SelectTextAtMouseCursor 'SemanticZone',
|
|
mods = 'NONE',
|
|
},
|
|
}
|
|
|
|
|
|
return config
|