···11# Changelog
2233# 2026-04-16
44+- **`B` move to Work/business** — press `B` to move marked or cursor email(s) to Work folder (similar to `A` for Archive); quick single-key action without screener list updates; shows friendly error if Work folder not configured; useful for rapid GTD-style email processing; complements existing `gb` (go to Work) and `Mb` (move to Work) shortcuts
45- **Redesigned welcome screen** — new two-column layout with ASCII art logo, philosophy/getting started guide on the left, and essential shortcuts organized by category on the right; wider box (100 chars) with cleaner spacing; maintains kanagawa color scheme; more scannable and visually appealing for new users
56- **ASCII logo in help overlay** — pressing `?` now shows the neomd ASCII art logo overlaid on the top-right corner of the help screen; shortcuts start immediately at the top without vertical space taken by the logo; logo only appears when scrolled to the top
67- **`space+w` welcome shortcut** — press `space` then `w` to reopen the welcome screen anytime; useful for reviewing keybindings and getting started guide; documented in help overlay and keybindings reference
+1
docs/content/docs/keybindings.md
···5858| `F` | mark as Feed → feed.txt + move to Feed |
5959| `P` | mark as PaperTrail → papertrail.txt + move to PaperTrail |
6060| `A` | archive (move to Archive, no screener update) |
6161+| `B` | move to Work/business (no screener update, if configured) |
6162| `S` | dry-run screen inbox (loaded emails), then y/n |
62636364
+1
internal/ui/keys.go
···4545 {"F", "mark as Feed → feed.txt + move to Feed"},
4646 {"P", "mark as PaperTrail → papertrail.txt + move to PaperTrail"},
4747 {"A", "archive (move to Archive, no screener update)"},
4848+ {"B", "move to Work/business (no screener update, if configured)"},
4849 {"S", "dry-run screen inbox (loaded emails), then y/n"},
4950 }},
5051 {"Move (marked or cursor, no screener update)", [][2]string{
+15
internal/ui/model.go
···22782278 m.bulkProgress = m.newBulkOp("Archiving", len(targets))
22792279 return m, tea.Batch(m.spinner.Tick, m.batchMoveCmd(targets, m.cfg.Folders.Archive))
2280228022812281+ // B = move to Work/Business (pure move, no screener update)
22822282+ case "B":
22832283+ if m.cfg.Folders.Work == "" {
22842284+ m.status = "Work folder not configured"
22852285+ m.isError = true
22862286+ return m, nil
22872287+ }
22882288+ targets := m.targetEmails()
22892289+ if len(targets) == 0 {
22902290+ return m, nil
22912291+ }
22922292+ m.loading = true
22932293+ m.bulkProgress = m.newBulkOp("Moving to Work", len(targets))
22942294+ return m, tea.Batch(m.spinner.Tick, m.batchMoveCmd(targets, m.cfg.Folders.Work))
22952295+22812296 // ── Auto-screen dry-run (Inbox only) ────────────────────────────
22822297 case ":":
22832298 m.cmdMode = true