UNPKG

karabiner.ts-greg-mods

Version:
79 lines (78 loc) 2.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sides = exports.layerVarName = void 0; exports.isFromAndToKeyCode = isFromAndToKeyCode; exports.getSideOfMod = getSideOfMod; exports.isSidedMod = isSidedMod; exports.getUnsidedMod = getUnsidedMod; exports.getFromKeyCodeFromBasicManipulator = getFromKeyCodeFromBasicManipulator; const karabiner_ts_1 = require("karabiner.ts"); exports.layerVarName = "__layer"; function isFromAndToKeyCode(key) { return (karabiner_ts_1.modifierKeyCodes.includes(key) || karabiner_ts_1.controlOrSymbolKeyCodes.includes(key) || karabiner_ts_1.arrowKeyCodes.includes(key) || karabiner_ts_1.letterKeyCodes.includes(key) || karabiner_ts_1.numberKeyCodes.includes(key) || karabiner_ts_1.functionKeyCodes.includes(key) || karabiner_ts_1.keypadKeyCodes.includes(key) || karabiner_ts_1.internationalKeyCodes.includes(key)); } exports.sides = ["left", "right"]; /** * Returns the side of a sided modifier alias or Modifier or null if not sided. * * Accepts SideModifierAlias (e.g., 'left_shift', '>shift') * or canonical Modifier (e.g., 'shift'). */ function getSideOfMod(mod) { if (typeof mod !== "string") return null; if (mod.startsWith("left") || mod.startsWith("l") || mod.startsWith("<") || mod.startsWith("‹")) { return "left"; } else if (mod.startsWith("right") || mod.startsWith("r") || mod.startsWith(">") || mod.startsWith("›")) { return "right"; } else { // Not a sided modifier return null; } } /** * Returns whether a modifier is sided. */ function isSidedMod(mod) { return getSideOfMod(mod) !== null; } /** * Returns the unsided version of a modifier. */ function getUnsidedMod(mod) { const s = mod; if (s.startsWith("left_")) { return s.slice(5); } if (s.startsWith("right_")) { return s.slice(6); } return mod; } /** * Returns the from key code from a BasicManipulator or null if not found. */ function getFromKeyCodeFromBasicManipulator(m) { if (!("key_code" in m.from)) { return null; } if (typeof m.from.key_code === "number") { return null; } return m.from.key_code; }