Eugeny / tabby

A terminal for a more modern age
https://tabby.sh
MIT License
59.16k stars 3.39k forks source link

Docking toggle does not work without a browser-based application in focus #8957

Open Tbhesswebber opened 1 year ago

Tbhesswebber commented 1 year ago

This was happening in v1.0.197, which prompted me to upgrade and see if the issue was fixed. My system configuration has multiple workspaces on my left (non-primary) display and a single, static workspace on my right (primary) display. My keybinding is set to F12 and I have tried some others to see if something is clobbering the keybinding somehow.

Initially, I thought that it was an issue in workspaces with no open applications, but then I opened Software Center and tried the hotkey to no avail. As far as I can tell, it works on workspaces with a browser window open (electron or otherwise) - Slack, Spotify, VSCode, Chrome, Firefox (weird...)

Please feel free to ask for more specific information and I'd be happy to dig deeper into this weirdness.

Version: 1.0.200 Platform: Linux x64 6.2.0-31-generic Plugins: none Frontend: xterm-webgl

Tbhesswebber commented 1 year ago

Attempting some additional applications, I discovered that it's actually when an application with a browser has focus, regardless of mouse location.

Some test cases:

jgauna commented 1 year ago

Same issues here

Linux j 5.15.0-86-generic #96-Ubuntu SMP Wed Sep 20 08:23:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Tbhesswebber commented 7 months ago

In debugging this, I discovered that /app/lib/app.ts#139 never gets called when a chromium-based window doesn't have focus. Digging deeper, I think this Reddit post is actually the culprit. TL;DR: Certain operating systems disallow global key listeners, so users will need to listen to, and forward, the events manually from their OS settings.

I kind of got around this by setting a custom shortcut to run tabby, but it just forces the window open rather than toggling it.

@Eugeny - is there a way to toggle the window from the command line? Or can this be added in somehow?