Unable to use Ctrl+TAB as keyboard shortcut
Hydrus version
v608
Qt major version
Qt 6
Operating system
macOS 15 "Sequoia" (Intel)
Install method
Installer
Install and OS comments
Hydrus.Network.608.-.macOS.-.App.dmg
Bug description and reproduction
- Open keyboard shortcut window
- Select Main Window
- Click Add
- Click Keyboard text field
- Press Ctrl+TAB
- Nothing happens
I am trying to use this key sequence to set the command "move page selection right" (and Ctrl+Shift+TAB to "move page selection left").
Log output
Thank you for this report. On Windows Qt, Ctrl+Tab and Ctrl+Shift+Tab seem to be already the default, on the Qt side of things, to do 'move notebook page tab left/right'. The shortcuts dialog can capture ctrl+tab for me, but if I map it to 'open command palette', it looks like the Qt hardcoded hook is catching it before I get to it and it still does 'change page tab'. However if I map Ctrl+G or something to 'move page tab left', it works fine. Interesting shortcut propagation, and I hadn't realised my system was working exactly this way.
I guess you don't have the Qt Ctrl+Tab hardcoded default, since you are trying to map it yourself.
Can you try some things for me?
- Can you map Ctrl+T or any other Ctrl+ shortcut? Or is it specifically Ctrl+Tab that's the problem?
- What happens if you turn on help->debug->report modes->shortcut report mode and try some related shortcuts here? It should talk about anything you type and what is trying to catch and process it. Is Ctrl+Tab 'passing through' a 'PanelThumbnails' but not hitting a 'FrameGUI'? But a different Ctrl+ shortcut is going up to the main frame gui? That's what I see, and I am a little surprised at what is going on. Or is your client unable to ever notice a Ctrl+Tab shortcut?
Am I right that Command+Tab normally moves between open Apps, like Alt+Tab would be on Windows? I wonder if that is hardcoded in macOS, so Qt can't use it somehow. What happens if you try Command+` or Ctrl+`?
First of all, sorry for the late reply!
I have tried a few things and here are the results:
- Ctrl+T and Ctrl+G work and can be mapped as expected. It seems to specifically be Ctrl+TAB that is a problem.
- The client seems unable to see Ctrl+TAB at all, but it can see Ctrl+T/G that I set earlier just fine
v608, 2025-02-14 18:16:56: Key shortcut "control+t" passing through <hydrus.client.gui.pages.ClientGUIMediaResultsPanelThumbnails.MediaResultsPanelThumbnails object at 0x168bc76d0>. I am in a state to catch it.
v608, 2025-02-14 18:16:56: Key shortcut "control+t" passing through <hydrus.client.gui.ClientGUI.FrameGUI object at 0x1433684c0>. I am in a state to catch it.
v608, 2025-02-14 18:16:56: Shortcut "control+t" matched on "main_gui" set to "move page selection right (cycles up through page of pages at boundaries)" command.
v608, 2025-02-14 18:16:56: Shortcut "control+t" matched to command "move page selection right (cycles up through page of pages at boundaries)" on <hydrus.client.gui.ClientGUI.FrameGUI object at 0x1433684c0>. It was processed.
v608, 2025-02-14 18:17:00: Key shortcut "control+g" passing through <hydrus.client.gui.ClientGUI.FrameGUI object at 0x1433684c0>. I am in a state to catch it.
v608, 2025-02-14 18:17:00: Shortcut "control+g" matched on "main_gui" set to "move page selection left (cycles up through page of pages at boundaries)" command.
v608, 2025-02-14 18:17:00: Shortcut "control+g" matched to command "move page selection left (cycles up through page of pages at boundaries)" on <hydrus.client.gui.ClientGUI.FrameGUI object at 0x1433684c0>. It was processed.
Command+TAB does normally cycle through open applications, like Alt+TAB on Windows and Linux. I pressed Ctrl+` and Command+` a bunch and got this output:
v608, 2025-02-14 18:19:27: Key shortcut "control+`" passing through <hydrus.client.gui.canvas.ClientGUICanvas.CanvasMediaListBrowser object at 0x18b774940>. I am in a state to catch it.
v608, 2025-02-14 18:19:27: Key shortcut "control+`" passing through <hydrus.client.gui.canvas.ClientGUICanvasFrame.CanvasFrame object at 0x18b777a30>. I am in a state to catch it.
v608, 2025-02-14 18:19:28: Key shortcut "control+`" passing through <hydrus.client.gui.canvas.ClientGUICanvas.CanvasMediaListBrowser object at 0x18b774940>. I am in a state to catch it.
v608, 2025-02-14 18:19:28: Key shortcut "control+`" passing through <hydrus.client.gui.canvas.ClientGUICanvasFrame.CanvasFrame object at 0x18b777a30>. I am in a state to catch it.
v608, 2025-02-14 18:19:36: Key shortcut "control+`" passing through <hydrus.client.gui.pages.ClientGUIMediaResultsPanelThumbnails.MediaResultsPanelThumbnails object at 0x168bc76d0>. I am in a state to catch it.
v608, 2025-02-14 18:19:36: Key shortcut "control+`" passing through <hydrus.client.gui.ClientGUI.FrameGUI object at 0x1433684c0>. I am in a state to catch it.
Hmm, it doesn't look like it is able to see Command+` for some reason. It does, however, work as expected (at least from a macOS perspective) in that it cycles through windows of the same application.
In other contexts, such as in Firefox, Chrome, or DuckDuckGo, Ctrl+TAB works as expected.
Thanks. I know I do some silly stuff with Command vs Ctrl in macOS, so I wonder if something is being swallowed. I will investigate things my end a bit this week and post back here.
Hey, I got caught up in rewrites this week and did not have time for this. Delay another week, sorry!
I did some work on this today. The text box in the edit shortcut dialog that actually accepts a shortcut now works on a higher level of capture, which may get around any weird Qt hardcoding/filtering here, if there is any. After some research, I don't think this is a sensitive mapping in Qt though.
The 'shortcut report mode' also now says a little when it receives an unacceptable shortcut to this box, for instance Caps Lock is currently unmappable. Maybe control-tab on your keyboard maps to something odd (e.g. some keyboards on Windows will take ctrl+numpad-something and spit out a nordic character), and this should show the absolute brass tacks.
As a side thing, control+nothing is now a mappable shortcut. It shouldn't change your situation, but you'll presumably see control+nothing and then it will not change when you hit tab.
If you still cannot map control+tab in v611, I do not think I can do anything else. I'm as raw as I can get, so perhaps there is a Qt policy I don't know about, or something OS level that's intercepting it, or not allowing it to go to hydrus for some unusual security reason, or there's another program grabbing it with a global hook, or something else. Let me know how you get on!
I will definitely do some testing once 611 is out and report back here with my results. Thanks for looking into it!
I tried to use Ctrl+TAB again on v611, but the shortcut doesn't work still. The shortcut report sees Ctrl+nothing, but doesn't report anything when Ctrl+TAB is pressed. I'm thinking this might be something reserved, either by macOS or Qt. Anyway, thanks again for looking into this.