1pub const BANNER: [&str; 6] = [
4 r"███╗ ███╗ █████╗ ██████╗██╗ ██╗",
5 r"████╗ ████║██╔══██╗██╔════╝██║ ██║",
6 r"██╔████╔██║███████║██║ ███████║",
7 r"██║╚██╔╝██║██╔══██║██║ ██╔══██║",
8 r"██║ ╚═╝ ██║██║ ██║╚██████╗██║ ██║",
9 r"╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝",
10];
11
12pub const BANNER_WIDTH: u16 = 35;
13
14pub(crate) const WHATS_NEW: [(&str, &str); 3] = [
17 (
18 "Agent-ready CLI",
19 "Search task text and idempotently ensure categories or labels from scripts and agents.",
20 ),
21 (
22 "Reorder categories",
23 "Use Option+Up or Option+Down in manual view to put categories in the order you want.",
24 ),
25 (
26 "Cleaner task views",
27 "Label names render as entered, hidden-completed views show open counts, and overlays no longer corrupt images.",
28 ),
29];
30
31pub struct HelpRow {
35 pub left: &'static str,
36 pub right: &'static str,
37 pub heading: bool,
38}
39
40const fn row(left: &'static str, right: &'static str) -> HelpRow {
41 HelpRow {
42 left,
43 right,
44 heading: false,
45 }
46}
47
48const fn heading(left: &'static str, right: &'static str) -> HelpRow {
49 HelpRow {
50 left,
51 right,
52 heading: true,
53 }
54}
55
56pub const HELP_COLUMNS: [HelpRow; 17] = [
58 heading("MOVING AROUND", "TASKS, CATEGORIES & LABELS"),
59 row(
60 "← → between the two panels",
61 "Ctrl+A new task / category / label",
62 ),
63 row(
64 "↑ ↓ within a panel",
65 "Enter edit in the task preview",
66 ),
67 row("⌥↑ ⌥↓ reorder in manual view", ""),
68 row("PgUp PgDn top / bottom", "Space tick a task off"),
69 row(
70 "Tab the other panel",
71 "Ctrl+F importance, 0 to 3 flags",
72 ),
73 row("type jump to matching row", "Backspace ×2 delete"),
74 row("Esc back out", "Ctrl+C ×2 quit"),
75 row("Mouse click, double-click, scroll", ""),
76 row("", ""),
77 heading(
78 "COMMANDS (press /)",
79 "TASK PREVIEW (Enter · when space allows)",
80 ),
81 row(
82 "/search /settings /help",
83 "Tab ⇧Tab next / previous field",
84 ),
85 row("/whatsnew /labels", "← → Space choose category / flags"),
86 row("/copy /copytitle · /done", "Enter / Space choose labels"),
87 row(
88 "/export /import <FILE>",
89 "Enter calendar · new line · open",
90 ),
91 row("/purge /update /quit", "Ctrl+Z / ⇧Z undo · redo"),
92 row("? this page", "Esc back to the task list"),
93];
94
95pub const HELP_FOOTER: &str = "Press Esc to close · github.com/Q1CHENL/mach";
96
97pub const EMPTY_TASKS: &str = "No active tasks here :)";
98pub const NO_SEARCH_RESULTS: &str = "No tasks found :)";