Example
The following example shows how to map the Ctrl+Home key combination on the keyboard. To send the Home key to the host session and also place a button for this function in your transformation, two steps are required: Edit KBS.js and then modify your transformation as described in Adding additional keypad buttons to a transformation.
To specify the key combination that sends the host key, modify the KBS.js file by adding the lines specified in bold italic below:
var CODE_BACKSPACE = 8;
var CODE_TAB = 9;
var CODE_ENTER = 13;
var CODE_PAUSE = 19;
var CODE_ESC = 27;
var CODE_PAGEUP = 33;
var CODE_PAGEDOWN = 34;
var CODE_END = 35;
var CODE_HOME = 36;
var CODE_INSERT = 45;
var CODE_DELETE = 46;
var CODE_A = 65;
var CODE_B = 66;
var CODE_C = 67;
var CODE_D = 68;
var CODE_E = 69;
var CODE_F = 70;
var CODE_G = 71;
var CODE_H = 72;
var CODE_I = 73;
var CODE_J = 74;
var CODE_K = 75;
var CODE_L = 76;
var CODE_M = 77;
var CODE_N = 78;
var CODE_O = 79;
var CODE_P = 80;
var CODE_Q = 81;
var CODE_R = 82;
var CODE_S = 83;
var CODE_T = 84;
var CODE_U = 85;
var CODE_V = 86;
var CODE_W = 87;
var CODE_X = 88;
var CODE_Y = 89;
var CODE_Z = 90;
var CODE_HOSTHOME = 36;
var CODE_F1 = 112;
var CODE_F2 = 113;
var CODE_F3 = 114;
var CODE_F4 = 115;
var CODE_F5 = 116;
var CODE_F6 = 117;
var CODE_F7 = 118;
var CODE_F8 = 119;
var CODE_F9 = 120;
var CODE_F10 = 121;
var CODE_F11 = 122;
var CODE_F12 = 123;
var HostKey =1;
var ApplicationKey =2;
/***********************************************************
* NOTICE: DO NOT MODIFY THE ABOVE VARIABLES!!
***********************************************************/
var defaultKeyMappings = [
// KEYCODE, ALT, CTRL, SHIFT, MNEMONIC
//============ command key mappings ================
[CODE_ENTER, 0, 0, 0, '[enter]' ],
[CODE_PAUSE, 0, 0, 0, '[attn]' ],
[CODE_ESC, 0, 0, 0, '[clear]' ],
[CODE_ESC, 0, 0, 1, '[sysreq]' ],
[CODE_PAGEUP, 0, 0, 0, '[pageup]' ],
[CODE_PAGEUP, 1, 0, 0, 'refresh' ],
[CODE_PAGEDOWN, 0, 0, 0, '[pagedn]' ],
[CODE_HOSTHOME, 0, 1, 0, '[home]' ],
[CODE_PAGEDOWN, 1, 0, 0, '[pa3]' ],
[CODE_END, 1, 0, 0, '[pa2]' ],
[CODE_INSERT, 1, 0, 0, 'default' ],
[CODE_DELETE, 1, 0, 0, '[pa1]' ],
[CODE_D, 0, 1, 0, 'disconnect' ],
[CODE_H, 0, 1, 0, '[help]' ],
[CODE_P, 0, 1, 0, '[printhost]' ],
[CODE_J, 0, 1, 0, 'printjobs' ],
[CODE_ENTER, 1, 0, 0, 'reverse' ],
[CODE_K, 0, 1, 0, 'toggle' ],
[CODE_S, 0, 1, 0, 'ResetButton' ],
//============ function key mappings ===============
[CODE_F1, 0, 0, 0, '[pf1]' ],
[CODE_F1, 0, 0, 1, '[pf13]' ],
[CODE_F2, 0, 0, 0, '[pf2]' ],
[CODE_F2, 0, 0, 1, '[pf14]' ],
[CODE_F3, 0, 0, 0, '[pf3]' ],
[CODE_F3, 0, 0, 1, '[pf15]' ],
[CODE_F4, 0, 0, 0, '[pf4]' ],
[CODE_F4, 0, 0, 1, '[pf16]' ],
[CODE_F5, 0, 0, 0, '[pf5]' ],
[CODE_F5, 0, 0, 1, '[pf17]' ],
[CODE_F6, 0, 0, 0, '[pf6]' ],
[CODE_F6, 0, 0, 1, '[pf18]' ],
[CODE_F7, 0, 0, 0, '[pf7]' ],
[CODE_F7, 0, 0, 1, '[pf19]' ],
[CODE_F8, 0, 0, 0, '[pf8]' ],
[CODE_F8, 0, 0, 1, '[pf20]' ],
[CODE_F9, 0, 0, 0, '[pf9]' ],
[CODE_F9, 0, 0, 1, '[pf21]' ],
[CODE_F10, 0, 0, 0, '[pf10]' ],
[CODE_F10, 0, 0, 1, '[pf22]' ],
[CODE_F11, 0, 0, 0, '[pf11]' ],
[CODE_F11, 0, 0, 1, '[pf23]' ],
[CODE_F12, 0, 0, 0, '[pf12]' ],
[CODE_F12, 0, 0, 1, '[pf24]' ]
];
Note: The name given to any new keycode variable (CODE_HOSTHOME
in this example) is not important except that it be unique and match
the corresponding entry in the defaultKeyMappings variable list.
Also note in this example that adding a new keycode variable for the
Home key is not actually necessary since the
var CODE_HOME = 36;
entry
already exists for the Home key's keycode. However, if you are mapping
a keyboard key that is not associated with a keycode variable already
defined in KBS.js, such an entry would be necessary.