Keyboard Layout
Though it may not look it from the GUI, CSMMT does have some framework for customizing its Keyboard Layout and potentially even adding support for language profiles (for translating the program into other languages) at a future date [depends on the demand of users for it and willingness to help translate]. However, that said, you can still change its keyboard layout right now if the need arises.
For example, let's assume that you're not using a
standard
If you're interested in creating your own keyboard layout, changing what CSMMT names each key in reporting macro assignments to you, or changing the default macro assignments, have a look at the KeyLayout.cfg file. The included comments should explain all that's needed to do so and the current layout can serve as an example or base.
The following is the default KeyLayout.cfg file from CSMMT version 1.1
//============================================================================================================
// This is the
default provided VKey definition file for CSMMT, it defines the standard US101
keyboard layout.
// The
provided VKey mappings will also cover most media-function keys.
// *Note that
an undefined VKey is still usable in Macros, but will be defined as undefined
<VKey>*
//
// By altering
this definition file you can provide support for otherboard layouts, OR simply
personalize
// the way
CSMMT reports mappings to you.
//
// Valid VKey
range for definitions are 32bit unsigned integers.
// Indexing
can be provided in either Hex or Decimal.
If the prefix 0x is not used, Decimal is assumed.
//
// A blank
VKMap assignment is invalid. For
instance "VKMap[0x01]=" will generate an error.
// If you want
a blank assignment, simply do not make the assignment.
//
// --You can
store this file in either UNICODE or ANSI.
UNICODE key-descriptions may be input.
//============================================================================================================
VKMap[0x01]=Left
mouse
VKMap[0x02]=Right
mouse
VKMap[0x03]=Control-break
processing
VKMap[0x04]=Middle
mouse
VKMap[0x05]=X1
mouse
VKMap[0x06]=X2
mouse
VKMap[0x08]=BACKSPACE
VKMap[0x09]=TAB
VKMap[0x0C]=CLEAR
VKMap[0x0D]=ENTER
VKMap[0x10]=SHIFT
VKMap[0x11]=CTRL
VKMap[0x12]=ALT
VKMap[0x13]=PAUSE
VKMap[0x14]=CAPS
LOCK
VKMap[0x15]=IME
Kana
VKMap[0x15]=IME
Hanguel
VKMap[0x15]=IME
Hangul
VKMap[0x17]=IME
Junja
VKMap[0x18]=IME
final
VKMap[0x19]=IME
Hanja
VKMap[0x19]=IME
Kanji
VKMap[0x1B]=ESC
VKMap[0x1C]=IME
convert
VKMap[0x1D]=IME
nonconvert
VKMap[0x1E]=IME
accept
VKMap[0x1F]=IME
VKMap[0x20]=SPACEBAR
VKMap[0x21]=PAGE
UP
VKMap[0x22]=PAGE
DOWN
VKMap[0x23]=END
VKMap[0x24]=HOME
VKMap[0x25]=LEFT
ARROW
VKMap[0x26]=UP
ARROW
VKMap[0x27]=RIGHT
ARROW
VKMap[0x28]=DOWN
ARROW
VKMap[0x29]=SELECT
VKMap[0x2A]=PRINT
VKMap[0x2B]=EXECUTE
VKMap[0x2C]=PRINT
SCREEN
VKMap[0x2D]=INS
VKMap[0x2E]=
VKMap[0x2F]=HELP
VKMap[0x30]=0
VKMap[0x31]=1
VKMap[0x32]=2
VKMap[0x33]=3
VKMap[0x34]=4
VKMap[0x35]=5
VKMap[0x36]=6
VKMap[0x37]=7
VKMap[0x38]=8
VKMap[0x39]=9
VKMap[0x41]=A
VKMap[0x42]=B
VKMap[0x43]=C
VKMap[0x44]=D
VKMap[0x45]=E
VKMap[0x46]=F
VKMap[0x47]=G
VKMap[0x48]=H
VKMap[0x49]=I
VKMap[0x4A]=J
VKMap[0x4B]=K
VKMap[0x4C]=L
VKMap[0x4D]=M
VKMap[0x4E]=N
VKMap[0x4F]=O
VKMap[0x50]=P
VKMap[0x51]=Q
VKMap[0x52]=R
VKMap[0x53]=S
VKMap[0x54]=T
VKMap[0x55]=U
VKMap[0x56]=V
VKMap[0x57]=W
VKMap[0x58]=X
VKMap[0x59]=Y
VKMap[0x5A]=Z
VKMap[0x5B]=Left
Windows
VKMap[0x5C]=Right
Windows
VKMap[0x5D]=Applications
VKMap[0x5F]=Sleep
VKMap[0x60]=Numpad
0
VKMap[0x61]=Numpad
1
VKMap[0x62]=Numpad
2
VKMap[0x63]=Numpad
3
VKMap[0x64]=Numpad
4
VKMap[0x65]=Numpad
5
VKMap[0x66]=Numpad
6
VKMap[0x67]=Numpad
7
VKMap[0x68]=Numpad
8
VKMap[0x69]=Numpad
9
VKMap[0x6A]=Multiply
VKMap[0x6B]=Add
VKMap[0x6C]=Separator
VKMap[0x6D]=Subtract
VKMap[0x6E]=Decimal
VKMap[0x6F]=Divide
VKMap[0x70]=F1
VKMap[0x71]=F2
VKMap[0x72]=F3
VKMap[0x73]=F4
VKMap[0x74]=F5
VKMap[0x75]=F6
VKMap[0x76]=F7
VKMap[0x77]=F8
VKMap[0x78]=F9
VKMap[0x79]=F10
VKMap[0x7A]=F11
VKMap[0x7B]=F12
VKMap[0x7C]=F13
VKMap[0x7D]=F14
VKMap[0x7E]=F15
VKMap[0x7F]=F16
VKMap[0x80]=F17
VKMap[0x81]=F18
VKMap[0x82]=F19
VKMap[0x83]=F20
VKMap[0x84]=F21
VKMap[0x85]=F22
VKMap[0x86]=F23
VKMap[0x87]=F24
VKMap[0x90]=NUM
LOCK
VKMap[0x91]=SCROLL
LOCK
VKMap[0x92]='='
VKMap[0x92]='Dictionary'
VKMap[0x93]='Unregister
word'
VKMap[0x94]='Register
word'
VKMap[0x95]='Left
OYAYUBI'
VKMap[0x96]='Right
OYAYUBI'
VKMap[0xA0]=Left
SHIFT
VKMap[0xA1]=Right
SHIFT
VKMap[0xA2]=Left
CONTROL
VKMap[0xA3]=Right
CONTROL
VKMap[0xA4]=Left
MENU
VKMap[0xA5]=Right
MENU
VKMap[0xA6]=Browser
Back
VKMap[0xA7]=Browser
Forward
VKMap[0xA8]=Browser
Refresh
VKMap[0xA9]=Browser
Stop
VKMap[0xAA]=Browser
Search
VKMap[0xAB]=Browser
Favorites
VKMap[0xAC]=Browser
Start and Home
VKMap[0xAD]=Volume
Mute
VKMap[0xAE]=Volume
Down
VKMap[0xAF]=Volume
Up
VKMap[0xB0]=Next
Track
VKMap[0xB1]=Previous
Track
VKMap[0xB2]=Stop
Media
VKMap[0xB3]=Play/Pause
Media
VKMap[0xB4]=Start
Mail
VKMap[0xB5]=Select
Media
VKMap[0xB6]=Start
Application 1
VKMap[0xB7]=Start
Application 2
VKMap[0xBA]=';:'
VKMap[0xBB]='+'
VKMap[0xBC]=','
VKMap[0xBD]='-'
VKMap[0xBE]='.'
VKMap[0xBF]='/?'
VKMap[0xC0]='`~'
VKMap[0xDB]='[{'
VKMap[0xDC]='\\|'
VKMap[0xDD]=']}'
VKMap[0xDE]='
'/\" '
VKMap[0xE2]=BACKSLASH
VKMap[0xE5]=IME
PROCESS
VKMap[0xE7]=VK_PACKET
VKMap[0xF6]=Attn
VKMap[0xF7]=CrSel
VKMap[0xF8]=ExSel
VKMap[0xF9]=Erase
/ EOF
VKMap[0xFA]=Play
VKMap[0xFB]=Zoom
VKMap[0xFD]=PA1
VKMap[0xFE]=Clear
//============================================================================================================
// This
Section of the VKey definition file demonstrates the assignment of
default-mappings for functions
// in CSMMT on
a system that has not defined its own yet.
By changing the following you can setup default
// Macro
Mappings for a specific VKey Layout on a computer that has not yet specified
its own.
//
// Certain
Macro assignments such as opening the ControlPanel can be crucial to maintaining
control of a
// computer
after locking the Mouse to a certain display and Minimizing CSMMT's main
Dialog.
//
// Macro
assignments are comma delimited and can be specified in hex or decimal just as
the VKMap indexing.
// Valid VKey
range for definitions are 32bit unsigned integers. Any assignment outside of this range
// will be
clamped.
//
// A blank
default assignment is invalid. For
instance "MonitorMacro[1]=" will generate an error.
// If you want
a blank default assignment, simply do not make the assignment.
//============================================================================================================
// The following is an example for setting the
Macros for Monitors 1-10 to Left Alt/Menu 1-0.
// Simply uncomment the following if you want them
enabled.
//MonitorMacro[1]=0xA4,0x31
//MonitorMacro[2]=0xA4,0x32
//MonitorMacro[3]=0xA4,0x33
//MonitorMacro[4]=0xA4,0x34
//MonitorMacro[5]=0xA4,0x35
//MonitorMacro[6]=0xA4,0x36
//MonitorMacro[7]=0xA4,0x37
//MonitorMacro[8]=0xA4,0x38
//MonitorMacro[9]=0xA4,0x39
//MonitorMacro[10]=0xA4,0x30
ControlPanelMacro=0xA2,0x50 // Left Control + P to Open the Control Panel of
CSMMT
EnableCSMMTMacro=0xA2,0x45 // Left Control + E to Enable CSMMT
DisableCSMMTMacro=0xA2,0x44 // Left Control + D to Disable CSMMT