윈도를 맥처럼 - 맥의 CMD + 백틱키 단축키를 윈도에서 쓰기 (사용중 앱간 윈도우 전환)

Juntai Park @arkjun@hackers.pub
맥을 오랫동안 메인 개발머신으로 사용하다가 윈도를 다시 메인으로 사용한 지 1년째.
여러가지 단점에도 불구하고, 윈도11 + WSL (우분투) 환경에서의 개발이 나쁘지만은 않습니다. 물론 CMD 키도 없고, Ctrl 키를 이용한 복사 붙여넣기는 불편합니다만.
그럼에도 맥에 없는 윈도의 장점들이 맘에 들고, 윈도에 없는 맥의 장점들 또한 맘에 듭니다.
물론, 언젠가 또 맥을 다시 메인으로, 윈도를 서브로 쓰는 날도 오겠지요. 메인은 때로 상황에 따라 교체할 수 있음을 유연하게 생각해 두는 편입니다.[1]
사설이 길었는데, 제가 맥에서 자주 쓰는 단축키인 CMD + `(억음 악센트/백틱) 키 는, 사용 중인 앱의 전환을 시켜주는데, 가령 크롬 브라우저 창을 두 개 열었다면 단축키 사용시에 크롬 브라우저 창 간 전환을 시켜 줍니다.
맥에서 가장 많이 사용하는 단축키여서, 윈도에서 비슷한 역할을 하는 단축키를 열심히 구글링하여 찾아 보았으나 찾을 수 없었습니다.
그래서 AutoHotkey[2] 를 이용해 간단한 스크립트를 만들어서 사용하고 있습니다.
사실 완벽하게 동작하지는 않고, 개인적으로 쓰기에 적당히 만족하는 수준에서만 동작하는 코드라, 공유하기에 부끄럽기도 하고 코드도 초 간단합니다만,
- 누군가 맥에 익숙하지만 윈도도 쓰는 사용자에게 도움이 되는 마음과,
- Hackers’ Pub 의 부흥(?) 을 기원하면서.
해당 AutoHotKey 스크립트 코드를 공유합니다.
; Alt + 백틱 키를 눌렀을 때 실행되는 코드
; MacOS 의 CMD + ` (Backtick) 키로 동일 프로그램내 창전환을 윈도에서 구현.
!`::
{
focusedWindow := WinExist("A")
if !focusedWindow
return
focusedPID := WinGetPID(focusedWindow)
focusedPName := WinGetProcessName(focusedWindow)
focusedClass := WinGetClass(focusedWindow)
focusedTitle := WinGetTitle(focusedWindow)
; Get all windows of the same class and process
windows := []
for window in WinGetList()
{
if (WinGetPID(window) = focusedPID && WinGetTitle(window) != focusedTitle)
{
windows.Push(window)
}
}
if (windows.Length > 1)
{
WinActivate(windows[2])
} else if (windows.Length = 1) {
WinActivate(windows[1])
}
}
실행 방법은 위의 코드를 임의의 ahk 확장자를 가진 파일로 작성하여 AutoHotKey 로 실행시키면 끝입니다. AutoHotkey 를 통해 해당 스크립트를 실행파일 (exe) 로 컴파일 할 수도 있습니다.
덧) 과거에 이미 GitHub Gist 쪽에 공유해 놓기는 했습니다.
읽어주셔서 감사합니다.
사실 최근 윈도를 메인으로 쓰는 1년 동안, 중간에 간간히 맥을 메인으로 쓰기도 했습니다. ↩︎
오토핫키(AutoHotkey)는 윈도우에서 키보드 단축키 설정, 간단한 매크로 제작, 자동화 등을 목적으로 하는 무료 오픈 소스 기반의 스크립트 언어이다. 간단한 프로그램 제작에 특화된 직관적인 문법을 갖추고 있으며 마우스와 키보드 제어, 화면에서 이미지 검색, 윈도우 창 조작, 간단한 GUI 제작 등 언어의 목적에 맞는 기능이 내장되어 있다. 출처 : 나무위키 (https://namu.wiki/w/AutoHotkey) ↩︎