diff --git a/src/main.rs b/src/main.rs index 50fcf6f..90a5da2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -227,6 +227,13 @@ async fn handle_key_event(terminal: &mut Terminal< tracing::info!("Playing: {:?} (playlist: {} tracks)", path, state.playlist.len()); } } + (KeyCode::Char(' '), KeyModifiers::SHIFT) => { + // Shift+Space: Stop playback + state.player_state = PlayerState::Stopped; + state.current_position = 0.0; + state.current_duration = 0.0; + tracing::info!("Stopped"); + } (KeyCode::Char(' '), _) => { match state.player_state { PlayerState::Playing => { diff --git a/src/ui/mod.rs b/src/ui/mod.rs index 98d791c..abd6aca 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -251,7 +251,7 @@ fn render_status_bar(frame: &mut Frame, state: &AppState, area: Rect) { frame.render_widget(status_bar, area); } else { // Normal mode shortcuts (always shown when not in search mode) - let shortcuts = "/: Search • v: Mark • a: Add to Playlist • c: Clear Playlist • Enter: Play • Space: Pause • ←→: Seek • +/-: Volume • n/p: Next/Prev • r: Rescan • q: Quit"; + let shortcuts = "/: Search • v: Mark • a: Add • c: Clear • Enter: Play • Space: Pause • Shift+Space: Stop • ←→: Seek • +/-: Vol • n/p: Next/Prev • r: Rescan • q: Quit"; let status_bar = Paragraph::new(shortcuts) .style(Style::default().fg(Theme::muted_text()).bg(Theme::background())) .alignment(Alignment::Center);