SynergyでMac側をサーバにしたときにcmdやoptionのマッピングを変える 解決編
SynergyでMac側をサーバにしたときにcmdやoptionのマッピングを変える 目的編の続き。
手探りでPlatform/COSXKeyState.cppの中のそれっぽいコードを下記のように書き換えてみたら動いてくれた。
- { kKeyAlt_L, s_altVK }, - { kKeyAlt_R, s_altVK }, - { kKeySuper_L, s_superVK }, - { kKeySuper_R, s_superVK }, // 61 - { kKeyMeta_L, s_superVK }, - { kKeyMeta_R, s_superVK }, // 61 + { kKeyAlt_L, s_superVK }, + { kKeyControl_L, s_altVK }, - if ((mask & cmdKey) != 0) { - outMask |= KeyModifierAlt; - } - if ((mask & optionKey) != 0) { - outMask |= KeyModifierSuper; - } - if ((mask & rightOptionKey) != 0) { - outMask |= KeyModifierSuper; - } + if ((mask & cmdKey) != 0) { + outMask |= KeyModifierControl; + } + if ((mask & optionKey) != 0) { + outMask |= KeyModifierAlt; + } + if ((mask & rightOptionKey) != 0) { + outMask |= KeyModifierAlt; + } - if ((mask & KeyModifierAlt) != 0) { - macModifierMask |= cmdKey; - } - if ((mask & KeyModifierSuper) != 0) { - macModifierMask |= optionKey; - } + if ((mask & KeyModifierControl) != 0) { + macModifierMask |= cmdKey; + } + if ((mask & KeyModifierAlt) != 0) { + macModifierMask |= optionKey; + } - if ((changed & KeyModifierAlt) != 0) { - handleModifierKey(target, s_altVK, kKeyAlt_L, - (newMask & KeyModifierAlt) != 0, newMask); - } - if ((changed & KeyModifierSuper) != 0) { - handleModifierKey(target, s_superVK, kKeySuper_L, - (newMask & KeyModifierSuper) != 0, newMask); - } + if ((changed & KeyModifierControl) != 0) { + handleModifierKey(target, s_altVK, kKeyControl_L, + (newMask & KeyModifierControl) != 0, newMask); + } + if ((changed & KeyModifierAlt) != 0) { + handleModifierKey(target, s_superVK, kKeyAlt_L, + (newMask & KeyModifierAlt) != 0, newMask); + }
やったー!!