Add main settings menu
This commit is contained in:
66
wezterm.lua
66
wezterm.lua
@@ -138,13 +138,66 @@ config.unix_domains = {
|
|||||||
{ name = "unix" },
|
{ name = "unix" },
|
||||||
}
|
}
|
||||||
|
|
||||||
-- 시작 시 첫 화면으로 통합 런처를 띄워 탭/도메인/워크스페이스/저장 세션을 바로 선택합니다.
|
local config_file = "/mnt/storage/wezterm.lua"
|
||||||
wezterm.on("gui-startup", function(cmd)
|
|
||||||
local tab, pane, window = wezterm.mux.spawn_window(cmd or {})
|
local function open_config_section(window, pane, line)
|
||||||
window:gui_window():perform_action(
|
window:perform_action(
|
||||||
act.ShowLauncherArgs({ flags = "FUZZY|TABS|DOMAINS|WORKSPACES|LAUNCH_MENU_ITEMS" }),
|
act.SpawnCommandInNewTab({
|
||||||
|
args = {
|
||||||
|
"sh",
|
||||||
|
"-lc",
|
||||||
|
string.format('editor="${EDITOR:-vi}"; exec "$editor" +%d %q', line, config_file),
|
||||||
|
},
|
||||||
|
}),
|
||||||
pane
|
pane
|
||||||
)
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function show_main_menu(window, pane)
|
||||||
|
window:perform_action(
|
||||||
|
act.InputSelector({
|
||||||
|
title = "메인 메뉴",
|
||||||
|
fuzzy = true,
|
||||||
|
choices = {
|
||||||
|
{ label = "폰트 설정", id = "font" },
|
||||||
|
{ label = "연결 설정", id = "connection" },
|
||||||
|
{ label = "기타 설정", id = "other" },
|
||||||
|
{ label = "통합 런처", id = "launcher" },
|
||||||
|
{ label = "설정 다시 불러오기", id = "reload" },
|
||||||
|
},
|
||||||
|
action = wezterm.action_callback(function(inner_window, inner_pane, id)
|
||||||
|
if not id then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if id == "font" then
|
||||||
|
open_config_section(inner_window, inner_pane, 6)
|
||||||
|
elseif id == "connection" then
|
||||||
|
open_config_section(inner_window, inner_pane, 123)
|
||||||
|
elseif id == "other" then
|
||||||
|
open_config_section(inner_window, inner_pane, 339)
|
||||||
|
elseif id == "launcher" then
|
||||||
|
inner_window:perform_action(
|
||||||
|
act.ShowLauncherArgs({ flags = "FUZZY|TABS|DOMAINS|WORKSPACES|LAUNCH_MENU_ITEMS" }),
|
||||||
|
inner_pane
|
||||||
|
)
|
||||||
|
elseif id == "reload" then
|
||||||
|
inner_window:perform_action(act.ReloadConfiguration, inner_pane)
|
||||||
|
end
|
||||||
|
end),
|
||||||
|
}),
|
||||||
|
pane
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
wezterm.on("show-main-menu", function(window, pane)
|
||||||
|
show_main_menu(window, pane)
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- 시작 시 첫 화면으로 메인 메뉴를 띄워 설정과 연결 메뉴에 바로 접근합니다.
|
||||||
|
wezterm.on("gui-startup", function(cmd)
|
||||||
|
local tab, pane, window = wezterm.mux.spawn_window(cmd or {})
|
||||||
|
show_main_menu(window:gui_window(), pane)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- 시작 시 자동으로 워크스페이스/레이아웃을 구성하려면 아래 예시를 참고하세요.
|
-- 시작 시 자동으로 워크스페이스/레이아웃을 구성하려면 아래 예시를 참고하세요.
|
||||||
@@ -192,6 +245,9 @@ config.keys = {
|
|||||||
{ key = "c", mods = "CTRL|SHIFT", action = act.CopyTo("Clipboard") },
|
{ key = "c", mods = "CTRL|SHIFT", action = act.CopyTo("Clipboard") },
|
||||||
{ key = "v", mods = "CTRL|SHIFT", action = act.PasteFrom("Clipboard") },
|
{ key = "v", mods = "CTRL|SHIFT", action = act.PasteFrom("Clipboard") },
|
||||||
|
|
||||||
|
-- 메인 메뉴: 설정 메뉴와 통합 런처를 다시 표시
|
||||||
|
{ key = "m", mods = "LEADER", action = act.EmitEvent("show-main-menu") },
|
||||||
|
|
||||||
-- [2] 워크스페이스(=tmux 세션) 전환/생성 목록
|
-- [2] 워크스페이스(=tmux 세션) 전환/생성 목록
|
||||||
{ key = "w", mods = "LEADER", action = act.ShowLauncherArgs({ flags = "WORKSPACES" }) },
|
{ key = "w", mods = "LEADER", action = act.ShowLauncherArgs({ flags = "WORKSPACES" }) },
|
||||||
-- [2] SSH 도메인 접속 (config.ssh_domains에 등록한 서버 목록에서 선택)
|
-- [2] SSH 도메인 접속 (config.ssh_domains에 등록한 서버 목록에서 선택)
|
||||||
|
|||||||
Reference in New Issue
Block a user