As Girder is a very powerful app there's always a lack of buttons on the remote. Mark created a setup for using one button as a shift. I personally like the way the shifting is done because it's absolutely stable.
However, someone asked for a way to increase the number of shifting levels. As I didn't want to change Mark's code and some people might be scared by the required (re-)'learn event' process, I made a new setup that is able to support multiple shift-levels and doesn't require a special learn event process.
The big disadvantage of this solution is that the commands of the shifted buttons have to be nested in special groups.
As mentioned in the subject there are actually two different 'flavors'.
Version 1 - Single-Key:
Pressing the shift button once will make Girder enter shift level 1, pressing it again will make Girder enter shift level 2 and so on. So the shift button cycles through the shift levels.
Version 2 - Direct-Shift:
This one has one shift button for each shift level. It's similar to the way the pocket calculaters from Texas Instruments work (2nd key, 3rd key). Note that this version uses reg23 to store the shift-level.
Both versions have the ability to assign buttons as one-shot.
shift-level 0 (no shift/default): Next Track
shift-level 1: Volume Up
shift-level 2: Fast Forward
shift-level 0 (no shift/default): Start Winamp
shift-level 1: Close Winamp
shift-level 2: Shutdown Windows
You can set it up to keep the shift-level after pressing button 1 (good for increasing the volume by more than just one step by holding down the button). But you can assign button 2 to be a one-shot (going back to shift-level 0 after closing Winamp without having to press shift again).
The example files support 3 commands per button but can be modified to increase the number of shift-levels. One one-shot button is predefined for testcommands. You'll find further information in the 'comments' after loading the file in Girder.
Comments on the files are appreciated.