ifShift behavior

Thanks for the clarification and response.

For sanity purposes, I’ve edited the script to give it some order.

ifNotShift ifHold final tapKey 2
ifShift final suppressMods tapKey 3
ifShift ifHold final suppressMods tapKey 4
tapKey 1

This is a revised version of your suggested solution. I removed the double tap, since there’s no problem with that keymap, and reordered the numbers.

Using this new script, I’m running into 2 issues.

  1. Using a macro for shift key. If I use the enter/shift macro above, I get the following results:
ifNotShift ifHold final tapKey 2 // 2
ifShift final suppressMods tapKey 3 // !
ifShift ifHold final suppressMods tapKey 4 // @
tapKey 1 // 1
  1. Using standard shift key (no macro). If I rebind this macro to behave as a normal shift key, I get the following result:
ifNotShift ifHold final tapKey 2 // 2
ifShift final suppressMods tapKey 3 // 3
ifShift ifHold final suppressMods tapKey 4 // 3
tapKey 1 // 1

I tried the following combinations with no desired outcome:
ifHold ifShift final suppressMods tapKey
ifNotShift tapKey 1

Ideally, I would like to use the macro to toggle the shift key. My desired result is something like this:

ifNotShift ifHold final tapKey CA-h // ctrl-opt-h
ifShift final suppressMods tapKey CAGS-h // ctrl-opt-cmd-shift-h
ifShift ifHold final suppressMods tapKey CAG-h // ctrl-opt-cmd-h
tapKey CAS-h // ctrl-opt-shift-h

or

ifNotShift ifHold final tapKey ) // closing 
ifShift final suppressMods tapKeySeq ( ) leftArrow // open+close (move cursor inside)
ifShift ifHold final suppressMods tapKeySeq ( ) // open+close (no reposition)
tapKey ( // openisg

or

ifNotShift ifHold final tapKey G-v // paste
ifShift final suppressMods tapKey GA-c // copy properties
ifShift ifHold final suppressMods final GA-v // paste properties
tapKey G-c // copy

Looking back at my previous post, I’m thinking I should try something like @maexxx suggested, but to use the ifInterrupted in place of the ifShift. In theory, this should perform the same way, or similar.