«

»

Sep
05
2013

Using Wacom Touch Gestures in Unsupported Applications

I’ve recently made the decision to learn some drawing skills. Specifically, I wanted to start with a tablet right away so I could avoid having to re-teach myself to using a tablet instead of paper. However, I still consider it important to be able to shift and rotate the canvas with my hand, so I went for a Wacom tablet with touch.

Most artists I knew swear by Paint Tool SAI, but that just happens to be one of the applications not fully supported by Wacom’s drivers (pressure works fine, but touch is a no-go). Luckily, Wacom’s drivers are pretty flexible and you can easily modify them to support your favorite application.

Here’s a guide to enable pinch-zoom, panning and two-finger rotation in Paint Tool SAI and Manga Studio!

If you’re not a power user, you might want to scroll to Wacom Driver Settings for a moment before starting to see if you feel up to it, since it requires some Control Panel operations and XML editing.

Paint Tool SAI

For the rotation gesture to work in Paint Tool SAI, we need to set up some keyboard shortcuts than can then be simulated by the Wacom driver.

1. Open the Keyboard Shortcuts window in Paint Tool SAI

Keyboard Shortcuts in Paint Tool SAI's Menu Bar

2. Set up Alt+F13 to rotate the view clockwise and Alt+F14 counter-clickwise

First, tick the "Alt" check box at the upper left, then locate the entries for F13 and F14 on the left and assign "Rotate View 90° Clockwise" and "Rotate View 90° Counter-Clockwise" to them (they may be named differently and the "90°" are just a translation error). Make sure you pick "Rotate View", not "Rotate Canvas" on the right!

Editing Keyboard Shortcuts in Paint Tool SAI

3. Edit the Wacom driver’s touch emulation settings

Scroll down to the Wacom Driver Settings section or continue with the next section if you want to set up Manga Studio as well.

Manga Studio Ex 5

Manga Studio uses the mouse wheel for zooming and has no keyboard shortcuts for panning and rotating by default, so we need to change a few things here:

1. Change the modifier keys to enable panning with the mouse wheel

You can find these settings under the "File" menu:

Settings in Manga Studio's Menu

Set the mouse wheel’s normal action to "Scroll vertically" by clicking the combo box in the middle and picking "View operation". Then set Ctrl+mouse wheel to "Zoom in by up and zoom out by down" as well as Alt+mouse wheel to "Scroll horizontally":

Editing Modifier Keys in Manga Studio

2. Set up keyboard shortcuts for canvas rotation

You’ll find the keyboard shortcuts window in the menu right above the modifier key settings from the previous step!

We can only select keys that you can press here, so I picked Alt+F12 for "Rotate left" as well as Alt+F11 for "Rotate right":

Configuring Keyboard Shortcuts in Manga Studio

3. Choose finer rotation steps for the keys

Normally Manga Studio rotates by 15 degrees per press of the rotation key. That’s a bit rough, so we’ll change it to 10 degrees (we could go even lower, but then manga studio wouldn’t be able to catch up with the two-finger rotation gesture and the canvas would take several seconds to reach its final rotation even after you lifted your hand).

Open the "Preferences" window, which again is right above the "Shortcut Settings" from the previous step. Then select "Canvas" to the left and enter the value 10 in the text box labelled "Step" in "Angle":

Step Angle in Manga Studio's Preferences

Wacom Driver Settings

This is where it gets a bit tricky. Follow the steps exactly to avoid messing up your Wacom driver and requiring a reinstall!

1. Open your Services window in your Control Panel

I believe the easiest way to get there is pressing Win+Break (that’s the weird key you never use, right above Page Up :P), then clicking on "Control Panel Home" in the upper left. Then in the Control Panel, just enter "services" into the search box at upper right and you should be presented with the option to "View local services":

Local Services in the Windows Control Panel

2. Stop your Wacom service

Just search for "Wacom" in the list (you can click in the list and type "wa" to jump to it), then click on "Stop the service" or use the stop button in the toolbar:

Wacom Service in the Services Manager

Keep the services manager window open, we’ll need it again in a moment!

3. Open a Notepad window with administrator privileges

Here’s the quickest way to get one: Press Win+R and enter "Notepad" in the window that pops up:

Running Notepad via Win+R

When you press enter, Notepad (a bare-bones text editor) should open. On Windows XP we would be done by now, but on Windows Vista, 7 or 8, this Notepad window doesn’t have administrator privileges. Here’s how to grant them temporarily:

Find the Notepad window in your task bar:

Notepad Icon in Your TaskBar

Now hold the Ctrl and Shift keys pressed and click on it. You should get the well-known prompt asking whether you want to allow Notepad to make changes to this computer. Say yes.

Now a second Notepad window will have opened right on top of the first one. This second window has administrator privileges. Close the first window below it (be careful not to get confused about which is which :)).

4. Edit AppGestures.xml

All that’s left to do is to open your AppGestures.xml file. Click "File" -> "Open", then in the file selector window, go to C:\Program Files\Wacom\Tablet (depending on your Wacom product, instead of Tablet the final folder could be called Pen or something).

Because AppGestures.xml does not end in .txt, you’ll have to change your view to show "All Files (*.*)" in the lower right to see it.

Opening AppGestures.xml with Notepad

Once you’ve opened your AppGestures.xml, scroll down a bit (maybe until you see <displayname>Adobe Photoshop</displayment>). As you can see, the file contains blocks of information, always starting with the opener <ArrayElement> and ending with a matching </ArrayElement>.

Insert the following two blocks inbetween the others (I inserted mine in front of Photoshop, but any place after the first 3 entries is good):

  <ArrayElement type="map">
    <displayname>Paint Tool SAI</displayname>
    <identifier type="string">sai</identifier>
    <AutoBehavior>zoom</AutoBehavior>
    <ScrollUp type="map">
      <keystroke type="kestring"><![CDATA[&up;]]></keystroke>
      <amount type="double">50</amount>
    </ScrollUp>
    <ScrollDown type="map">
       <keystroke type="kestring"><![CDATA[&down;]]></keystroke>
       <amount type="double">50</amount>
    </ScrollDown>
    <PanLeft type="map">
      <keystroke type="kestring"><![CDATA[&left;]]></keystroke>
      <amount type="double">50</amount>
    </PanLeft>
    <PanRight type="map">
      <keystroke type="kestring"><![CDATA[&right;]]></keystroke>
      <amount type="double">50</amount>
    </PanRight>
    <ZoomIn type="map">
      <input type="string">scrollwheeldown</input>
      <amount type="double">25</amount>
      <amountmultiplier type="double">1</amountmultiplier>
      <granularity type="double">1</granularity>
    </ZoomIn>
    <ZoomOut type="map">
      <input type="string">scrollwheelup</input>
      <amount type="double">25</amount>
      <amountmultiplier type="double">1</amountmultiplier>
      <granularity type="double">1</granularity>
    </ZoomOut>
    <RotateCW type="map">
      <keystroke type="kestring"><![CDATA[&alt;&f13;]]></keystroke>
      <amount type="double">11.25</amount>
    </RotateCW>
    <RotateCCW type="map">
      <keystroke type="kestring"><![CDATA[&alt;&f14;]]></keystroke>
      <amount type="double">11.25</amount>
    </RotateCCW>
    <GrabberHand type="map">
      <keystroke type="kestring"><![CDATA[&space;]]></keystroke>
    </GrabberHand>
  </ArrayElement>

  <ArrayElement type="map">
    <displayname>Manga Studio EX 5</displayname>
    <identifier type="string">Manga Studio</identifier>
    <AutoBehavior>scroll</AutoBehavior>
    <ScrollUp type="map">
      <input type="string">scrollwheelup</input>
      <amount type="double">1</amount>
      <amountmultiplier type="double">1</amountmultiplier>
      <granularity type="double">40</granularity>
    </ScrollUp>
    <ScrollDown type="map">
      <input type="string">scrollwheeldown</input>
      <amount type="double">1</amount>
      <amountmultiplier type="double">1</amountmultiplier>
      <granularity type="double">40</granularity>
    </ScrollDown>
    <PanLeft type="map">
      <modifiers type="string">shift</modifiers>
      <input type="string">scrollwheelup</input>
      <amount type="double">1</amount>
      <granularity type="double">40</granularity>
    </PanLeft>
    <PanRight type="map">
      <modifiers type="string">shift</modifiers>
      <input type="string">scrollwheeldown</input>
      <amount type="double">1</amount>
      <granularity type="double">40</granularity>
    </PanRight>
    <RotateCW type="map">
      <keystroke type="kestring"><![CDATA[&alt;&f11;]]></keystroke>
      <amount type="double">10</amount>
    </RotateCW>
    <RotateCCW type="map">
      <keystroke type="kestring"><![CDATA[&alt;&f12;]]></keystroke>
      <amount type="double">10</amount>
    </RotateCCW>
    <ZoomIn type="map">
      <modifiers type="string">control</modifiers>
      <input type="string">scrollwheelup</input>
      <amount type="double">5</amount>
      <amountmultiplier type="double">6</amountmultiplier>
      <granularity type="double">5</granularity>
    </ZoomIn>
    <ZoomOut type="map">
      <modifiers type="string">control</modifiers>
      <input type="string">scrollwheeldown</input>
      <amount type="double">5</amount>
      <amountmultiplier type="double">6</amountmultiplier>
      <granularity type="double">5</granularity>
    </ZoomOut>
    <GrabberHand type="map">
      <keystroke type="kestring"><![CDATA[&space;]]></keystroke>
    </GrabberHand>
  </ArrayElement>

It should fit in neatly with the other blocks in the file. Make sure the block you pasted is not inside another <ArrayElement> block or something.

Check twice that the new block correctly lines up with the others, then save and close your AppGestures.xml.

5. Start the Wacom service again

Switch back to the services manager window you kept open in step 2 and start the Wacom service again by clicking on "Start the service" or using the play button in the toolbar.

Done

Congratulations, if you open up Paint Tool SAI or Manga Studio now, you should be able to pinch-zoom, two-finger rotate and pan the canvas, all via touch and without moving your hands away from the drawing area!

11 comments

  1. Tonitti says:

    Hello. I have been looking for something like this since I bought my Windows 8 tablet one year ago;but this only works with Wacom branded devices (cintiqs, intuos, bamboos etc) isn’t it?

    I tested it on my Asus Vivotab tf810c tabletpc with Wacom penabled tech following all your steps I can’t make it to work. When I try to pinch and drag, the cursor changes to the cross of the move tool, but nothing happens.

    I guess wacom tabletpc tech only works when the pen is in the active zone and when it leaves it the default Windows 8 api takes it’s place…

    Anyhow thanks for your great effort, many Wacom users will appreciate this.

  2. Cygon says:

    It’s a feature of the Wacom driver, so if your Vivotab uses it (i.e. the AppGestures.xml file existed), it should work.

    If the cursor changes in your case, maybe the key bindings don’t match up with the ones in the XML code?
    Or you might have something running in the background (eg. a VoIP client) which captures some of the keys.
    Hard to tell…

    Ideally, future versions of Paint Tool and Manga Studio would support the multi-touch and ink features of Windows 7/8, of course :)

  3. Blay says:

    Worked like a dream, your a star!

  4. snacks says:

    Thanks for the tutorial. The pinch and zoom works but I can’t get it to rotate in Sai. If you don’t mind my linking to it, Mario Kluser at youtube /watch?v=12VHCIswy2Q has a solution for this. Basically, go into your pen tablet settings and reprogram one of the buttons on the pen to be shift + spacebar. This is sai’s shortcut mode for rotation. You can set it up so that this shortcut only works in Sai and in all other applications the button will behave normally.

  5. kyuu says:

    thank you very much!!!!!

  6. Colin says:

    It was really bugging me that I could not pan using the touch gestures in Manga Studio, but it’s all fixed now. Thanks for the awesome tutorial!

  7. Juan says:

    This worked really well! The only issue is that Manga Studio step 1 says “Alt + Mouse Wheel” to scroll horizontally, but the screenshot shows “Shift + Mouse Wheel” which is correct.

  8. hofd says:

    thank you so much you are awesome

  9. Jay Crest says:

    O my GOD! This was actually a shot in the dark for me when I tried this method! I mean, I’m using CSP instead of MS5. I tried it and it actually works! Before, If I were going to pan using my two fingers or if I was gonna rotate it in the other side (initially, it only works counter-clockwise), it won’t work. But thanks to this, and a few tweaks on the “manga studio 5″ part and changing it to Clip Studio Paint. IT FINALLY WORKS! Thank you so much ^_^

  10. Leo says:

    For some reason I can’t get this to work on my Surface Pro 2. The machine runs Windows 8, uses the Wacom Feel Driver, and the appgestures xml file is there (different path, but it’s there c:\program files\tablet\isd), but for some reason I can’t quite get it to work with Sai. Any thoughts?

  11. Leo says:

    Hmm, weirdly enough when I do a rotate gesture, Sai’s little button press indicator at the bottom right shows that Ctrl is being used. I copied the text exactly,and even double checked the line about rotation ( ) so I’m not even sure what’s going on. Any insight you can offer would be greatly appreciated!

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Please copy the string jC7h5i to the field below:

Social Widgets powered by AB-WebLog.com.