프로그램 설치 없이 macOS에서 단축키를 마음대로 설정하기

프로그램 설치 없이 macOS에서 단축키를 마음대로 설정하기

·

6 min read


블로그를 이전하며 2022년 01월 20일 작성하였던 글을 재작성했습니다.


21년도 1월에 실리콘칩 맥북을 사고 macOS를 다루는데 꽤나 어려움이 많았다. 그 중에서도 나를 가장 짜증나게 만든 것은 Capslock으로 한영 전환하기였다. 한영을 바꾸기 곤란해서 영어와 한국어를 함께 쓰는 문서 작성에 시간이 꽤 걸렸다. 코드의 주석은 그냥 영어로 달았지만 문서화 하는데는 문제가 있었다. 올해는 새로운 단축키로 Control + SpaceBar를 알게 되었는데, 역시 이것도 불편했다. 사실 바꾸라면 언제든 바꿀 수 있었지만, '맥에 익숙해져보자!'라는 생각에 노력해보았으나... Windows나 macOS나 둘 중 하나에 익숙해지면 자꾸 다른 한 쪽에 어색해지고 말았다. (게임에서 빠르게 채팅 쳐야하는데 윈도우에서 캡스락 누르고 있었다.) 그리고 맥에서도 갖가지 항목에 대해 사용자화를 지원하는데 굳이 오기 가질 필요가 없었다. 그래서 윈도우 스타일로 자주 쓰는 키보드 단축키를 고정하기로 했다. 그런데 이럴수가. 여러가지 문제가 있었다. 삽질 후 결국 해결 방법을 찾아내서 기록한다. _다른 단축키도 같은 방법으로 적용하면 된다! _

만약 한영키만 오른쪽 command로 바꾸고 싶은 것이라면 다음의 블로그 글을 추천한다. 이분의 글은 깔끔하고 이해하기 쉬우며 필요한 파일도 제공해주신다. 비전공자가 나의 글에 들어왔다면 이 분의 글대로 따라하길 강력히 추천한다.

M1 맥북 한영전환 키 지정 방법(프로그램 설치X) 에서 확인하면 된다. 나의 글은 다음과 같은 사람들에게 추천한다.

  • 맥에서 다른 키와 조합하지 않은 단축키를 사용하고 싶은 사람

  • 왼쪽과 오른쪽을 구분하여 command, contorl, shift, option 키를 사용하고 싶은 사람

  • 위의 것들 중 그 어느 것도 프로그램 설치 없이 진행하고 싶은 사람

  • 이 행동이 어떤 과정을 통해 일어나는지 이해 하고 싶은 사람

  • 한/영 키 외에도 다른 단축키를 마음껏 바꿔보고 싶은 사람

바꾸는 방법

우선 간략한 순서를 알아보자.

  1. hidutil key remapping generator for MacOS에서 원하는 키 매핑 정하기

  2. 권한에 대한 문제 가능성에 대비

  3. .plist 파일에 멋지게 복사 붙여넣기

  4. 시스템 환경설정에서 매핑에 맞춰 설정하여 완성!

나는 오른쪽 command키를 한/영 전환에 사용하도록 바꿀 것이다. 나의 경우처럼 보통 조합되어 사용되는 키들을 하나의 키만 눌러 눌러 특정 기능을 하게 만들 경우에 사용할 수 있다.

1. hidutil key remapping generator for MacOS에서 원하는 키 매핑 정하기

hidutil key remapping generator for MacOS에 들어가면 아래와 같이 사이트 이름, 드롭다운 메뉴, 코드가 보인다.

hidutil 페이지

사이트 이름의 hidutil key remapping 이 바로 우리가 단축키를 바꿀 방법이다. 즉, 이 방식으로 단축키를 바꾸기 위한 코드 생성기인 것이다. 홈 화면에 드롭다운 메뉴가 없다면 Add key map을 클릭하여 새로운 매핑을 만들어준다. 매핑의 개수는 바꿔주고 싶은 단축키만큼 만들면 된다.

image

From key내가 누를 키 라고 생각하면 된다. To Key내가 눌러서 실행시킬 동작 이라고 생각하면 된다. 정리하자면,

From Key를 눌러 To Key 동작을 실행하겠다. 라는 의미인 것이다. 내가 설정한 값에 따라 아래 코드가 바뀐다. 바뀌는 사항은 코드 중 <string> { "UserKeyMapping" : [ 의 아래가 바뀌는데, 이 부분이 우리가 설정하는 값을 코드로 나타낸 부분이기 때문이다.

image

그런데 나는 오른쪽 커맨드 키 에 한/영 전환을 넣고 싶은 것인데 f18이라는 것과 연결했다. 왜일까? 이유는 간단하다. To Key 항목에 한영 전환을 위한 선택지가 없기 때문이다. 그래서 맥에서 제공하는 f1~f19까지의 단축키 중에 거의 사용하지 않는 f18에 매핑하고, f18키를 누르면 한/영 전환이 되도록 만들 것이다. 그림으로 그려본다면 다음과 같다.

image

위의 그림과 같은 과정을 통해 오른쪽 커맨드키를 눌렀을 때 한/영 전환이 되도록 하는 것이다. 윈도우의 키보드에서도 보면 f12까지 밖에 없듯이 맥북 키보드에서도 f18은 통용되는 키보드 내에서는 접근하기 어려워 걱정하지 않고 매핑해도 된다.

2. 권한에 대한 문제 가능성에 대비

사이트의 중앙에 보면 로컬 주소인 ~/Library/LaunchAgents/com.local.KeyRemapping.plist가 나와있다. 이는 이 파일을 붙여넣기 해야하는 위치이다. 그런데 macOS에 익숙하지 않았던 나는 폴더 생성부터 파일 생성까지 모두 문제가 조금씩 있었는데 이런 문제를 거치지 않고 진행하기 위한 과정이다. 또한, 특별한 이해를 요하지 않는 부분이다. 2.에 해당하는 내용은 내가 사용한 방법보다 쉽거나 익숙한 방법이 있다면 그 방법을 이용하기를 추천한다. 이 순서에서 해야할 일은 다음의 두 가지뿐이다.

  • 폴더 내 읽기 및 쓰기 권한 확보

  • com.local.KeyRemapping.plist 파일이 없으면 새로 만들기

우선 ~/Library/LaunchAgents/로 이동하면, 같은 확장자(.plist)인 파일이 더 있을 것이다. 나는 2개가 있었다. 이 폴더에서 오른쪽 클릭 혹은 원 안에 점이 3개 있는 아이콘을 클릭하여 정보 가져오기를 누른다. 가장 아래에 보면 공유 및 사용 권한 항목에 각각의 권한이 적혀있다. 이 중 everyone의 권한이 읽기 전용이라면 권한을 바꿔주어야 한다. 그래야 새로운 파일을 생성하고 저장할 수 있다. 우측 하단의 자물쇠를 눌러 everyone의 권한을 읽기 및 쓰기로 바꾼 뒤 다시 자물쇠를 눌러 변경을 끝낸다. (자물쇠를 누르지 않고 변경하려고 하면 권한이 없다는 경고창이 뜬다.)

image

위의 사진과 같이 되어있다면, 3.에서 문제없이 복사 붙여넣기, 저장까지 마칠 수 있다. 나는 3.까지 끝내고 난 뒤에 다시 everyone의 권한을 읽기 전용으로 바꿔두었다 . 혹시나 사용 및 개발 도중에 잘못 건드려 변경되는 일이 없도록 하기 위해 안전장치를 하는 셈이다. 원래부터 읽기 전용인 이유도 이런 안전장치를 걸어두어 쉽게 변경되면 안되는 정보들을 보호하는 것이다. 컴퓨터를 안전하게 쓰는 것을 중요하게 생각한다면 귀찮더라도 다시 읽기 전용으로 바꿔두기를 추천한다.

이제 com.local.KeyRemapping.plist 파일을 생성 및 변경해줘야 한다. 처음에 윈도우를 생각하고 폴더에서 바로 새문서를 만들려고 오른쪽 클릭을 했더니... 그런 선택지가 없었다. 기타 아이콘을 눌러봐도 마찬가지였다. 그래서 메모장을 생각하고 텍스트 편집기에서 붙여넣기한 뒤 저장하려고 보니 이게 웬걸 저장에 확장자가 (*)나 모든 문서가 없었다. 이걸 리치 텍스트 문서로 저장할 수도 없으니 원래 있던 다른 파일의 복사본을 만들어 변경 하기로 했다.

LAunchAgents 폴더 내의 .plist 확장자를 가지는 아무 파일이나 오른쪽 클릭하여 복제를 선택한다. 그러면 폴더 내에 복사본이 생성된다. 이름부터 com.local.KeyRemapping.plist로 바꿔준다. 그리고 그 파일을 다시 오른쪽 클릭하여 다음으로 열기를 선택한 뒤 기타...을 눌러 사용할 수 있는 프로그램들 중 텍스트 편집기를 선택하여 파일을 연다.

우리는 새로이 .plist 파일을 만든 것이나 마찬가지인 상태를 원하므로 원래 있던 내용을 전부 지운 뒤 다음 단계로 넘어가면 된다.

3. .plist 파일에 멋지게 복사 붙여넣기

이제 1.에서 만든 코드를 복사해 저장할 것이다. .plist 파일에 대해 궁금하다면 위키백과: 프로퍼티_리스트-macOS를 참고하면 도움이 될 것이다.

사이트에서 제공하는 Copy 버튼을 사용하거나 사이트의 상자 안에 든 코드를 전부 복사하면 된다. 어쨋거나 이 전체가 들어가는 것이 중요하다. 붙여넣기를 하고 나면 줄바꿈이나 들여쓰기 등에 차이가 날 수 있으나 보기 직관적일 뿐 기능의 차이는 없으니 편한 형태로 두면 된다. 나는 복사하고 나니 줄바꿈이 다 없어져서 보기 편한 상태로 대충 들여쓰기 해두었다. (원하는 것이 다 들어있는지 확인하기 편하다!)

image

멋지게 복사 하고 붙여넣기 했으니 이제 컴퓨터를 껐다 켠다. 재시동 이나 시스템 종료 를 눌렀다 다시 켜면 이 항목이 적용되어있다. (4.을 진행하지 않았기에 아직 아무런 동작의 변화가 없다.) 그러면 3.에서 할 일은 다 끝났다. 이 단계를 통해서 우리는 지금 F18에 오른쪽 command키를 매핑했다. 원한다면 바로 4.으로 넘어가도 좋다. 4단계에 가기 전까지 이어지는 내용은 대충 코드의 간단한 설명이다.


코드 내 첫 번째 줄을 보면 알 수 있듯이 xml의 구조를 가진다. <plist version="1.0">까지의 내용은 파일의 구조나 설정에 대한 것이다. 그 이후에 나오는 내용은 딕셔너리 형태로 구성되어있다. Label이라는 <key>를 가지는 요소에 com.local.KeyRemapping 이라는 string이 있고, ProgramArguments라는 <key>를 가지는 요소에 <string>이 들어있는 배열 <array>가 있는 것이다. 배열 내 내용 중 UserKeyMapping에 있는 값들이 우리가 지정한 키보드 매핑에 대한 것이다.


4. 시스템 환경설정에서 매핑에 맞춰 설정하여 완성!

이젠 아주 쉽다. F18키를 언어 선택 기능(한/영 전환)에 매핑하면 된다. 시스템 환경설정에서 키보드를 선택한 뒤 단축키 항목으로 이동한다. 왼쪽 항목에서 입력 소스를 선택한 뒤 이전 입력 소스 선택을 변경해주면 된다. 이전 입력 소스 선택의 오른쪽에 해당하는 키가 나와있을텐데 기본이라면 아마 ^스페이스라고 되어있을 것이다. 이걸 클릭하여 입력할 수 있게 바뀌면 오른쪽 커맨드키를 누른다. 그러면 F18로 변경되어 있을 것이다. 그리고 설치되어 있는 언어가 2개(한국어, 영어) 뿐이라면 입력 메뉴에서 다음 소스 선택을 F18로 바꿔주어도 같은 효과가 난다. 나는 아래의 사진과 같이 입력 메뉴에서 다음 소스 선택에 매핑했다.

image

어느 쪽이든 변경한 뒤 아무 곳에서나 텍스트를 쳐보며 확인해보자. 나는 곧잘 작동했다. 이제 다른 기능들을 매핑하고 싶을 때는 같은 방법으로 수행하면 된다.

여담

원래는 .dict 파일을 이용해 +(옵션+왼쪽 화살표) 조합으로 가능한 단어 수준의 커서 이동을 +(커맨드+왼쪽 화살표)로 바꾸는 것도 함게 기록할 예정이었으나... 무슨 이유에선지 적용되지 않았다. 다른 사람들의 해결책을 봐도 잘 되지 않아 이건 Xcode와 Visual Studio Code에서 직접 단축키 설정을 해줬다. 나중에 또 도전해볼 생각이다. 그리고 가능하다면 function 키를 control처럼 써보고 싶었는데 이건 fn을 code로 나타내는 것조차 없어서 당황했다. cocoa text system은 꽤나 흥미로웠고 여러모로 더 알아봐야겠다.