Compare commits

...

3 Commits

View File

@@ -51,16 +51,31 @@ config.keys = {
mods = 'CTRL|SHIFT', mods = 'CTRL|SHIFT',
action = wezterm.action.CloseCurrentPane { confirm = true }, action = wezterm.action.CloseCurrentPane { confirm = true },
}, },
-- TODO: Make CTRL|SHIFT T open in home directory
-- TODO: Make CTRL|ALT " open in current directory
-- TODO: Make CTRL|ALT % open in current directory
} }
local move_mods = 'CTRL|SHIFT' local function send_move_key(window, pane)
local function send_key(window, pane) -- TODO: Detect if vim/nvim is running
-- TODO: Detect if tmux is running -- We can't use pane:get_foreground_process_info() because it appears to
-- Detect if vim/nvim is running -- contain info about the most recent process launched in the pane. During
-- Failing that, check if there is only a single pane -- testing this was lua-language-server.exe so obisouly can't be used to
-- determine if we're running inside neovim.
-- WezTerm supports the OSC 1337 SetUserVar escape sequence, this could be
-- used to inform WezTerm that neovim is running in a given tab.
if pane:get_user_vars()['vim'] ~= nil then
if pane:get_user_vars().vim ~= '1' then
return false return false
end end
elseif #window:active_tab():panes() > 1 then
return false
end
return true
end
local move_mods = 'CTRL'
for _, map in pairs({ for _, map in pairs({
{ key = 'h', direction = 'Left' }, { key = 'h', direction = 'Left' },
{ key = 'l', direction = 'Right' }, { key = 'l', direction = 'Right' },
@@ -71,9 +86,9 @@ for _, map in pairs({
key = map.key, key = map.key,
mods = move_mods, mods = move_mods,
action = wezterm.action_callback(function(window, pane) action = wezterm.action_callback(function(window, pane)
if send_key(window, pane) then if send_move_key(window, pane) then
window:perform_action( window:perform_action(
wezterm.action.SendKey({ key = map.key, modes = move_mods }), pane) wezterm.action.SendKey({ key = map.key, mods = move_mods }), pane)
else else
window:perform_action( window:perform_action(
wezterm.action.ActivatePaneDirection(map.direction), pane) wezterm.action.ActivatePaneDirection(map.direction), pane)
@@ -89,6 +104,14 @@ local try_require = function(module)
pcall(function() require(module)(wezterm, config) end) pcall(function() require(module)(wezterm, config) end)
end; end;
-- Example of ~/.config/wezterm/local.lua to set the window size
--
-- ```lua
-- return function(wezterm, config)
-- config.initial_rows = 107
-- config.initial_cols = 322
-- end
-- ```
try_require('local') try_require('local')
return config return config