일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Game Gear
- mobilesuit
- 3DS
- mister
- fpga
- ensemble
- snes
- 오블완
- Apple II
- ps4
- 새턴
- MSX
- 게임보이
- 티스토리챌린지
- 닌텐도
- 패미컴
- analogue
- 컨트롤러
- 메트로이드
- 모빌슈트
- 슈퍼마리오
- 닌텐도스위치
- PC엔진
- 게임기어
- Saturn
- GOG
- 앙상블
- 슈퍼패미컴
- 메가드라이브
- 건담
- Today
- Total
Just a Blog
시에라(macOS Sierra)에서 한영키 사용하기 - 그 세번째 시도 본문
* 2017.11.26
아래 내용은 과거 내용입니다.
Karabiner-Elements가 없데이트 되면서, 다중키 변환 및 적용 어플리케이션 지정이 가능하게 되었습니다.
아래 내용은 현 시점에서 무시하셔도 됩니다.
2부 - macOS Sierra와 Parallels Desktop에 동시에 왼쪽 Command 키로 한영 변환하려고 삽질했으나...
앞선 두 개의 글을 읽기 귀찮은 사람들을 위해 이야기를 요약해 보겠다.
1. 나의 요구 사항
- macOS Sierra에서 스페이스바의 오른쪽에 있는 키(Macbook 또는 Mac 기본 키보드에서는 command키)를 한영 변환키로 사용하고 싶음
- macOS 상에서 구동되는 Parallels 또는 VirtualBox의 Guest OS에서도 스페이스바의 오른쪽에 있는 키를 한영키로 사용하고 싶음
(Parallels Desktop또는 VirtualBox에서 구동되는 Guest OS는 Windows 7/10 이나 Linux)
2. 문제점
- macOS Sierra에서 Karabiner가 동작하지 않아 Karabiner-Elements를 사용해야 함
이전 버전 El Capitan까지는 이상없이 잘 동작하던 Karabiner는 Sierra에서의 수정 때문인지 Sierra에서 동작하지 않는다.
개발하시는 분의 응급조치로 Karabiner-Elements이 발표되었다.
- Karabiner-Elements는 Simple 키 변환만 지원함
즉, 'modifier키(command, option, shift, ctrl 등)+일반키'를 다른 키로 맵핑할 수 없다.
이로 인해, 기본적으로 modifier키와 일반 키의 조합으로 할당된 (ctrl+space, command+space 등) 한영변환 조합을 스페이스바 오른쪽에 있는 단일 키에 맵핑할 수가 없다.
생각해 보면 조합이 아닌 단일 키 중 사용되지 않고 비어 있는 것이 거의 없다.
F18~F20 정도가 크게 사용되지 않지만 그것도 다른 응용 프로그램에서 전혀 사용하지 않을 것이라 기대하기 어렵다.
- Karabiner-Elements는 application 별 키 맵핑 수행 여부를 지정할 수 없음.
이전 Karabiner는 가상화 프로그램이나 원격데스크탑 프로그램에서는 해당 키 변환이 발생하지 않도록 설정하는 옵션이 있었다.
가상화 프로그램의 Guest OS에서 macOS 자체 한영변환을 수행할 필요도 없고 수행하지 않는 편이 Guest OS 자체가 손 쓸 방법을 많이 가지게 되므로 좋았다.
그런데 Karabiner-Elements에서는 Parallels Desktop, VirtualBox 같은 가상화 프로그램에서만 특별히 키 변환이 안 일어나게 만들 수가 없다.
3. 삽질#1 - 스페이스바 오른쪽 키를 F18 등의 잘 사용하지 않는 키를 한영전환 키로 할당하고 스페이스 오른쪽에 있는 키를 F18 등의 해당 키로 맵핑
Back To The Mac 등에 소개되어 있고 현재 가장 유명한 해결방법이다.
하지만 개인적으로 다음의 마이너한 이유들로 적용을 보류 중이다.
(1) 가상화 프로그램(Parallels Desktop, VirtualBox, ...)이 F18 키 등의 키를 처리(입력 수신, 처리)하지 못할 수 있음
가상화 프로그램이 해당 키를 처리하지 못하면 가상화 내부의 Guest OS로 해당 키를 전달해 주지 못한다.
Guest OS가 키 값을 넘겨 받아야 내부에서 한영 변환키로 쓰든지 말든지 하지 않겠는가,
Parallels Desktop은 (최신버전은 수신 가능하나) 구 버전에서 F18~F20키를 인식도 못했고 전달도 못했다.
VirtualBox는 macOS 자체의 특수 키가 눌러진 것으로 봐서 그런지 Guest OS로 전달하지 못했다.
(2) Guest OS가 특수 키를 처리하지 못할 수 있음
Windows 운영체제에는 F18~F20 키 값이 없다.
가상화 프로그램이 F18~F20 키 값을 잘 받았다고 하더라도 Guest OS가 Windows라면 그대로 맵핑할 수 없다.
Parallels Desktop은 설정에서 키 값을 변환하여 맵핑할 방법(예. F18키를 오른쪽 Alt 키로)이 있다.
하지만 여전히 구 버전은 문제가 되고, VirtualBox는 맵핑 기능이 없다.
(3) F18~F20 등의 단일키는 추후 어플리케이션들이나 OS가 자체적인 목적으로 사용될 수 있는 가능성이 있다.
macOS에서 분명 키 값이 존재하는 키 값들이기 때문에 현재는 응용 프로그램들이 사용하지 않더라도 추후 사용될 수 있다.
Apple에서 Mac에 특수한 용도가 필요하다고 판단한다면 macOS나 퍼스트파티 키보드 제품에서 이를 사용할 수도 있다고 생각된다.
그래서 한영전환 같은 특수한 키는 command, option, ctrl 같은 키와 조합된 키가 사용되는 것이 더 바람직하다.
4. 삽질#2 - BTT(Better Touch Tool)를 사용
유료인 이 어플리케이션을 적용해 보려고 시도했던 이유는, 이 어플리케이션이 응용 프로그램 별로 매크로의 실행을 제어할 수 있기 때문이었다.
즉, F18키를 한영전환으로 하고 스페이스바 오른쪽 키를 F18에 맵핑하되 Parallels Desktop이나 VirtualBox 앱에서는 이 맵핑이 발생하지 않게 할 수 있을 것 같았다.
그러면 스페이스바 오른쪽 키가 보통은 F18로 변환되지만 Parallels Desktop 어플리케이션 내에서는 스페이스바 오른쪽에 있는 키(Command나 Alt키)가 그대로 인식될 것이라고 생각했다.
그런데 왜인지 그렇게 동작하지 않았다.
이유는 모르겠다.
현재 설치한 BTT의 trial 기간이 만료되어 더 이상 확인도 어렵다.
5. 삽질#3 - isHUD 앱을 사용
isHUD 앱을 사용하면 Sierra에서 Command, Option 키로 입력 언어 변경이 가능한 것을 알게 되었다.
isHUD 앱은 유료지만 앱 스토어에서 가지고 있는 앱이었고, 정확한 원리는 모르겠지만 isHUD는 언어전환 단축키 설정에 상관없이 앱 내에서 지정한 Command, Option 키를 언어전환에 사용할 수 있도록 했다.
예를 들어 macOS Sierra 설정에서 언어전환 단축키를 Ctrl+Space로 지정했다고 해도 isHUD 앱에서 스페이스바 오른쪽에 Command 키를 언어전환 키로 설정하면 Ctrl+Space 키 외에도 오른쪽 Command 키로 한영전환이 가능하다.
Parallels Desktop이나 VirtualBox에서는 오른쪽 Command 키가 오른쪽 Windows 키로 인식할 것이라고 예상했다.
그래서 Windows Registry에서 오른쪽 Windows 키 값을 오른쪽 Alt 키 코드로 변환하게 했고 이제 오른쪽 Command 키가 한영전환 키에 해당하는 오른쪽 Alt 키로 동작할 것이라고 생각했다.
실제로 Parallels Desktop이나 VirtualBox에서 Command 키를 누르니 한영전환이 되었다.
그런데 한영전환이 발생할 때 이상하게 공백이 삽입되는 현상이 발생했다.
Windows에서 입력되는 키 코드를 보는 앱을 실행시켜 보니 isHUD에서 언어전환으로 지정한 키를 누르면 레지스트리 수정에 의해 바뀌어진 오른쪽 Alt 키 이외에 스페이스 바에 해당되는 키도 눌러지는 것으로 나왔다.
그래서 공백이 들어가는 것이었고, 놀랍게도 macOS 쪽에서 isHUD를 종료하고 Windows 쪽에서 오른쪽 Command를 누르니 정상적으로 오른쪽 Alt 키만 입력되는 것으로 확인되었다.
즉, 아마도 isHUD는 앱에서 지정한 키와 더불어 스페이스 값을 추가로 생성하는 것 같다.
한영전환할 때 마다 공백이 들어가는 것이 이상해서 더 사용하기 어려운 방법으로 판단했다.
6. 삽질#4 - Caps Lock 키를 한영전환으로 설정하고 가상머신 내 Guest OS에서 Caps Lock키를 한영전환으로 설정하기
macOS Sierra에서는 언어전환 단축키와 더불어 Caps Lock 키를 통한 언어전환을 지원한다.
한영전환에 Caps Lock키를 사용한다는 것이 익숙하지 않아서 무시하고 있었는데, 어느 날 갑자기 아이디어가 떠올랐다.
즉, Caps Lock을 언어전환에 사용하도록 설정하고, Karabiner-Elements 앱에서 스페이스바 오른쪽에 있는 키를 Caps Lock으로 변환하는 것이다.
Windows나 Linux의 OS에서도 Caps Lock을 입력언어 전환키로 바꿀 수 있을 것 같았다.
실제로 해 보니 Windows에서 일단 언어 변환은 잘 되었다.
다만 문제는 Windows에서 Caps Lock의 빠른 입력을 처리하지 않는 것인지 2초 이내에 입력은 처리되지 않았다.
즉, Caps Lock으로 한글로 전환했는데 '아차, 한글이 아니라 영어를 입력해야 하는구나' 하고 2초 이내 다시 Caps Lock을 누르면 영어로 돌아가지 않고 한글 상태를 유지한다(2초 이상 기다리고 누르면 전환이 정상적으로 전환된다).
그리고 왜인지 모르겠지만, (가상머신 환경 하의) Ubuntu 기반 Linux 배포판의 몇가지 입력기(fcitx, uim)에서 Caps Lock이 전환키로 잘 인식하지 못했다.
이상이 현재까지의 삽질기이다.