Karabiner 에서 Cmd+Space 를 F16 으로 바꾼 후에, 셋팅 > 키보드 > 숏컷에서 F16 을 언어변환으로 사용 중이었는데,
동일 네트워크에 있는 다른 맥에 원격 접속을 하면 한영 변환이 안 되더라구요.
원래 설정했던 Karabiner 설정값에
{
"description": "Cmd+Space to F16",
"manipulators": [
{
"from": {
"key_code": "spacebar",
"modifiers": {
"mandatory": ["command"],
"optional": ["any"]
}
},
"to": [{ "key_code": "f16" }],
"type": "basic"
}
]
}
추가로 하나 더 넣어줬더니 (ft. ChatGPT) 해결됐습니다.
{
"description": "Screen Sharing: Cmd+Space toggles local IME and sends F16 to remote",
"manipulators": [
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.apple\\.ScreenSharing$"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "spacebar",
"modifiers": {
"mandatory": ["command"],
"optional": ["any"]
}
},
"to": [
{ "shell_command": "/Users/mba/.config/karabiner/scripts/input-source toggle com.apple.keylayout.ABC com.apple.inputmethod.Korean.2SetKorean >/dev/null 2>&1" },
{ "key_code": "f16" }
],
"type": "basic"
}
]
}
======
혹시 Jump Desktop 이용하시는 분은 이것도 함께 설정하시면 됩니다.
{
"description": "Jump Desktop: Cmd+Space toggles local and M1 IME without forwarding Cmd",
"manipulators": [
{
"conditions": [
{
"bundle_identifiers": [
"^com\\.p5sys\\.jump\\.mac\\.viewer$"
],
"type": "frontmost_application_if"
}
],
"from": {
"key_code": "spacebar",
"modifiers": {
"mandatory": ["command"],
"optional": ["any"]
}
},
"to": [{ "shell_command": "/Users/mba/.config/karabiner/scripts/input-source toggle com.apple.keylayout.ABC com.apple.inputmethod.Korean.2SetKorean >/dev/null 2>&1; /usr/bin/ssh -o BatchMode=yes -o ConnectTimeout=2 david@M1-Server.local '/Users/david/.config/karabiner/scripts/input-source toggle com.apple.keylayout.ABC com.apple.inputmethod.Korean.2SetKorean >/dev/null 2>&1; /usr/bin/swift -e '\"'\"'import CoreGraphics; let keys: [CGKeyCode] = [55,54,56,60,58,61,59,62,57,63]; let source = CGEventSource(stateID: .combinedSessionState); for key in keys { if let event = CGEvent(keyboardEventSource: source, virtualKey: key, keyDown: false) { event.flags = []; event.post(tap: .cghidEventTap) } }'\"'\"' >/dev/null 2>&1' >/dev/null 2>&1 &" }],
"type": "basic"
}
]
}
=============
이렇게 간단히 해결되는게 신기하네요.
P.S. "shell_command": "/Users/mba/ <- 이곳 경로는 개인마다 다르니 손보셔야 할 겁니다.