board: one model — first list inbox, last list done

Space sends a card to the done list or back to the inbox instead of
ticking it in place. Enter on a card with no document starts one named
after it, and q comes back to the board on the same card. :card captures
into the inbox without leaving the current view (c anywhere), :due takes
fri, tm, +3d and the like, :name! renames a list, done cards older than a
week fold away behind z, and the board spells out its keys. The phone dock
gains send, done, due and notes doors.
This commit is contained in:
nvrl committed 2026-10-19 14:45:35 +02:00
1 parent d9b78170d8
commit e1c8e22ea5
9 files changed
+306 -63

No files matched your search

+14 -2
View File
@@ -237,12 +237,19 @@
void workspace.guard(() => workspace.openCard())
return true
case 'o':
case 'c':
cmdline = ':card '
return true
case 'R':
cmdline = ':name '
// On an empty list there is no card to rename, so it is the list.
cmdline = workspace.card ? ':name ' : ':name! '
return true
case 'D':
cmdline = ':due '
return true
case 'z':
workspace.showOldDone = !workspace.showOldDone
return true
case 't':
case ' ':
void workspace.guard(() => workspace.toggleDone())
return true
@@ -432,6 +439,11 @@
event.preventDefault()
void runCommand('new')
break
case 'c':
// Capture: a thought goes on this space's inbox without leaving here.
event.preventDefault()
cmdline = ':card '
break
case 'O':
// The name has to come from somewhere, and the command line is where
// names are typed — this only saves typing `:mkdir `.