본문 바로가기

macOS

[FINAL] macOS 환경에서 Shift + Space 를 한영전환키로

728x90
반응형

작업환경은 macOS 이다.

 

윈도우, 테스트용 macOS, 리눅스를 사용하기 위해서 VMware Fusion 을 사용한다.

원격 PC 에 접속하기 위해서 크롬 원격 데스크톱, Microsoft Remote Desktop 을 사용한다.

 

VMware 를 사용할 때나, 크롬 원격 데스크톱을 사용할 때나 Microsoft Remote Desktop 을 사용할 때나 한결같이 한영전환키는 Shift + Space 여야 한다.

 

2가지 프로그램(for macOS)이 필요하다.

1. BetterTouchTool

2. Karabiner

모두 키입력을 매핑시켜주는 유틸리티 프로그램이다.

 

macOS 에서 설정이 필요하다.

VMware 에서 설정이 필요하다.

 

macOS 키보드 설정

한영전환

macOS 의 한영전환 기본 단축키는 CMD + Space 이다.

한영전환 (입력소스 전환) 단축키의 기본값은 CMD + Space

이 설정은 그대로 유지한다.

Shift + Space 를 누르면 CMD + Space 를 누른것처럼 동작되게 하기 위해서 BetterTouchTool 이 필요하다.

 

 

BTT(BetterTouchTool) 설정

macOS 를 사용하면서 Shift + Space 를 눌렀을 때 CMD + Shift 가 눌린것처럼 동작하게 하여 한영전환이 되게 하려면

BTT 에서 Shift + Space 키보드 단축키에 대한 매핑 설정(→ CMD + Space)을 추가한다.

BTT 에서 Shift + Space 단축키에 대한 매핑 설정

 

예외 추가

VMware Fusion, 크롬 원격 데스크톱, Microsoft Remote Desktop 에서는 Shift + Space 가 CMD + Space 로 변환되지 않고 Shift + Space 로 그대로 동작하게 하기 위해서 예외로 설정한다.

예외로 설정해 둔 어플리케이션에서는 Shift + Space 를 누르면 그대로 Shift + Space 가 전달된다.

VMware Fusion 에서는 Shift + Space 단축키를 비활성화시켰다.

크롬 원격 데스크톱, Microsoft Remote Desktop 으로 연결하는 대상 PC 에서 한영전환이 Shift + Space 로 설정되어 있어야 한다.

 

VMware 설정

BTT 에서 VMware 어플리케이션을 예외로 설정했기 때문에 VMware 에서 Shift + Space 는 Shift + Space 로 전달된다.

VMware 에서 구동하는 Windows, macOS, Linux 모두 한영전환 단축키를 Shift + Space 로 설정한다.

 

macOS in VMware

작업용 호스트 macOS 에서 한영전환 단축키로 Shift + Space 를 사용하기 위해서 BTT 를 설치하고, 설정을 한 것처럼 VMware 로 구동하는 게스트 macOS 에도 BTT 를 설치하고 설정해도 된다.

여기에서는 또 다른 방법을 하나 더 소개한다.

Karabiner

BTT 의 UI 처럼 직관적이진 않으나 키매핑을 설정하는 기능은 동일하다.

BTT 는 UI 로 예외 어플리케이션을 등록할 수 있는데, Karabiner 는 설정 파일을 직접 편집해 주어야 한다.

게스트 OS 에서는 예외 어플리케이션을 등록할 필요가 없어서 Karabiner 를 설치하여 사용하고 있다.

 

Shift + Space 단축키 매핑 항목

Karabiner - Complex modifications 목록에 추가한 rule 을 등록하는 방법은 다음과 같다.

Add rule 버튼 클릭

Import more rules from the Internet (open a web browser) 버튼 클릭

검색어로 korean shift 입력 후 검색

검색 결과에서 For Korean Keyboard 를 선택하여 Import 버튼 클릭

Shift + Space 를 한영전환 단축키로 설정하는 rule

Karabiner 에 import 된 항목 중에서 "shift + 스페이스 를 사용하여 입력 소스 변경" 항목의 Enable 버튼을 클릭

 

#Insert script code here
-- Get current language
set activeKbdLayout to my getActiveKeyboardLayout()
on getActiveKeyboardLayout()
set plistPath to "~/Library/Preferences/com.apple.HIToolbox.plist"
try
do shell script "defaults read " & plistPath & " dummy"
end try

tell application "System Events"
repeat with pli in property list items of ¬
property list item "AppleSelectedInputSources" of ¬
property list file plistPath
try
return value of property list item "KeyboardLayout Name" of pli
end try
end repeat
end tell

return "한국어"
end getActiveKeyboardLayout

if activeKbdLayout is "ABC" then
set layoutName to "영어"
else
set layoutName to "한국어"
end if

tell application "BetterTouchTool"

trigger_action "{\"BTTPredefinedActionType\": 254, \"BTTHUDActionConfiguration\": \"{\\\"BTTActionHUDDetail\\\":\\\"인풋소스\\\",\\\"BTTActionHUDTitle\\\":\\\"" & layoutName & "\\\",\\\"BTTActionHUDDuration\\\":\\\"0.9\\\",\\\"BTTActionHUDBackground\\\":\\\"38.719535, 38.720697, 38.720067, 213.662109\\\",\\\"BTTActionHUDSlideDirection\\\":0}\"}"

end tell

반응형