wezterm: permatabs on demand
This commit is contained in:
parent
0f1e2c9baf
commit
89accda030
1 changed files with 61 additions and 29 deletions
|
@ -1,6 +1,4 @@
|
||||||
local wezterm = require("wezterm")
|
local wezterm = require("wezterm")
|
||||||
local io = require("io")
|
|
||||||
local os = require("os")
|
|
||||||
local mux = wezterm.mux
|
local mux = wezterm.mux
|
||||||
local act = wezterm.action
|
local act = wezterm.action
|
||||||
|
|
||||||
|
@ -13,9 +11,6 @@ wezterm.on("gui-startup", function(cmd)
|
||||||
local _, _, local_win = mux.spawn_window({
|
local _, _, local_win = mux.spawn_window({
|
||||||
workspace = "default",
|
workspace = "default",
|
||||||
})
|
})
|
||||||
for _ = 1, 10 do
|
|
||||||
local_win:spawn_tab({})
|
|
||||||
end
|
|
||||||
|
|
||||||
mux.spawn_window({
|
mux.spawn_window({
|
||||||
workspace = "dln-dev",
|
workspace = "dln-dev",
|
||||||
|
@ -29,9 +24,6 @@ wezterm.on("mux-startup", function()
|
||||||
local _, _, dev_win = mux.spawn_window({
|
local _, _, dev_win = mux.spawn_window({
|
||||||
workspace = "dln-dev",
|
workspace = "dln-dev",
|
||||||
})
|
})
|
||||||
for _ = 1, 10 do
|
|
||||||
dev_win:spawn_tab({})
|
|
||||||
end
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local function scheme_for_appearance(appearance)
|
local function scheme_for_appearance(appearance)
|
||||||
|
@ -51,24 +43,64 @@ end
|
||||||
|
|
||||||
local is_server = wezterm.hostname() == "dln-dev"
|
local is_server = wezterm.hostname() == "dln-dev"
|
||||||
|
|
||||||
|
local function activate_nvim(window, pane)
|
||||||
|
wezterm.log_info("activate_nvim")
|
||||||
|
for _, t in ipairs(window:mux_window():tabs_with_info()) do
|
||||||
|
for _, p in ipairs(t.tab:panes()) do
|
||||||
|
if p:get_title() == "nvim" then
|
||||||
|
window:perform_action(
|
||||||
|
act.Multiple({
|
||||||
|
act.ActivateTab(t.index),
|
||||||
|
act.MoveTab(0),
|
||||||
|
}),
|
||||||
|
pane
|
||||||
|
)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
wezterm.on("user-var-changed", function(window, pane, name, value)
|
wezterm.on("user-var-changed", function(window, pane, name, value)
|
||||||
wezterm.log_info("user-var-changed", name, value)
|
wezterm.log_info("user-var-changed", name, value)
|
||||||
|
|
||||||
if name == "nvim_activate" then
|
if name == "nvim_activate" then
|
||||||
for _, t in ipairs(window:mux_window():tabs_with_info()) do
|
activate_nvim(window, pane)
|
||||||
for _, p in ipairs(t.tab:panes()) do
|
|
||||||
if p:get_title() == "nvim" then
|
|
||||||
window:perform_action(act.ActivateTab(t.index), p)
|
|
||||||
if t.index > 0 then
|
|
||||||
window:perform_action(act.MoveTab(0), p)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- window:perform_action(act.ActivateTab(0), pane)
|
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
local function activate_tab(title, index)
|
||||||
|
return function(window, pane)
|
||||||
|
wezterm.log_info(title)
|
||||||
|
for _, t in ipairs(window:mux_window():tabs_with_info()) do
|
||||||
|
if t.tab:get_title() == title then
|
||||||
|
window:perform_action(
|
||||||
|
act.Multiple({
|
||||||
|
act.ActivateTab(t.index),
|
||||||
|
act.MoveTab(index),
|
||||||
|
}),
|
||||||
|
pane
|
||||||
|
)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local tab, _, _ = window:mux_window():spawn_tab({})
|
||||||
|
tab:set_title(title)
|
||||||
|
window:perform_action(act.MoveTab(index), pane)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
wezterm.on("tab-1", activate_nvim)
|
||||||
|
wezterm.on("tab-2", activate_tab("t2", 1))
|
||||||
|
wezterm.on("tab-3", activate_tab("t3", 2))
|
||||||
|
wezterm.on("tab-4", activate_tab("t4", 3))
|
||||||
|
wezterm.on("tab-5", activate_tab("t5", 4))
|
||||||
|
wezterm.on("tab-6", activate_tab("t6", 5))
|
||||||
|
wezterm.on("tab-7", activate_tab("t7", 6))
|
||||||
|
wezterm.on("tab-8", activate_tab("t8", 7))
|
||||||
|
wezterm.on("tab-9", activate_tab("t9", 8))
|
||||||
|
wezterm.on("tab-10", activate_tab("t10", 9))
|
||||||
|
|
||||||
return {
|
return {
|
||||||
color_scheme = _get_scheme(),
|
color_scheme = _get_scheme(),
|
||||||
color_scheme_dirs = { "/home/dln/.config/wezterm" },
|
color_scheme_dirs = { "/home/dln/.config/wezterm" },
|
||||||
|
@ -162,16 +194,16 @@ return {
|
||||||
{ key = "r", mods = "ALT", action = act.ReloadConfiguration },
|
{ key = "r", mods = "ALT", action = act.ReloadConfiguration },
|
||||||
-- mux
|
-- mux
|
||||||
{ key = "E", mods = "CTRL|SHIFT", action = act.DetachDomain({ DomainName = "dln-dev" }) },
|
{ key = "E", mods = "CTRL|SHIFT", action = act.DetachDomain({ DomainName = "dln-dev" }) },
|
||||||
{ key = "1", mods = "ALT", action = act({ ActivateTab = 0 }) },
|
{ key = "1", mods = "ALT", action = act.EmitEvent("tab-1") },
|
||||||
{ key = "2", mods = "ALT", action = act({ ActivateTab = 1 }) },
|
{ key = "2", mods = "ALT", action = act.EmitEvent("tab-2") },
|
||||||
{ key = "3", mods = "ALT", action = act({ ActivateTab = 2 }) },
|
{ key = "3", mods = "ALT", action = act.EmitEvent("tab-3") },
|
||||||
{ key = "4", mods = "ALT", action = act({ ActivateTab = 3 }) },
|
{ key = "4", mods = "ALT", action = act.EmitEvent("tab-4") },
|
||||||
{ key = "5", mods = "ALT", action = act({ ActivateTab = 4 }) },
|
{ key = "5", mods = "ALT", action = act.EmitEvent("tab-5") },
|
||||||
{ key = "6", mods = "ALT", action = act({ ActivateTab = 5 }) },
|
{ key = "6", mods = "ALT", action = act.EmitEvent("tab-6") },
|
||||||
{ key = "7", mods = "ALT", action = act({ ActivateTab = 6 }) },
|
{ key = "7", mods = "ALT", action = act.EmitEvent("tab-7") },
|
||||||
{ key = "8", mods = "ALT", action = act({ ActivateTab = 7 }) },
|
{ key = "8", mods = "ALT", action = act.EmitEvent("tab-8") },
|
||||||
{ key = "9", mods = "ALT", action = act({ ActivateTab = 8 }) },
|
{ key = "9", mods = "ALT", action = act.EmitEvent("tab-9") },
|
||||||
{ key = "0", mods = "ALT", action = act({ ActivateTab = 9 }) },
|
{ key = "0", mods = "ALT", action = act.EmitEvent("tab-10") },
|
||||||
{ key = "RightArrow", mods = "CTRL", action = act.ActivateTabRelative(1) },
|
{ key = "RightArrow", mods = "CTRL", action = act.ActivateTabRelative(1) },
|
||||||
{ key = "LeftArrow", mods = "CTRL", action = act.ActivateTabRelative(-1) },
|
{ key = "LeftArrow", mods = "CTRL", action = act.ActivateTabRelative(-1) },
|
||||||
{ key = "l", mods = "ALT", action = wezterm.action.ShowLauncher },
|
{ key = "l", mods = "ALT", action = wezterm.action.ShowLauncher },
|
||||||
|
|
Loading…
Reference in a new issue