Create a way to prevent BTT from further interpreting a keyboard shortcut to be triggered, i.e. a "noremap" option

My real request is "Create a workaround for non-functional Dvorak - Qwerty ⌘ applications." But I'm sure I'm in a minority in that respect, so I'm proposing a relatively small change that would be more widely applicable to ALL users of BTT, and would allow me to work around my real issue with the normal BTT features.

The Dvorak-Qwerty issue is described here:

The keyboard layout "Dvorak - Qwerty ⌘" (Dvorak with Qwerty keys for key combinations that include the "Command" key) is extremely useful for Dvorak typists (like me) who are used to copy, paste, etc. being in their normal locations.

However, for some applications (such as LibreOffice and GnuCash), this doesn't work properly.

I tried to create a mapping with BTT that maps Cmd-J (which is what LibreOffice sees when I press Cmd and the "C" key, since that's the Dvorak layout) to Cmd-C, maps Cmd-B to Cmd-N, Cmd-X to Cmd-B, etc. But it doesn't work, because the mappings are recursively followed. So when I press the Cmd key and the key that has B printed on it, which actually is the X key, BTT correctly maps Cmd-X to Cmd-B. BUT, then it FURTHER remaps the Cmd-B to Cmd-N, so I get a new spreadsheet instead of making the contents of the highlighted cells bold.

The Vim text editor had a similar problem with mappings being recursively followed, and thus created the option "noremap." So when creating a mapping, it can be created with "noremap" so that the result of that mapping is not further interpreted by any mappings you might have.

If BTT had a "noremap" option possible to set when defining triggers that trigger keyboard shortcuts, I could easily use it to work around the Dvorak - Qwerty ⌘ issue described at the above link, and I believe it would come in very useful for many other purposes as well.

(I'm a paying BTT lifetime customer and would love to see this feature implemented.) :slight_smile:

If I understood correctly this is already implemented, it's called "prevent recursive triggers"

Theoretically, this should be what we need, but it is not working in the latest version of BTT. As others have pointed out, when you have that option set, the original keyboard shortcut only fires once, then the trigger/mapping stops working until you switch away/switch back to 'reset' it.

As mentioned in my other comment, and admitting this is fully a guess here, it seems that when 'Prevent recursive triggers' is set, it doesn't just block a trigger that would be fired recursively from the first one, but for all future triggers. In other words, it prevents all triggers, not just those recursively. My guess is you're disabling the 'trigger detection' logic after a trigger with that setting is triggered, but you aren't actually re-enabling that detection logic when you should (i.e. after all keys have been released.). Again, it's a theory, but that logic does match up with the experienced behavior.

Just bumping this again. Same as the other person's post describing this issue. Still exists as of 4/22/2020 in version 3.346 of the app.