diff --git a/model/serializeConfig.js b/model/serializeConfig.js index 08b12d04..0c1108b1 100755 --- a/model/serializeConfig.js +++ b/model/serializeConfig.js @@ -14,25 +14,28 @@ var ARRAY_LAST_ELEMENT_ID = 0; var KEY_ACTION_ID_KEYSTROKE_SCANCODE_FIRST = 1; var KEY_ACTION_ID_KEYSTROKE_SCANCODE_LAST = 231; -var KEY_ACTION_ID_SWITCH_LAYER_MOD = 232; -var KEY_ACTION_ID_SWITCH_LAYER_FN = 233; -var KEY_ACTION_ID_SWITCH_LAYER_MOUSE = 234; -var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_MOD = 235; -var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_FN = 236; -var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_MOUSE = 237; -var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_LEFT_CTRL = 238; -var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_LEFT_SHIFT = 239; -var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_LEFT_ALT = 240; -var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_LEFT_SUPER = 241; -var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_RIGHT_CTRL = 242; -var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_RIGHT_SHIFT = 243; -var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_RIGHT_ALT = 244; -var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_RIGHT_SUPER = 245; -var KEY_ACTION_ID_MOUSE = 246; -var KEY_ACTION_ID_PLAY_MACRO = 247; -var KEY_ACTION_ID_SWITCH_KEYMAP = 248; +var KEY_ACTION_ID_SWITCH_LAYER = 232; +var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_MOD = 233; +var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_FN = 234; +var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_MOUSE = 235; +var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_LEFT_CTRL = 236; +var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_LEFT_SHIFT = 237; +var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_LEFT_ALT = 238; +var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_LEFT_SUPER = 239; +var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_RIGHT_CTRL = 240; +var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_RIGHT_SHIFT = 241; +var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_RIGHT_ALT = 242; +var KEY_ACTION_ID_DUAL_ROLE_KEYSTROKE_RIGHT_SUPER = 243; +var KEY_ACTION_ID_MOUSE = 244; +var KEY_ACTION_ID_PLAY_MACRO = 245; +var KEY_ACTION_ID_SWITCH_KEYMAP = 246; var KEY_ACTION_ID_NONE = 255; +var SWITCH_LAYER_MOD = 0; +var SWITCH_LAYER_FN = 1; +var SWITCH_LAYER_MOUSE = 2; +var SWITCH_LAYER_TOGGLE = 0x80; + var NONE_ACTION_PADDING = 0; var MOUSE_ACTION_ID_LEFT_CLICK = 0; @@ -141,12 +144,12 @@ function serializeSwitchKeymapAction(switchKeymapAction) { } function serializeSwitchLayerAction(switchLayerAction) { + writer.uint8(KEY_ACTION_ID_SWITCH_LAYER); writer.uint8({ - mod : KEY_ACTION_ID_SWITCH_LAYER_MOD, - fn : KEY_ACTION_ID_SWITCH_LAYER_FN, - mouse: KEY_ACTION_ID_SWITCH_LAYER_MOUSE - }[switchLayerAction]); - writer.uint8(0); + mod : SWITCH_LAYER_MOD, + fn : SWITCH_LAYER_FN, + mouse: SWITCH_LAYER_MOD + }[switchLayerAction] | switchLayerAction.toggle ? SWITCH_LAYER_TOGGLE : 0); } serializeKeyActions(keyActions); diff --git a/model/uhk-config.json b/model/uhk-config.json index 65ad5522..211836c4 100644 --- a/model/uhk-config.json +++ b/model/uhk-config.json @@ -38,7 +38,8 @@ }, { "actionType": "switchLayer", - "layer": "fn" + "layer": "fn", + "toggle": false }, { "actionType": "dualRoleKeystroke",