feat: add Windows Terminal native split-pane option

Add multiplexer config option to switch between tmux/psmux (default) and
Windows Terminal's native split-pane on Windows. This avoids the
psmux focus-freeze issue when switching away from the terminal window.

- Add Multiplexer field to config with MultiplexerBackend() getter
- Add startWtSession() using wt.exe split-pane command
- Dispatch startTmuxSession() based on OS and config
- Document option in config.example.yaml
This commit is contained in:
2026-09-16 21:10:36 +02:00
parent bd23403e6c
commit a1760b7b01
3 changed files with 70 additions and 3 deletions
+14
View File
@@ -73,6 +73,11 @@ type Config struct {
// AutoUpdateCheck controls whether kctl-tui checks for updates on
// startup. Defaults to true when omitted.
AutoUpdateCheck *bool `yaml:"auto_update_check"`
// Multiplexer selects the terminal multiplexer for the session.
// "tmux" (default) uses tmux/psmux. "wt" uses Windows Terminal's
// native split-pane (only effective on Windows).
Multiplexer string `yaml:"multiplexer"`
}
// IsAutoUpdateCheckEnabled returns true unless the user has explicitly set
@@ -84,6 +89,15 @@ func (c Config) IsAutoUpdateCheckEnabled() bool {
return *c.AutoUpdateCheck
}
// MultiplexerBackend returns the configured multiplexer backend,
// falling back to "tmux" if not set.
func (c Config) MultiplexerBackend() string {
if c.Multiplexer == "" {
return "tmux"
}
return c.Multiplexer
}
// LoginCommand returns the configured AWS SSO login command, falling back
// to DefaultAWSSSOLoginCommand if none is set.
func (c Config) LoginCommand() string {