1. 왜 AutoHotKey인가?


저는 지금 AutoHotKey로 키맵핑을 해서 키보드를 사용하고 있습니다. 


몇 가지 키맵핑 스크립트를 공유하려고 글을 남깁니다. 



그런데 왜 굳이 AutoHotKey여야 하는가에 대한 의문이 있으실 겁니다. 


저는 처음 딥스위치를 이용해서 (레오폴드 fc660m 입니다) Ctrl과 Capslock을 변경하는 수준의 키맵핑만 했습니다.


하지만 이 방법의 단점은, 지금 제가 노트북에 이 키보드를 연결해서 사용하고 있고, 가끔은 무선 블루투스 키보드도 사용을 하는데,


딥스위치를 이용한 키맵핑은 그 키보드에만 해당되기 때문에 노트북 키보드와 블루투스 키보드를 사용할 때 큰 혼란과 불편함이 있다는 것입니다.



두 번째 시도해봤던 프로그램이 SharpKeys였습니다. SharpKeys는 윈도우의 레지스터를 건드려서 키를 다시 맵핑해주는 프로그램입니다. 하지만 이 프로그램의 단점은, 레지스트리를 건드린다는 부담과, 여러 키의 조합은 맵핑할 수 없다는 불편함입니다. 



그래서 마지막으로 시도해서 지금까지 사용 중인 프로그램이 AutoHotKey입니다. 


이 프로그램의 장점은, 

1) 스크립트를 읽어들여 구동하기 때문에 레지스트리를 변경하지 않는다는 것과,

2) 따라서 스크립트를 수정하거나 다른 스크립트를 읽어들여도 재부팅이 필요 없으며,

3) 다양한 맵핑 (여러 키의 조합 및 마우스 조작까지도) 가능하다는 것입니다.


단점은 스크립트를 작성하는 방법이 꽤나 어렵다는 것인데, 그래서 제가 이리저리 검색하여 유용하게 사용하고 있는 몇 가지의 스크립트를 공유하려고 합니다.




2. AutoHotKey 설치 및 스크립트 작성


AutoHotKey 프로그램은 https://autohotkey.com/ 에서 다운로드받으실 수 있습니다.


32/64 bit 인스톨러도 있고 무설치버전도 있는데, 키맵핑 스크립트를 시작프로그램에 등록하여 시스템 시작시부터 사용하려면 무설치버전보다 설치버전을 추천합니다. 프로그램이 참 가벼워서 설치해도 큰 부담이 없을 것입니다.


그리고 스크립트 작성은 그냥 메모장을 열어서 확장자를 .ahk 로 해주면 끝납니다. 그리고 이 스크립트를 실행하면 자동적으로 로딩됩니다. (그리고 시작프로그램에 이 스크립트 파일을 넣어주면 시스템 시작시 자동으로 로딩됩니다. )





3. 스크립트 공유


제가 사용하는 스크립트입니다. 



#InstallKeybdHook


Capslock::

Send {LControl Down}

KeyWait, CapsLock

Send {LControl Up}

if ( A_PriorKey = "CapsLock" )

{

    Send {Backspace}

}

return




; Shift + Ctrl 단축키 위한 스크립트

+CapsLock::+Ctrl

Return



; Ctrl + CapsLock 토글 방지

^CapsLock::Ctrl

Return

 


; Always on Top

^SPACE:: Winset, Alwaysontop, , A ; ctrl + space

Return




; \키를 backspace로

\::Backspace 

Return



 ; 윈도우키 + \ 키로 \ 입력

#\::\

Return



; 마우스 클릭

#LAlt::

MouseClick              

return


; 마우스 우클릭

#space::MouseClick, right

return 



(보시다시피 ; 이후에 있는 건 스크립트로 띄워지지 않는 설명구입니다)



스크립트 설명 들어갑니다. 필요한 것만 복사해서 쓰시면 되겠습니다. 



#InstallKeybdHook


Capslock::

Send {LControl Down}

KeyWait, CapsLock

Send {LControl Up}

if ( A_PriorKey = "CapsLock" )

{

    Send {Backspace}

}

return


보통 Ctrl과 Capslock을 많이 바꿔서 쓰시는데, 이건 거기서 한 단계 더 나아간 스크립트입니다.


Capslock이 눌린 상태로 문자가 입력되면 Ctrl 단축키로 작동하고,

Capslock이 눌린 상태로 문자입력 없이 다시 들려지면 backspace로 작동합니다.


굉장히 자주 쓰는 backspace가 참 멀어서 손이 불편할 수 있는데, 아주 위치가 좋은 capslock을 backspace와 ctrl로 쓸 수 있는 유용한 스크립트입니다. 


물론 capslock이 올라갈 때 backspace 입력이 되기 때문에 backspace의 연속입력은 안 됩니다. 


Capslock 토글은 윈도우키, Ctrl, Alt 중 하나의 키와 Capslock 키를 누르면 됩니다. 


그리고 원래 Ctrl은 그대로 Ctrl로 작동합니다. 가끔은 원래의 Ctrl 위치가 편해서 그냥 남겨두었습니다. 



; Shift + Ctrl 단축키 위한 스크립트

+CapsLock::+Ctrl

Return


Ctrl과 Shift 단축키 (예를 들어 Ctrl + Shift + Z) 가 제대로 작동할 수 있도록 해주는 스크립트입니다.




; Ctrl + CapsLock 토글 방지

^CapsLock::Ctrl

Return


Ctrl + Capslock으로 의도하지 않게 캡스락 토글이 될 때가 많아서 Ctrl + Capslock은 그냥 Ctrl로 인식되도록 하는 스크립트를 추가했습니다.



; Always on Top

^SPACE:: Winset, Alwaysontop, , A ; ctrl + space

Return


Ctrl + Space를 누르면 현재창이 항상 위로 뜨게 됩니다. 
예를 들어 메모장 작업하다가 이 창을 항상 띄워두고 다른 작업을 하고 싶을 때 사용하면 됩니다.
다시 원래대로 돌리려면 다시 Ctrl + Space를 누르면 됩니다. 



\::Backspace
Return

해피해킹은 \ 위치에 백스페이스가 있어서 손이 편합니다. 그걸 구현해서 \키를 백스페이스로 작동하게 했습니다.
(결국 Backspace와 \키 모두 Backspace로 작동하게 됩니다. 필요에 따라 Backspace를 다른 키로 맵핑해서 사용할 수도 있습니다.)


#\::\
Return

\키가 자주 사용되진 않지만 가끔씩 \를 입력해야 할 경우를 위해 윈도우키 + \ 로 \ 입력을 가능하게 했습니다.
당연히 윈도우키 + shift + \로 | 입력이 됩니다.


; 마우스 클릭
#LAlt::
MouseClick              
return

; 마우스 우클릭
#space::MouseClick, right
return 

가끔 오른쪽 손가락이 피곤해서 마우스 버튼을 누르기 싫을 때 
윈도우키 + Alt로 좌클릭, 윈도우키 + space바로 우클릭을 합니다. 



이게 다 입니다...

별 거 없죠...?? ㅎㅎㅎㅎㅎ

저는 이렇게 편하게 쓰고 있습니다. ^^



즐거운 키보드 생활 되시길 바랍니다. ^^