commit dc9ff492cf38cc7f13c4c81285d78a271917163f
parent 368bf1f260e6698804859676d5a3cc648a84cc6b
Author: Hunter
Date: Tue, 1 Jul 2025 19:01:04 -0400
use ⌘+direction for moving subtasks in/out
Diffstat:
2 files changed, 16 insertions(+), 14 deletions(-)
diff --git a/index.html b/index.html
@@ -865,18 +865,18 @@
keyHandler.shiftEnter.pressed = true;
toggleTaskState(task);
}
+ } else if (e.key === 'ArrowUp' && (e.metaKey || e.ctrlKey) && !e.shiftKey) {
+ e.preventDefault();
+ pushSubtaskIntoTarget(task, 'up');
+ } else if (e.key === 'ArrowDown' && (e.metaKey || e.ctrlKey) && !e.shiftKey) {
+ e.preventDefault();
+ pushSubtaskIntoTarget(task, 'down');
} else if (e.key === 'ArrowUp' && !e.shiftKey) {
e.preventDefault();
navigateTasks('up');
} else if (e.key === 'ArrowDown' && !e.shiftKey) {
e.preventDefault();
navigateTasks('down');
- } else if (e.key === 'ArrowUp' && e.shiftKey && (e.metaKey || e.ctrlKey)) {
- e.preventDefault();
- pushSubtaskIntoTarget(task, 'up');
- } else if (e.key === 'ArrowDown' && e.shiftKey && (e.metaKey || e.ctrlKey)) {
- e.preventDefault();
- pushSubtaskIntoTarget(task, 'down');
} else if (e.key === 'ArrowUp' && e.shiftKey) {
e.preventDefault();
moveSubtask(task, 'up');
@@ -894,7 +894,7 @@
applyShakeAnimation(task.id);
}
}
- } else if (e.key === 'ArrowLeft' && e.shiftKey && (e.metaKey || e.ctrlKey)) {
+ } else if (e.key === 'ArrowLeft' && (e.metaKey || e.ctrlKey) && !e.shiftKey) {
e.preventDefault();
pullSubtaskOutLayer(task);
} else if (e.key === 'ArrowLeft' && e.shiftKey) {
diff --git a/readme.md b/readme.md
@@ -33,14 +33,16 @@ the nested todo list that breaks complex tasks into manageable subtasks.
- `Backspace` (when selected task's text is empty) remove the task and its subtasks
- `Shift + Enter` toggle selected task's completion status
- `Shift + Arrow Up/Down` reposition the selected task within its current level
+- `⌘ + Arrow Up/Down` move the selected task into the task above/below it
+- `⌘ + Arrow Left` pull the selected task out one level (to its parent's level)
### text editing
- `Left/Right` move text cursor within selected task
-- `Command/Ctrl + C` copy the selected task's text (or highlighted substring)
-- `Command/Ctrl + X` cut the selected task's text (or highlighted substring)
-- `Command/Ctrl + V` paste text content from the clipboard
-- `Command/Ctrl + Z` undo text edit
-- `Command/Ctrl + Shift + Z` redo text edit
+- `⌘ + C` copy the selected task's text (or highlighted substring)
+- `⌘ + X` cut the selected task's text (or highlighted substring)
+- `⌘ + V` paste text content from the clipboard
+- `⌘ + Z` undo text edit
+- `⌘ + Shift + Z` redo text edit
## data persistence
your task tree is automatically saved to your browser's local storage after each edit. this ensures your tasks will persist even if you close the browser or refresh the page.
@@ -48,8 +50,8 @@ your task tree is automatically saved to your browser's local storage after each
> [!WARNING]
> clearing your browsing data may erase your saved tasks. to avoid losing progress, create a manual backup before clearing your browsing data.
-- `Command/Ctrl + S` export tasks to .txt file
-- `Command/Ctrl + O` import tasks from .txt file
+- `⌘ + S` export tasks to .txt file
+- `⌘ + O` import tasks from .txt file
## themes
press `F2` to cycle through available themes.