Commit Graph

20 Commits

Author SHA1 Message Date
gm
89064e4cc1 Add separate English/Korean font selection to font settings menu
config.font is set via wezterm.font_with_fallback({ primary, korean }),
a multi-line block that the existing single-line set_config_value
can't touch. Added get_current_fonts (reads both font names straight
out of the config file text, for display) and set_fonts (replaces the
whole font_with_fallback body in one shot, lazy-matched between the
"{" and the closing "})"), plus two new font settings menu entries
("영어 폰트" / "한글 폰트") that prompt for one name at a time while
keeping the other font unchanged.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-18 01:03:21 +09:00
gm
da9f4f70e6 Default new SSH domains to multiplexing = "None"
Without it, WezTerm tries to run its own mux protocol over the SSH
session (spawning `wezterm cli --prefer-mux proxy` on the remote),
which fails with "Please install the same version of wezterm on both
the client and server" whenever the remote host doesn't have wezterm
installed -- the case for a plain SSH target. multiplexing = "None"
makes the domain behave like a normal SSH terminal instead.

update_ssh_domain's match pattern is now a lazy "match to the next
closing brace" instead of assuming an exact 3-field shape, so it can
still find and replace entries saved before this change (without the
multiplexing field) as well as ones saved after.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-18 01:00:39 +09:00
gm
4d680aa6dd Add SSH port field and an edit flow for existing SSH domains
- SSH domain add flow gains a 4th, optional "port" step; a non-empty
  port is appended to remote_address as "host:port" (WezTerm's native
  way to specify a non-default SSH port), matching how existing
  entries are parsed back out via the new split_remote_address helper.
- New "SSH 도메인 수정" entry in connection settings lists existing
  config.ssh_domains entries; picking one re-prompts each field
  (name/address/port/username) with the current value shown in the
  description, where leaving a field blank keeps the old value instead
  of cancelling (unlike the add flow, where blank cancels).
- update_ssh_domain locates the exact entry block by its original name
  (pattern built from append_ssh_domain's fixed write format, escaped
  for Lua pattern safety) and replaces it wholesale, so a rename is
  just "old name matched, new block written".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-18 00:56:51 +09:00
gm
7a0304bc3d Note that WezTerm must be restarted for new SSH domains to connect
config.ssh_domains is only registered into wezterm's mux domain list
at process startup; ReloadConfiguration picks up simple value changes
(font, colors, etc.) but does not re-register newly added ssh domains.
Selecting a freshly-saved domain from the main menu before a full
restart fails with "domain name ... is invalid" since it's absent
from the mux's domain list. Updated the save notification to tell the
user a restart (not just reload) is required.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-18 00:49:10 +09:00
gm
d4daab7cf6 Restructure main menu: connections on top, settings at the bottom
Main menu now lists each registered config.ssh_domains entry as a
choice (selecting one spawns a tab attached to that SSH domain via
SpawnTab), with a single "설정" entry below them that opens what used
to be the main menu (font/connection/other settings, launcher,
reload) -- renamed to show_settings_menu.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-18 00:43:50 +09:00
gm
9c36a97dd2 Remove update-right-status defer hack, call PromptInputLine directly
The real bug was the invalid initial_value field (fixed previously),
not Enter bleed-through from InputSelector. The defer-via-status-tick
workaround left a gap (up to the status update interval) between the
InputSelector closing and the PromptInputLine actually capturing
keyboard input -- during that gap the underlying shell was visible
(the reported flash) and any keystrokes typed during it went to the
shell instead of the field. This is especially damaging for the
3-step SSH domain flow, where hitting the gap on any step submits an
empty line and the whole entry is silently cancelled without saving.
Calling perform_action synchronously, as before the call_after/defer
detour, removes the gap entirely.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-18 00:41:44 +09:00
gm
387c9d7397 Remove unsupported initial_value field from PromptInputLine
The user's WezTerm build (20240203-110809) rejects `initial_value` as a
PromptInputLine field (only `action`/`description` are valid on that
version), so constructing the action errored out immediately and the
whole callback died silently -- the prompt never appeared and the
underlying shell showed through. Current values are now shown inline
in the description text instead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-18 00:32:52 +09:00
gm
77eb0397f6 Replace wezterm.time.call_after with update-right-status-based defer for prompt chaining
Deferring the PromptInputLine open by one tick via wezterm.time.call_after
did not fix the InputSelector -> PromptInputLine chaining issue on the
user's WezTerm build (the box never appeared at all, straight back to the
shell) — consistent with call_after being unavailable/erroring and silently
aborting the callback. Replaced it with a pending_action flag drained on the
next update-right-status tick, an event hook already confirmed working via
the existing status bar, removing the dependency on wezterm.time entirely.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-17 23:02:33 +09:00
gm
672cc22b0b Fix PromptInputLine closing immediately after InputSelector, split SSH domain entry into steps
Selecting a settings item from an InputSelector menu (font size, line height,
color scheme, opacity, scrollback lines, max FPS, SSH domain add) would open
a PromptInputLine that closed instantly, dumping back to the shell — the
Enter that confirmed the InputSelector choice was bleeding into the newly
opened PromptInputLine. Deferring the PromptInputLine open by one tick via
wezterm.time.call_after fixes it. SSH domain registration now asks for name,
address, and username one at a time instead of a single comma-separated line.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-17 19:01:02 +09:00
gm
0876d2656c Fix SSH domain menu persistence 2026-07-17 01:06:19 +09:00
gm
fb37c2ff50 Fix menu button and keep settings in WezTerm 2026-07-17 00:53:34 +09:00
gm
0f9632a678 Add clickable menu and prompt settings 2026-07-17 00:49:11 +09:00
gm
124c99bef8 Use Windows settings editor command 2026-07-16 23:52:08 +09:00
gm
e5a4e91ec2 Make settings editor launch robust 2026-07-16 23:44:17 +09:00
gm
622e6dd781 Show main menu hint in tab bar 2026-07-16 21:18:53 +09:00
gm
df38de097b Add main settings menu 2026-07-16 18:36:44 +09:00
gm
c3f6cff4c1 Move tab bar to top 2026-07-16 17:46:46 +09:00
gm
4c624e37c1 Always show tab bar 2026-07-16 17:38:18 +09:00
gm
491517e007 Show launcher menu on startup 2026-07-16 17:33:54 +09:00
gm
df0fd4e0a7 Add WezTerm configuration 2026-07-16 17:30:25 +09:00