Updated Neovim Plugins as well as cleaned up aerospace config and sketbar config and added fastfetch config
58 lines
1.6 KiB
Lua
58 lines
1.6 KiB
Lua
local wezterm = require("wezterm")
|
|
|
|
-- if you are *NOT* lazy-loading smart-splits.nvim (recommended)
|
|
local function is_vim(pane)
|
|
-- this is set by the plugin, and unset on ExitPre in Neovim
|
|
return pane:get_user_vars().IS_NVIM == "true"
|
|
end
|
|
|
|
-- if you *ARE* lazy-loading smart-splits.nvim (not recommended)
|
|
-- you have to use this instead, but note that this will not work
|
|
-- in all cases (e.g. over an SSH connection). Also note that
|
|
-- `pane:get_foreground_process_name()` can have high and highly variable
|
|
-- latency, so the other implementation of `is_vim()` will be more
|
|
-- performant as well.
|
|
|
|
local direction_keys = {
|
|
h = "Left",
|
|
j = "Down",
|
|
k = "Up",
|
|
l = "Right",
|
|
}
|
|
|
|
local function split_nav(resize_or_move, key)
|
|
return {
|
|
key = key,
|
|
mods = resize_or_move == "resize" and "CTRL|SHIFT" or "CTRL",
|
|
action = wezterm.action_callback(function(win, pane)
|
|
if is_vim(pane) then
|
|
-- pass the keys through to vim/nvim
|
|
win:perform_action({
|
|
SendKey = { key = key, mods = resize_or_move == "resize" and "CTRL|SHIFT" or "CTRL" },
|
|
}, pane)
|
|
else
|
|
if resize_or_move == "resize" then
|
|
win:perform_action({ AdjustPaneSize = { direction_keys[key], 3 } }, pane)
|
|
else
|
|
win:perform_action({ ActivatePaneDirection = direction_keys[key] }, pane)
|
|
end
|
|
end
|
|
end),
|
|
}
|
|
end
|
|
|
|
return {
|
|
keys = {
|
|
-- move between split panes
|
|
split_nav("move", "h"),
|
|
split_nav("move", "j"),
|
|
split_nav("move", "k"),
|
|
split_nav("move", "l"),
|
|
-- resize panes
|
|
split_nav("resize", "h"),
|
|
split_nav("resize", "j"),
|
|
split_nav("resize", "k"),
|
|
split_nav("resize", "l"),
|
|
},
|
|
}
|