summaryrefslogtreecommitdiff
path: root/web/js/detach.js
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-02 23:18:16 +0300
committerPaul Buetow <paul@buetow.org>2026-05-02 23:18:16 +0300
commit92a59298ac32b4ee6e4f24e6c93307eaa152cd27 (patch)
tree6788f2603caa45ca3cc67d8ed143f03f4d54cfee /web/js/detach.js
parent0482a98c538cbe9ca32b4775bd897b9c728cf686 (diff)
refine playback navigation and player modes
Diffstat (limited to 'web/js/detach.js')
-rw-r--r--web/js/detach.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/web/js/detach.js b/web/js/detach.js
index d255b2e..0c2d2aa 100644
--- a/web/js/detach.js
+++ b/web/js/detach.js
@@ -43,6 +43,17 @@ document.addEventListener('keydown', (ev) => {
const editing = tag === 'INPUT' || tag === 'TEXTAREA' || ev.target?.isContentEditable;
if (editing || ev.ctrlKey || ev.metaKey || ev.altKey) return;
+ if (ev.shiftKey && ev.code === 'KeyN') {
+ ev.preventDefault();
+ post({ type: 'detach-next', play: currentState().playing });
+ return;
+ }
+ if (ev.shiftKey && ev.code === 'KeyP') {
+ ev.preventDefault();
+ post({ type: 'detach-prev', play: currentState().playing });
+ return;
+ }
+
if (ev.key === ' ' || ev.code === 'Space') {
ev.preventDefault();
togglePlayback();
@@ -55,6 +66,15 @@ document.addEventListener('keydown', (ev) => {
} else if (ev.key === 'ArrowRight' || ev.key === 'l') {
ev.preventDefault();
seekRelative(ev.repeat ? 15 : 5);
+ } else if (ev.key === 'p') {
+ ev.preventDefault();
+ togglePlayback();
+ } else if (ev.key === 'N') {
+ ev.preventDefault();
+ post({ type: 'detach-next', play: currentState().playing });
+ } else if (ev.key === 'P') {
+ ev.preventDefault();
+ post({ type: 'detach-prev', play: currentState().playing });
}
});