commit 342cb5de80f8a5688d2ee97a7b3ec964e9f1903e
parent 46ac95094d56ad2a23b7e06985f41159ed6705b5
Author: Hunter
Date:   Thu, 24 Sep 2026 00:09:03 -0400

shift + F2 to cycle themes in reverse

Diffstat:
Mreadme.md | 2+-
Mresources/main.js | 2+-
Mresources/theme.js | 4++--
3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/readme.md b/readme.md @@ -47,7 +47,7 @@ the nested todo list that breaks complex tasks into manageable subtasks. - `⬆️/⬇️` (without modifier) clear the selection and resume single-task navigation ### theming -- press `F2` to cycle through available themes +- press `F2` to cycle through available themes (`Shift + F2` to cycle in reverse) ## 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. diff --git a/resources/main.js b/resources/main.js @@ -52,7 +52,7 @@ document.addEventListener('DOMContentLoaded', function() { if (event.key === 'F2' && !state.isF2Pressed) { event.preventDefault(); state.isF2Pressed = true; - cycleTheme(); + cycleTheme(event.shiftKey ? -1 : 1); } }); diff --git a/resources/theme.js b/resources/theme.js @@ -1,7 +1,7 @@ // Theme: theme selection, cycling, and persistence -function cycleTheme() { - state.currentThemeIndex = (state.currentThemeIndex + 1) % state.themes.length; +function cycleTheme(step) { + state.currentThemeIndex = (state.currentThemeIndex + step + state.themes.length) % state.themes.length; var newTheme = state.themes[state.currentThemeIndex]; setTheme(newTheme); saveThemeToLocalStorage(newTheme);