@@ -381,7 +381,7 @@ fn ui(f: &mut Frame, timer: &PomodoroTimer) {
381381 " Mode: {} | Status: {} | Done: {} | " ,
382382 mode_text, status_text, timer. completed_sessions
383383 ) ) ,
384- Span :: styled( "X " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
384+ Span :: styled( "x " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
385385 Span :: raw( ": Help " ) ,
386386 ] ) ] )
387387 . alignment ( Alignment :: Left )
@@ -403,35 +403,35 @@ fn ui(f: &mut Frame, timer: &PomodoroTimer) {
403403 Line :: from( vec![ Span :: styled( "CONTROLS" , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ] ) . alignment( Alignment :: Center ) ,
404404 Line :: from( "" ) ,
405405 Line :: from( vec![
406- Span :: styled( " W " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
406+ Span :: styled( " w " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
407407 Span :: raw( " - Start 25 mins Work" ) ,
408408 ] ) ,
409409 Line :: from( vec![
410- Span :: styled( " B " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
410+ Span :: styled( " b " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
411411 Span :: raw( " - Start 5 mins Break" ) ,
412412 ] ) ,
413413 Line :: from( vec![
414- Span :: styled( " C " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
414+ Span :: styled( " c " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
415415 Span :: raw( " - Custom timer" ) ,
416416 ] ) ,
417417 Line :: from( vec![
418- Span :: styled( " ␣/↵" , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
418+ Span :: styled( " ␣/↵ " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
419419 Span :: raw( " - Pause/Resume timer" ) ,
420420 ] ) ,
421421 Line :: from( vec![
422- Span :: styled( " T " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
422+ Span :: styled( " t " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
423423 Span :: raw( " - Toggle Manual/Auto mode" ) ,
424424 ] ) ,
425425 Line :: from( vec![
426- Span :: styled( " M " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
426+ Span :: styled( " m " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
427427 Span :: raw( " - Mario animation" ) ,
428428 ] ) ,
429429 Line :: from( vec![
430- Span :: styled( " X " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
430+ Span :: styled( "Esc " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
431431 Span :: raw( " - Close this popup" ) ,
432432 ] ) ,
433433 Line :: from( vec![
434- Span :: styled( " Esc" , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
434+ Span :: styled( "q/ Esc" , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
435435 Span :: raw( " - Exit application" ) ,
436436 ] ) ,
437437 ] )
@@ -480,7 +480,7 @@ fn ui(f: &mut Frame, timer: &PomodoroTimer) {
480480 Line :: from( vec![
481481 Span :: styled( "↵" , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
482482 Span :: raw( " - Confirm | " ) ,
483- Span :: styled( "X " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
483+ Span :: styled( "x " , Style :: default ( ) . fg( PRIMARY_COLOR ) . add_modifier( Modifier :: BOLD ) ) ,
484484 Span :: raw( " - Cancel" ) ,
485485 ] ) ,
486486 ] )
@@ -623,10 +623,24 @@ fn main_loop(terminal: &mut Terminal<CrosstermBackend<io::Stdout>>, timer: &mut
623623 }
624624
625625 match key {
626+ // Handle help popup ESC to close popup
626627 KeyEvent {
627628 code : KeyCode :: Esc ,
628629 modifiers : KeyModifiers :: NONE ,
629630 ..
631+ } => {
632+ if timer. show_controls_popup {
633+ timer. show_controls_popup = false ;
634+ } else {
635+ break ; // Exit app if no popup is open
636+ }
637+ }
638+
639+ // Quit with 'q' or Ctrl+C
640+ KeyEvent {
641+ code : KeyCode :: Char ( 'q' ) ,
642+ modifiers : KeyModifiers :: NONE ,
643+ ..
630644 }
631645 | KeyEvent {
632646 code : KeyCode :: Char ( 'c' ) ,
0 commit comments