LogoArtPad Overview

ArtPad is primarily designed for graphics applications that can use a pen input. These include Photoshop, Clip Studio Paint, Painter, Krita, Rebelle, and others. Computers such as the Surface Pro, Surface Book, and Cintiq provide pressure-sensitive pens. The problem is that most of these applications rely on a large number of sometimes complicated keystroke sequences to do things in the application. These sequences are hard to enter with the pen.

ArtPad is a small keypad that stays on top of your application and allows you to enter these sequences by tapping on one of its keys. The keys, the number of rows and columns, their size, their label, and what keystrokes they send are all configurable. It can be resized and moved on the screen to where it is convenient. It is like an on-screen keyboard except that it sends key sequences rather than a single key. It also has some additional options, such as running a command.

As of version 1.4 you have the choice of seeing the title bar or not. The default is to see it. This can be set in Edit Key Configuration | Appearance. In the case of Minimal, there is no way to do the things, like moving it, that are usually done via the title bar, so the operations for Move, Size, Restore, Minimize, Maximize, and Exit then will appear in the context (right-click) menu.

This is a screen shot of ArtPad being used with Clip Studio Paint.

ArtPad Screenshot

There is no menu bar in ArtPad to save space. The menu is a context menu and is obtained by right clicking one of the keys.

There is a Troubleshooting section at the bottom of the page. There are also Acknowledgements.

How it Works

ArtPad is registered as a TOPMOST window, so that it stays on top of most other windows. However, if there are other TOPMOST windows, there is no guarantee it will be on top of those.

Making it TOPMOST works most of the time. However, at times it may not stay on top for reasons that may not be readily apparent. For ways to fix it see Troubleshooting.

It keeps track of and stores the currently active (foreground) window. It checks for the active window every time the cursor enters one of the keys. (This does not make ArtPad the active window.) Thus, whenever you do an action in ArtPad, it should know the correct active window, the place where you want your ArtPad key sequences to go. When you click a key, it sends the KeySequence for that key to the window it has stored (unless the Type is COMMAND or UNUSED, where no KeySequence is sent).

ArtPad is built for Any CPU without 32-bit preferred. It thus runs as 64-bit on 64-bit systems and 32-bit on 32-bit systems.

ArtPad will remember its last location on the screen and its last loaded configuration file. It will use these values the next time it starts. If you have changed the configuration, perhaps by resizing, it will not remember those changes, unless they are explicitly saved. Save the configuration if you want to keep it.

The configuration file has the key definitions, the size of the keypad, the number of rows and columns, the font parameters, and the foreground and background colors. It is a text file and can be edited manually if you are careful. The syntax is JSON.

Installation

If you are installing from a download, just unzip the files into a directory somewhere convenient. Then run it from there. If you are installing from a build, copy these files and directories from the bin/Release directory to a convenient directory.

To uninstall, just delete these files.

It is suggested you make an ArtPad directory in My Documents to keep configuration files.

Keys

ArtPad comes with a default keys configuration. You can change the keys directly in the interface, or you can also save the configuration as a file, and edit the file. You can load a saved configuration file. The file is in JSON syntax, but it can be intuitively edited in a text editor without really needing to understand JSON. Configuration files have the extension .config. This is an example key configuration that sends Ctrl-C:

 {
   "Name": "Copy",
   "KeyString": "^c",
   "Type": 0,
   "Row": 1,
   "Col": 1,
   "Pressed": false
 },

A key has five properties:

  1. Name: The label that shows on the key.
  2. KeyString: The keystroke sequence that is sent.
  3. Type: There are four types, NORMAL (0), HOLD (1), COMMAND (2), and UNUSED (3).
  4. Row: The row on the keypad, 0, 1, 2, ....
  5. Col: The column on the keypad, 0, 1, 2, ....
  6. Pressed: Whether the key is pressed or not (should always be left at false when editing and saving).

The Name, Row, and Col should be self-explanatory. The type is the most complicated and is discussed below. Pressed only applies if the Type is HOLD and is discussed under the HOLD type.

KeyString

ArtPad uses SendKeys from the .Net Framework. Each sequence is represented by one or more characters. To send a single character (except for special characters) just enter the character. For the special characters +, ^, %, and ~, use {+}, { ^}, {%}, and {~}. For the special characters (, ), {, }, [, and ] enclose them in braces.

Here are some of the more commonly-used keys that are special or are not characters:

Key Code
^ Ctrl
+ Shift
% Alt
~ Enter
{ {{ } (Similar for })
( {(} (Similar for ))
INS or INSERT {INSERT} or {INS}
DEL or DELETE {DELETE} or {DEL}
BACKSPACE {BS} or {BKSP} or {BACKSPACE}
DOWN ARROW {DOWN} (Similar for UP, LEFT, RIGHT)
END {END} (Similar for HOME)
ESC {ESC}
TAB {TAB}
F1 {F1} (Similar for other function keys)
Keypad add {ADD} (Similar for subtract, multiply, divide)
PAGE DOWN {PGDN} (Similar for PAGE UP)
NUMLOCK {NUMLOCK}

Here are some examples:

Ctrl-C ^c
Alt-C %c
Shift-Ctrl-S ^S
Ctrl-E, Ctrl-C ^(ec) or ^e^c
Shift-E, Shift-C EC or +(EC) or +E+C or +e+c
Shift-E, C +EC
A A or +a or +A
Press h 10 times {h 10}
Press LEFT ARROW 5 times {LEFT 5}
Lorem Ipsum 2 Lorem Ipsum 2

For a complete list of the syntax see https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.sendkeys.send or search for SendKeys.

TYPE

NORMAL

This indicates that the key sends a normal key sequence with the KeyString as described above.

HOLD

This indicates that the key should be held down after it is sent. The KeyString must be one of ^, +, %. It is used to perform the same way as the Ctrl, Shift, and Alt keys on the keyboard. For example, the sequence ^c with HOLD means the Ctrl key will stay down as if you pressed and held it. When a key is in the held state, it will be highlighted. All further keys sent from ArtPad or typed at the keyboard will be with that that key, e.g.Ctrl, held down.

Note that if a key such as Ctrl is left held down when the active application changes, it will likely cause trouble with the next application or the desktop. For this reason there is a menu item to "Send Hold Keys Up". This should fix the problem, even if ArtPad must be restarted to do it. It may also work to press the physical key on the keyboard twice or to press both physical keys on the keyboard together. In the worst case, you many have to log off and back on or restart. Being careful about leaving keys held down is the best approach. See Troubleshooting.

COMMAND

This indicates that instead of sending keys, a command is run. The KeyString is the path to the command. If the command is in your PATH, then entering the name of the command is sufficient. Otherwise the full path must be specified. Typically, you can use in ArtPad whatever you can use at a command prompt.

You can optionally type a comma after the command followed by options for the command.

When editing in ArtPad itself, use a single backslash \ for the directory separator. In the JSON configuration file, you will have to use a double backslash \\.

Note that you can call another instance of ArtPad. For example:

\bin\artpad.exe,\MyArtPadDir\Photoshop.config 

will open another instance of ArtPad when the ArtPad executable is in \bin and your ArtPad configuration file for Photoshop is in \MyArtPadDir.

You could also use C:\bin instead of \bin if bin is on your C drive. Again, you should be able to use whatever you can use at a command prompt (except for the comma notation).

Onscreen Keyboards

There are two onscreen keyboards you may want to consider.

TabTip is the tablet keypad. In some applications it will come up automatically when you need to enter text, such as a file name for saving. Other applications don't support this feature, so you need a keypad. You can start TabTip with the following:

\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe

OSK is another onscreen keyboard that has come with Windows for some time. On 64-bit Windows 10, you should be able to use:

\windows\system32\osk.exe

Whether you can use just osk.exe and whether it works at all depends on the version of Windows and on whether it is a 64-bit or 32-bit platform. You may have to experiment. Note that ArtPad runs as 64-bit on 64-bit systems and 32-bit on 32-bit systems.

UNUSED

This indicates you don't want to use this key for now. There will be no label, and the configuration will be retained but ignored.

Menus

There are no menus below the title bar as is usual for most applications, This is in order to save space. There is only a context menu, accessed by right-clicking any key. Use the X on the title bar to close ArtPad.

The menu structure is:

Edit Key...

Brings up a dialog to edit the parameters for selected key. The dialog has buttons to Copy, Paste, Reset. Set the key, or Dismiss the dialog. The Edit Key Dialog will stay up after setting the key. You can load another key in it by selecting Edit Key... from that key.

Copy Key

Copies the current key to the clipboard as text, using JSON syntax. It can be copied into a text file, and it is available for the Paste Key menu option in ArtPad.

Paste Key

If the clipboard has a valid key definition, it pastes that definition into the selected key.

EDIT KEY CONFIGURATION

Delete Row

Deletes the row containing the selected key.

Add Row Before

Adds a row before the row of the selected key.

Add Row After

Adds a row after the row of the selected key.

Delete Column

Deletes the column containing the selected key.

Add Column Before

Adds a column before the column of the selected key.

Add Column After

Adds a column before the column of the selected key.

Appearance...

The Appearance dialog allows you set the font, foreground and background colors, and the key size.

You can specify the font name. There current name should be shown initially. Blank means to use the default font. There is a drop-down menu that list all the fonts on your system. Typing the first few characters of the name will position it near the name you are starting to type.

You can check if you want Bold, Italic, Underlined, or Strikeout. The current values will be checked initially.

You can specify the font size in points. The current size should be shown initially. The value 0.0 means to use the default size.

You can choose a foreground and a background color. Colors are specified in the form #RRGGBB, R, G, and B are valid hexadecimal digits (0-9 and A-F). This is a common notation for HTML. Red is #FF0000, Green is #00FF00, Blue is #0000FF, White is #FFFFFF, and Black is #000000. Use the Select button to select a color if you are unfamiliar with hexadecimal or just want to see the colors. As usual, the initial values are the current colors, and if the value is blank, then the default colors will be used.

You can set the width and height of the keys in the layout. (All keys are currently the same size.) It is initially filled in with the current values. What is actually used and saved in the configuration is the size of the box holding the keys. The width is the key width times the number of columns, and the height is the key height times the number of rows. It will readjust your values so that no labels are cut off and to meet any system requirements, like the minimum size for the title bar. Note that these values are in pixels and are dependent on your screen resolution. To get the same visual size on another computer, they may be different. Note that you can probably more easily resize the keys by dragging the resize handles on ArtPad.

As of version 1.4 you can set the whether the title bar is Default or Minimal.

Sort

This just sorts the configuration files so the keys are in order. It is useful if you plan to edit the configuration file manually. It does not affect the key layout.

Create New Configuration...

Allows you to specify the number of rows and columns for an entirely new configuration and, on confirmation, replaces the current configuration with the new blank one (all keys are UNUSED).

TROUBLESHOOTING

Show Foreground Window...

Brings up a dialog with information about the ArtPad window and the foreground window (which may be ArtPad). In addition to showing which window is the window to which ArtPad is sending key sequences, it also shows the topmost state of both. This may be useful in determining why ArtPad is not on top of the application to which you want to be sending key sequences. See the Troubleshooting section.

Send Hold Keys Up

Sends an UP event for all keys with Type HOLD and keys the keys to not be highlighted. Use this to recover from problems caused by a held key, especially when the current application is changed while the keys are in the hold state. See the Troubleshooting section.

Reset ArtPad as Topmost

Resets ArtPad as a topmost window in case it has become unset somehow. See the Troubleshooting section.

Set Application Not Topmost

Sets the foreground window (the one to which ArtPad is sending key sequences) to not be topmost. Use this if the application is appearing on top of ArtPad. See the Troubleshooting section. It will be necessary to insure the application is not maximized nor under or above Artpad when you do this.

Set Application Topmost

Sets the foreground window (the one to which ArtPad is sending keys) to be topmost. You do not want this to be the case, or ArtPad will appear under the application. Use it to recover if you accidentally set the wrong window to be topmost. Or it can be used to set any window to be topmost. See the Troubleshooting section.

Load Configuration...

Load a new configuration file and reset the configuration.

Save Configuration As..

Save the current configuration in a file. The file is in JSON syntax, as described above, but it should not be hard to figure out how to change it. Note that the Types will be given in numbers, not text, and all backslashes in paths must be replaced with double backslashes.

HELP

Help Overview...

Shows this overview .

Help About...

Shows information about this application.

Acknowledgements

ArtPad uses the packages Json.net and Windows Input Simulator.

Troubleshooting

I can't move ArtPad because the title bar is too small to find a place to drag.

Click the icon on the title bar, and use Move from the resulting menu. You can use the keyboard or the mouse (provided you start where the double-arrow move cursor first appears). Alternative ways to get the Move menu item are to Shift-right-click the Task Bar icon, or use Alt-space when ArtPad is the active window. If you want to be able to move it easily, leave it large enough that there is space on the title bar to drag it.

I am getting all kinds of strange behavior in applications after using ArtPad.

This can happen if the keys Ctrl, Alt, or Shift are left in the hold state or were put in the hold state when the wrong application was the active window. Actions in other programs or even the desktop behave as if these keys are held, which usually means they do something different than without them held. If ArtPad has been closed, restart it. Use the Send Hold Keys Up menu item with the misbehaving application as the active window. It may also work to press the physical key on the keyboard twice or to press both physical keys on the keyboard together. In the worst case, you many have to log off and back on or restart. Being careful about holding keys down is the best approach.

Note that ArtPad automatically does Send Hold Keys Up on exit. Thus, provided you have not switched active windows, there not be a problem if you forget. The problem occurs if the active window changes when the keys are held.

ArtPad is not staying on top.

ArtPad is registered as a TOPMOST window. That means it should be on top of normal windows, like your drawing application. However, there is no guarantee it will be on top of other TOPMOST windows. If ArtPad is not staying on top for whatever reason, there are several things you can try.

First use Troubleshooting | Show Foreground Window. This will tell you which is the foreground window (the one to which ArtPad is sending key sequences), and it will tell you the topmost state of both ArtPad and the foreground window. You want ArtPad to be a topmost window and the foreground application to not be. Otherwise the application will be on top of ArtPad when it has focus. If this is not the case, you can use the Troubleshooting | Reset ArtPad as Topmost or Troubleshooting | Set Application Not Topmost menu items to fix it. Although not strictly needed, Troubleshooting | Set Application Topmost is provided to set a window to be topmost in case you accidentally set the wrong one. It can also be used to make any window topmost. This may be useful, say, for an image viewer you want to stay on top for use as a reference image while drawing.

If these methods fail, the best solution is probably to close and restart ArtPad and/or the other application. Save your current ArtPad configuration first, if it has changed and you are interested in retaining it, and of course save your work in the other application before closing it.