From fb1f19d6363c4c53b68ad304d1c4e00aac4303df Mon Sep 17 00:00:00 2001 From: leafx54 Date: Sat, 23 Aug 2025 22:26:10 -0400 Subject: [PATCH 1/2] feat: enhance settings modal input handling (#21) - Change settings key from S back to comma (,) for consistency - Add vim-style navigation: k/j for up/down movement - Add Space as alternative to Enter for theme selection - Remove T key theme toggle functionality (now modal-only) - Update footer to show enhanced key bindings - Maintain backward compatibility with arrow keys Resolves #21 --- src/events.rs | 9 ++++----- src/ui/app.rs | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/events.rs b/src/events.rs index 6fbbc59..0a11e07 100644 --- a/src/events.rs +++ b/src/events.rs @@ -55,11 +55,10 @@ impl EventHandler { match key_event.code { KeyCode::Char('q') => Ok(AppEvent::Quit), KeyCode::Esc => Ok(AppEvent::CloseSettings), - KeyCode::Char('s') | KeyCode::Char('S') => Ok(AppEvent::OpenSettings), - KeyCode::Char('t') | KeyCode::Char('T') => Ok(AppEvent::ToggleTheme), - KeyCode::Up => Ok(AppEvent::NavigateUp), - KeyCode::Down => Ok(AppEvent::NavigateDown), - KeyCode::Enter => Ok(AppEvent::Select), + KeyCode::Char(',') => Ok(AppEvent::OpenSettings), + KeyCode::Up | KeyCode::Char('k') => Ok(AppEvent::NavigateUp), + KeyCode::Down | KeyCode::Char('j') => Ok(AppEvent::NavigateDown), + KeyCode::Enter | KeyCode::Char(' ') => Ok(AppEvent::Select), KeyCode::Char('c') if key_event.modifiers.contains(KeyModifiers::CONTROL) => { diff --git a/src/ui/app.rs b/src/ui/app.rs index 500d3cd..5af8f5d 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -186,9 +186,8 @@ impl App { } } AppEvent::ToggleTheme => { - // Toggle theme through settings system - self.settings.get_mut().toggle_theme(); - self.settings.get().apply_theme(&mut self.theme); + // T key functionality removed in Issue #21 + // Theme changes now only available through settings modal } AppEvent::Resize(width, height) => { self.last_size = Some((width, height)); @@ -371,11 +370,11 @@ impl App { let footer_text = match self.state { AppState::Main => format!( - "ESC/q: Quit | T: Toggle Theme | S: Settings | Current: [{}] | Production v0.1.0", + "ESC/q: Quit | ,: Settings | Current: [{}] | Production v0.1.0", current_theme ), AppState::Settings => format!( - "ESC: Back to Main | T: Toggle Theme | Current: [{}] | Settings Mode", + "ESC: Back to Main | ↑↓/kj: Navigate | Enter/Space: Select | Current: [{}]", current_theme ), AppState::Quitting => "Application shutting down gracefully...".to_string(), From 49ebfab06c6c854bc7fa0f36d842e95c832db741 Mon Sep 17 00:00:00 2001 From: leafx54 Date: Sat, 23 Aug 2025 22:28:19 -0400 Subject: [PATCH 2/2] fix: revert to S key for settings (better UX) - Keep S/s for settings instead of comma - more intuitive - Mnemonic keys are better for discoverability - Maintains user-friendly interface design - Update footer to reflect S key binding --- src/events.rs | 2 +- src/ui/app.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/events.rs b/src/events.rs index 0a11e07..a5ea98a 100644 --- a/src/events.rs +++ b/src/events.rs @@ -55,7 +55,7 @@ impl EventHandler { match key_event.code { KeyCode::Char('q') => Ok(AppEvent::Quit), KeyCode::Esc => Ok(AppEvent::CloseSettings), - KeyCode::Char(',') => Ok(AppEvent::OpenSettings), + KeyCode::Char('s') | KeyCode::Char('S') => Ok(AppEvent::OpenSettings), KeyCode::Up | KeyCode::Char('k') => Ok(AppEvent::NavigateUp), KeyCode::Down | KeyCode::Char('j') => Ok(AppEvent::NavigateDown), KeyCode::Enter | KeyCode::Char(' ') => Ok(AppEvent::Select), diff --git a/src/ui/app.rs b/src/ui/app.rs index 5af8f5d..80a37f8 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -370,7 +370,7 @@ impl App { let footer_text = match self.state { AppState::Main => format!( - "ESC/q: Quit | ,: Settings | Current: [{}] | Production v0.1.0", + "ESC/q: Quit | S: Settings | Current: [{}] | Production v0.1.0", current_theme ), AppState::Settings => format!(