
맥을 쓰다 보면 가장 많이 불편한 부분 중 하나가 바로 한영 전환 키입니다.
전통적으로는 Shift + Space
로 전환할 수 있는데, 맥은 기본적으로 Ctrl + Space
라 손에 익지 않죠.
저처럼 컴퓨터를 오래 써온 분들은 이 부분이 정말 불편합니다.
그래서 오늘은 파이썬 스크립트를 이용해서 맥의 입력기 설정을 바꾸고, 한영 전환을 Shift + Space
로 변경하는 방법을 소개합니다. 설정 UI에서 바로 되면 좋겠지만 그게 안되니…
준비물
- macOS
- 파이썬 3.x (기본 설치되어 있음)
- 터미널 사용 가능 정도의 간단한 지식
파이썬 스크립트
아래 코드를 실행하면, macOS의 plist
설정이 변경되면서 한영 전환 키가 바뀝니다 👇
import plistlib
import os
import subprocess
from datetime import datetime
# 설정 파일 경로
PLIST_PATH = os.path.expanduser('~/Library/Preferences/com.apple.symbolichotkeys.plist')
# 백업 파일 경로
BACKUP_PATH = f"{PLIST_PATH}.{datetime.now().strftime('%Y%m%d-%H%M%S')}.bak"
# 변경할 단축키 정보
# 60: 입력 메뉴에서 이전 소스 선택
# Key Code 49: Space
# Modifier 131072: Shift
HOTKEY_ID = '60'
HOTKEY_VALUE = {
'enabled': True,
'value': {
'parameters': [32, 49, 131072],
'type': 'standard'
}
}
# 충돌 가능성이 있는 단축키 비활성화
# 61: 입력 메뉴에서 다음 소스 선택
CONFLICT_HOTKEY_ID = '61'
def main():
"""
macOS 한영 전환 단축키를 Shift + Space로 변경하는 스크립트
"""
print(f"Reading plist file: {PLIST_PATH}")
# 1. plist 파일 읽기 및 백업
try:
with open(PLIST_PATH, 'rb') as fp:
plist_data = plistlib.load(fp)
print(f"Backing up original file to: {BACKUP_PATH}")
subprocess.run(['cp', PLIST_PATH, BACKUP_PATH])
except FileNotFoundError:
print("plist file not found. Creating a new one.")
plist_data = {'AppleSymbolicHotKeys': {}}
except Exception as e:
print(f"Error reading plist file: {e}")
return
# 2. 단축키 설정 수정
hotkeys = plist_data.get('AppleSymbolicHotKeys', {})
print(f"Setting hotkey '{HOTKEY_ID}' (Select previous source in Input menu) to Shift + Space.")
hotkeys[HOTKEY_ID] = HOTKEY_VALUE
if CONFLICT_HOTKEY_ID in hotkeys:
print(f"Disabling conflicting hotkey '{CONFLICT_HOTKEY_ID}' (Select next source in Input menu).")
hotkeys[CONFLICT_HOTKEY_ID]['enabled'] = False
plist_data['AppleSymbolicHotKeys'] = hotkeys
# 3. 수정된 plist 파일 쓰기
try:
with open(PLIST_PATH, 'wb') as fp:
plistlib.dump(plist_data, fp)
print("Successfully updated the plist file.")
except Exception as e:
print(f"Error writing plist file: {e}")
return
# 4. 변경사항 시스템에 적용
# macOS의 환경설정 캐시(cfprefsd)를 갱신하여 변경사항이 즉시 반영되도록 합니다.
print("Notifying macOS of preference changes...")
subprocess.run(['defaults', 'read', 'com.apple.symbolichotkeys'], capture_output=True)
print("Restarting SystemUIServer to apply changes...")
subprocess.run(['killall', 'SystemUIServer'])
print("\nDone! The input source change key has been set to Shift + Space.")
print("If the change is not applied immediately, please try logging out and back in.")
if __name__ == '__main__':
main()
사용 방법
- 위 코드를
hangul_switch.py
같은 이름으로 저장합니다. - 터미널에서 해당 파일이 있는 폴더로 이동합니다.
cd ~/scripts
python3 hangul_switch.py
- 실행하면
plist
가 수정되어 설정이 반영됩니다. - 로그아웃했다가 다시 로그인해야 새로운 한영 전환 키(
Shift + Space
)가 정상 작동합니다.
마무리
plist를 직접 수정하는 가이드밖에 검색이 안되어 gemini를 시켜서 한번 만들어 봤습니다. 한번 실행하고 로그아웃 → 로그인 하면 설정이 적용됩니다. 😀