From fef67c148eb816b18d8630322c7f576a16793126 Mon Sep 17 00:00:00 2001 From: Mortdecai Date: Thu, 26 Mar 2026 20:02:00 -0400 Subject: [PATCH] fix: intercept Tab key to prevent browser focus navigation Tab key was being captured by the browser for focus cycling instead of being sent to the terminal for bash completion. Now intercepted at the document level and forwarded to the terminal when xterm has focus. --- static/toolbar.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/static/toolbar.js b/static/toolbar.js index 2dc5995..24ec023 100644 --- a/static/toolbar.js +++ b/static/toolbar.js @@ -111,6 +111,18 @@ if(btn.dataset.k) send(btn.dataset.k); }); + // Prevent browser from stealing Tab key — send it to the terminal instead + document.addEventListener('keydown', function(e){ + if(e.key === 'Tab' && !e.altKey && !e.ctrlKey && !e.metaKey){ + var active = document.activeElement; + // Only intercept if focus is on the terminal or body (not on toolbar buttons) + if(!active || active === document.body || active.closest('.xterm')){ + e.preventDefault(); + send('\t'); + } + } + }); + // Shrink terminal for toolbar on mobile (2 rows) var obs=new MutationObserver(function(){ var el=document.querySelector('.xterm');