-- 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