Kevin Chandler

[Updated 10/27] Shortcut Bar/Gesture Xtender: add more than 48 total/12 per gestures (288 max unique, unlimited dupes), easier gesture usage, group gestures as you wish

Discussion created by Kevin Chandler on Apr 9, 2019
Latest reply on Oct 28, 2019 by Kevin Chandler

UPDATED 10/27/2019: New version (v2.01) of "Gesture Xtender.exe" (and the derived "GXSheetMetal.exe"):

Setting the UseCustomIcon key to 1 in the INI file is no longer required to use a custom ico file.

Now, if a custom ico file is detected (of the same name as the running Xtender exe file), it's used automatically. Otherwise the icon of the parent "Gesture Xtender.exe"is used.

The UseCustomIcon key has been removed from the v2.01 INI file, but if it remains in a current INI file, it does no harm.

Also added a Description key to the INI file that gets displayed on the About dialog. This is some optional info about the Xtender for the user's benefit.

The SolidWorks exe file name has also been moved out of the code and into the INI file just in case it needs adjustment per the user's locale.


"DisplayGestureXtender.exe" has not changed.


As a reminder, an Xtender can be used for the Shortcut Bar as well as for mouse gestures as both use macros.

Xtenders extend the gestures beyond the 12 limit for each context and for the Shortcut Bar, Xtenders keep the Bar's size more manageable and less cluttered, as common commands can be grouped within an Xtender menu (as shown for the GXSheetMetal menu below).

Use an Xtender on the Shortcut Bar and for a mouse gesture at the same time, if you wish, by specifying the same macro for both (these aren't the Swept Flange command, they're a macro with a custom macro icon stolen from Swept Flange):



UPDATED 04/12/2019: New version (v2.00) of "DisplayGestureXtender.exe":

Due to the functionality of the VBA Shell command, spaces in Xtender file names are not permitted.

"DisplayGestureXtender.exe" has been rewritten to bypass this limitation and to permit spaces in Xtender file names.

The "v2.00" is only in the zip file name. The exe file name is unchanged.


To upgrade an existing install, extract the new "DisplayGestureXtender.exe" from the v2.00 zip file and overwrite the current file.

All else is the same. Be sure that each space in the Xtender file name is a single space. As before, Xtender file names without spaces are fine, too.


UPDATED 04/11/2019: No program change.

Added a movie, using the sheet metal Xtender shown below, displaying Xtender end usage, response time, etc. w/o having to first install an Xtender.


UPDATED 04/09/2019: No program change.

Failed to mention this utility can also xtend the Shortcut Bar.

Same procedure, except add the Xtender macro button to the appropriate context Shortcut Bar.




The attached utility allows you to increase the number of gestures beyond the 12 gesture limit per context and beyond the 48 total gestures.

Although beyond a practical amount, this utility's limit is 288 total unique gestures (all of which can be assigned to one context if you wish).

And since you can duplicate gestures, the total number of gestures is essentially unlimited.


It does this by displaying a menu of functions that you build yourself, as suited to how you operate SW.


Since you can display more gestures choices, you can reduce your current gesture wheel size for easier wheel selection.

Because it is a menu, if you select the incorrect wheel position, nothing is started in error. And like any other menu, clicking off the menu (and onto nothing) dismisses the menu with nothing run.


Because you build your own menus, you can group functions together according to a given workflow context, such as sheet metal or weldment.

And use only one wheel wedge in doing so.

This is an example of a sheet metal Gesture Xtender:

"SHEET METAL:" is an optional heading (that doesn't do anything). The separating lines are also optional.

This Xtender gets displayed when I select the 6 o'clock part gesture wedge (I didn't add an image to wheel for this, but you can):

Each Xtender runs a macro to display the Xtender menu:

"DisplayGestureXtender.exe" takes an Xtender name, our sheet metal example "GXSheetMetal.exe", passed to it on the command line and sends a message to this Xtender, telling it to display itself.

Once displayed, selecting an Xtender item runs the SW command that you assigned it to run.

Xtender menu items are stored for each Xtender exe file in a corresponding name ini file.

Here are the sheet metal Xtender items:

The text left of the pipe "|" is the displayed menu text.

The text right of the pipe "|" is the code referring to the SW keyboard shortcut you assigned to that function.

Since you're not physically pressing these keys, you assign the "harder" key presses to Xtenders.

Saving the easier reaches for the shortcuts you actually press. Keyboard shortcuts you do actually press can also be added to an Xtender.


You can use any combination of Ctrl, Alt and Shift (or none) with A-Z (case doesn't matter) and 0-9 (this where the 288 comes from).

For the ini file, you must convert Ctrl to "^", Alt to "!" and Shift to "+".

So SW's "Ctrl+Alt+Shift+E" becomes "^!+e" in the Xtender ini file.

The ordering (other than the key letter/number must be last) and the case don't matter. These are equivalent: +!^E, !+^e, ^+!E


The lack of a shortcut after the pipe for "SHEET METAL:" is why it's only a heading. Selecting it runs nothing.

Each (optional) blank line in the ini file creates a separator line on the Xtender menu (all of this is outlined in the comments within the ini file).


Common functions, such as extrude cut and hole wizard can be reused across any applicable Xtender, using the same SW keyboard shortcut.

Because any Xtender item can be reused any number of times, the number of Xtenders is essentially (but not practically) limitless.



Extract "GestureXtender.exe" and "GestureXtender.ini" from their zip file to a common folder.

Extract "DisplayGestureXtender.exe" and "DisplayGestureXtender.ini" from their zip file to a common folder.

To uninstall, delete them. Delete their macros and their gestures.

No mods are made to your Registry or other such things.



  1. Extract the files from the attached and to a common folder.
  2. Edit DisplayGestureXtender.ini (it opens in Notepad) and modify the XtenderFilePath data to match your folder's path:

  3. Each Xtender is built off "GestureXtender.exe" and "GestureXtender.ini"
    1. Make a copy of each file (same folder) and rename them according to this Xtender's context.
      1. When renaming, the Xtender file name cannot contain any spaces. (This is due to a limitation of the Shell command.)
        1. I prefaced these names with "GX" so they'll display/sort together.
      2. Other than the extension, the exe and its ini must be spelled the same.
        (This step has been done for the other two attached "GX" zip files.)
  4. Edit the copied ini file. You have two things to modify:
    1. (optional) Every Xtender will use its parent exe file's icon. To differentiate them, you can use a custom icon file (ico).
      The ico file must be the same name as its exe/ini file name and you must set "UseCustomIcon" equal to 1:
    2. At the end of the ini file, provide the Xtender menu text and the keyboard shortcut code for each of the Xtender's items:
      1. Create a SW keyboard shortcut for each Xtender item (if it already doesn't exist, use it if it does exist) and translate the shortcut to the required +!^ code.
        1. If create a shortcut for a macro, be sure to assign the shortcut to a macro button , otherwise, the shortcut will open the macro in the edit window.
      2. Within the ini file are comments that explain this. (Comment lines begin with a semi-colon.)
  5. Create a new SW macro:
    1. All of the lines, except the "Shell" line, shown above are created in a new macro.
    2. Add the Shell line, editing the path according to your folder.
      You can also copy an existing macro and edit it, but to avoid confusion, be sure to edit the project properties and module name in the copied macro to match the new macro file name.
  6. Assign the SW macro to a gesture.
  7. Repeat for each Xtender.



DisplayGestureXtender.exe runs when called by the gesture macro.

However, to improve response time, each Xtender exe file must be started before they are called.

By doing this, the Xtender menu is prepared and is ready for immediate display.



Right-click each Xtender's icon on the notification area at the lower right of your TV to display some options:

About is...about.

Exit terminates this Xtender.

Edit opens this Xtender's ini file in your default text editor.

Reload reloads the Xtender's ini file. If you make changes while the Xtender is running, you don't have to exit and restart the Xtender, just select reload and the changes will be applied.


I hope you find this useful.


Please post with any questions, comments or issue.