Skip to content

Commit 3b45576

Browse files
committed
make a cat meme
1 parent 0fb5589 commit 3b45576

3 files changed

Lines changed: 405 additions & 174 deletions

File tree

README.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ A minimalist terminal-based pomodoro application built with Rust, featuring ASCI
3131

3232
### Keyboard-Driven Interface
3333
- **Lightning-fast Controls**: All functions accessible via single keypresses
34-
- **Interactive Help**: Press **X** for comprehensive controls popup
34+
- **Interactive Help**: Press **x** for comprehensive controls popup
3535
- **Custom Timer Input**: Intuitive dialog with format validation and examples
3636

3737
## Quick Start
@@ -58,20 +58,20 @@ cargo build --release
5858

5959
## Controls
6060

61-
> **Tip**: Press **X** anytime to view the interactive controls popup!
61+
> **Tip**: Press **x** anytime to view the interactive controls popup!
6262
6363
### Essential Keys
6464

6565
| Key | Action | Description |
6666
|-----|--------|-------------|
67-
| `W` | Start Work Session | Begin 25-minute work period |
68-
| `B` | Start Break Session | Begin 5-minute break period |
69-
| `C` | Custom Timer | Open custom timer input dialog |
67+
| `w` | Start Work Session | Begin 25-minute work period |
68+
| `b` | Start Break Session | Begin 5-minute break period |
69+
| `c` | Custom Timer | Open custom timer input dialog |
7070
| `Space`/`Enter` | Pause/Resume | Toggle timer pause state |
71-
| `T` | Toggle Mode | Switch between Manual/Auto modes |
72-
| `M` | Mario Animation | Trigger Mario animation (for testing) |
73-
| `X` | Help | Show/hide controls popup |
74-
| `Esc` | Exit | Quit application |
71+
| `t` | Toggle Mode | Switch between Manual/Auto modes |
72+
| `m` | Mario Animation | Trigger Mario animation (for testing) |
73+
| `x` | Help | Show/hide controls popup |
74+
| `q/Esc` | Exit | Quit application |
7575

7676
### Custom Timer Format
7777

@@ -96,7 +96,7 @@ CYBER TOMATO features a clean, bordered interface:
9696
│ ███████████████████████░░░ 85% │ ← Progress Bar
9797
├─────────────────────────────────┤
9898
│ Mode: Auto | Status: Working │ ← Status & Help
99-
│ Done: 5 | X: Help │
99+
│ Done: 5 | x: Help │
100100
└─────────────────────────────────┘
101101
```
102102

@@ -197,4 +197,11 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
197197

198198
**Built with Claude Code**
199199

200-
*Perfect your productivity with the timeless pomodoro technique, enhanced by retro gaming charm and modern Rust performance.*
200+
ASCII Cat Design:
201+
202+
```bash
203+
^~^ ← Ears (triangular ears with wavy middle)
204+
_ ('Y') ← Face outline with apostrophe eyes and Y-shaped nose/mouth
205+
\ / \ ← Body outline (shoulders tapering down)
206+
(\|||/) ← Legs in parentheses with 4 vertical legs (\|||/)
207+
```

src/main.rs

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)