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 US keyboard layout.  CSMMT will work fine for you, yet its Virtual Key definitions may not match that of your keyboard (this will cause the Macro assignments to be displayed incorrectly).  This can be fixed by altering CSMMT's Keyboard Layout.  To do so, look in the folder where CSMMT was installed for a file named KeyLayout.cfg.  Every time that CSMMT loads, it loads in its VKey definitions from the KeyLayout.cfg file.  Each keyboard layout also defines the key assignments for the default macros, as it's always possible that the keys used in macro definitions for one keyboard layout may not exist on another layout or not be good positions.

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]=DEL

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


Back to index