diff --git a/README.md b/README.md index df0c5e6..83caba9 100644 --- a/README.md +++ b/README.md @@ -74,17 +74,33 @@ contexts: ## TUI Key Bindings +### Global + | Key | Action | |-----|--------| | `j`/`k` or `↑`/`↓` | Navigate | | `Enter` | Select | | `Esc`/`q` | Go back | | `H` | Go to home (service list) | -| `/` | Filter (instances, IPs) | | `C` | Context switcher | -| `s`/`x`/`f` | Start/Stop/Failover (RDS detail) | | `q` (on service list) | Quit | +### EC2 (SSM Session) + +| Key | Action | +|-----|--------| +| `/` | Filter instances | +| `r` | Refresh instance list | +| `Enter` | Connect to instance | + +### RDS + +| Key | Action | +|-----|--------| +| `s` | Start instance | +| `x` | Stop instance | +| `f` | Failover (Aurora) | + ## Documentation - [Architecture](.kiro/docs/architecture-en.md) diff --git a/internal/app/screen_ec2.go b/internal/app/screen_ec2.go index 219807a..4116574 100644 --- a/internal/app/screen_ec2.go +++ b/internal/app/screen_ec2.go @@ -50,6 +50,11 @@ func (m Model) updateInstanceList(msg tea.KeyMsg) (tea.Model, tea.Cmd) { } case "/": m.filterActive = true + case "r": + m.screen = screenLoading + m.filterInput = "" + m.instIdx = 0 + return m, m.loadInstances() case "enter": if len(m.filtered) > 0 && m.instIdx < len(m.filtered) { return m, m.startSSMSession(m.filtered[m.instIdx]) @@ -178,6 +183,6 @@ func (m Model) viewInstanceList() string { } b.WriteString("\n") - b.WriteString(dimStyle.Render("↑/↓: navigate • /: filter • enter: connect • esc: back • H: home")) + b.WriteString(dimStyle.Render("↑/↓: navigate • /: filter • r: refresh • enter: connect • esc: back • H: home")) return b.String() }