Windows에서 Caps Lock을 수정 키로 사용하는 방법

키보드에서 Caps Lock 키는 넓은 영역을 차지하지만, 자주 사용되지 않는 경우가 많습니다. 이 점을 활용하여 AutoHotkey 스크립트를 사용하면 Caps Lock 키를 단축키를 위한 보조키로 변환하여 사용자 정의 단축키를 훨씬 편리하게 사용할 수 있습니다.

기본 활용법

이 스크립트를 적용하면 Caps Lock 키와 다른 키를 조합하여 여러 작업을 빠르게 수행할 수 있습니다. 예를 들어, Caps Lock + G 키를 누르면 선택한 텍스트를 구글에서 검색하고, Caps Lock + D 키를 누르면 해당 단어의 사전적 의미를 바로 확인할 수 있습니다. 물론 이러한 단축키는 사용자의 필요에 따라 얼마든지 변경 가능합니다.

더욱 편리한 점은 이 스크립트를 사용하더라도 Caps Lock 키의 원래 기능을 완전히 잃지 않는다는 것입니다. Caps Lock 키를 빠르게 두 번 누르면 기존처럼 Caps Lock 기능이 작동합니다. 따라서 Caps Lock 키를 단축키 보조키로 활용하면서도 필요에 따라 대문자 고정 기능도 사용할 수 있습니다.

AutoHotkey 소개

AutoHotkey는 Windows 운영체제에서 백그라운드로 실행되는 무료 애플리케이션입니다. 사용자는 직접 스크립트를 작성하거나 온라인에서 공유되는 스크립트를 다운로드하여 사용할 수 있습니다. 이러한 스크립트는 특정 키 입력에 따라 다양한 작업을 수행하도록 명령할 수 있습니다. AutoHotkey는 키보드 키를 재정의하거나 새로운 기능을 추가하는 데 매우 유용한 도구입니다.

예를 들어, AutoHotkey를 사용하면 윈도우 키를 비활성화하여 게임 중 실수로 시작 메뉴가 나타나는 것을 방지할 수 있습니다. 키보드의 물리적인 변경 없이 소프트웨어적으로 키의 기능을 변경할 수 있다는 장점이 있습니다.

AutoHotkey 설치 및 스크립트 적용 방법

먼저 AutoHotkey 공식 웹사이트에서 프로그램을 다운로드하여 설치하십시오. 그다음, Caps Lock 키를 보조키로 변경해 주는 스크립트를 다운로드합니다.

다운로드한 ZIP 파일 압축을 해제하여 AHK 스크립트 파일을 컴퓨터의 원하는 폴더에 저장합니다. 스크립트를 실행하려면 해당 파일을 마우스 오른쪽 버튼으로 클릭하고 “스크립트 실행”을 선택하면 됩니다.

스크립트가 백그라운드에서 실행되면 Caps Lock 키를 빠르게 두 번 눌러 켜고 끌 수 있습니다. 두 번 누르지 않고 다른 키와 함께 누르면 단축키 보조키로 작동합니다. 스크립트에 기본적으로 포함된 기능은 다음과 같습니다.

  • Caps Lock + D: 선택한 단어의 사전적 정의 검색
  • Caps Lock + G: 선택한 텍스트를 구글에서 검색
  • Caps Lock + T: 선택한 단어의 동의어 검색
  • Caps Lock + W: 선택한 텍스트를 위키백과에서 검색

더 많은 단축키를 추가하고 싶으신가요? AutoHotkey 스크립트 작성법을 조금만 익히면 자신만의 맞춤형 단축키를 만들 수 있습니다.

AutoHotkey 설정을 변경하려면 시스템 트레이에서 AutoHotkey 아이콘(녹색 배경에 흰색 H)을 찾으세요. 아이콘을 마우스 오른쪽 버튼으로 클릭하고 “종료”를 선택하면 스크립트 실행을 중단할 수 있습니다.

스크립트 작동 원리

스크립트가 어떤 기능을 하는지 자세히 알아보려면 해당 파일을 마우스 오른쪽 버튼으로 클릭한 후 “스크립트 편집”을 선택하세요. 텍스트 편집기에서 스크립트 코드를 확인할 수 있습니다. 코드는 비교적 짧고 이해하기 쉬우므로 안전성을 확보하는 데 도움이 됩니다. 모르는 스크립트는 반드시 코드를 먼저 확인하고 이해한 후에 실행하는 것이 좋습니다.

이 스크립트는 Dave Kellog라는 사용자가 공유해 주셨습니다. Caps Lock 키를 두 번 눌렀을 때 Caps Lock 기능을 유지하는 주요 코드는 다음과 같습니다.

CapsLock::
KeyWait, CapsLock ; Caps Lock 키가 해제될 때까지 대기.
KeyWait, CapsLock, D T0.2 ; 0.2초 내에 Caps Lock 키가 다시 눌리지 않으면 ErrorLevel = 1.
if ((ErrorLevel = 0) && (A_PriorKey = "CapsLock") ) ; Caps Lock 키가 연속 두 번 눌렸는가?
{
SetCapsLockState, % GetKeyState("CapsLock","T") ? "Off" : "On" ; Caps Lock 상태를 반전.
}
return

위 코드는 Caps Lock 키가 두 번 연속으로 눌렸는지 확인하고, Caps Lock 기능을 켜거나 끕니다. 두 번 연속으로 누르지 않았을 경우, Caps Lock 키는 다른 키와 함께 눌려 단축키 기능을 수행합니다.

스크립트의 나머지 부분은 단축키 작동 코드와 클립보드 내용을 저장하고 복원하는 기능을 포함합니다. 이 기능은 단축키가 클립보드에 있는 텍스트를 사용하여 작업을 수행하기 때문에 매우 중요합니다.

전체 스크립트 내용을 확인하고 싶으신가요? 코드는 아래와 같습니다.

#NoEnv                      ; 성능 및 호환성을 위해 권장.
; #Warn                     ; 일반적인 오류 감지 지원을 위해 경고 활성화.
#SingleInstance FORCE       ; 스크립트의 이전 실행 인스턴스를 자동으로 대체.
SendMode Input              ; 더 나은 속도와 안정성을 위해 권장.
SetWorkingDir %A_ScriptDir%  ; 스크립트 시작 디렉토리 설정.


;================================================================================================
; CapsLock 처리. CapsLock 모드 전환하려면 두 번 탭해야 함.
;================================================================================================
; CapsLock 모드 전환하려면 두 번 탭해야 함.
CapsLock::
    KeyWait, CapsLock                                                   ; CapsLock 키가 해제될 때까지 대기.
    KeyWait, CapsLock, D T0.2                                           ; 0.2초 내에 CapsLock 키가 다시 눌리지 않으면 ErrorLevel = 1.
    if ((ErrorLevel = 0) && (A_PriorKey = "CapsLock") )                 ; CapsLock 키가 연속 두 번 눌렸는가?
        {
        SetCapsLockState, % GetKeyState("CapsLock","T") ? "Off" : "On"  ; CapsLock LED 상태 토글
        }
return



;================================================================================================
; CapsLock 보조키를 사용하는 단축키. https://autohotkey.com/docs/Hotkeys.htm#combo 참고
;================================================================================================
; 선택한 단어의 정의 검색
CapsLock & d::
    ClipboardGet()
    Run, http://www.google.com/search?q=define+%clipboard%     ; 클립보드 내용을 사용하여 검색
    ClipboardRestore()
Return

; 선택한 텍스트를 구글에서 검색
CapsLock & g::
    ClipboardGet()
    Run, http://www.google.com/search?q=%clipboard%             ; 클립보드 내용을 사용하여 검색
    ClipboardRestore()
Return

; 선택한 단어의 유의어 검색
CapsLock & t::
    ClipboardGet()
    Run http://www.thesaurus.com/browse/%Clipboard%             ; 클립보드 내용을 사용하여 검색
    ClipboardRestore()
Return

; 선택한 텍스트를 위키백과에서 검색
CapsLock & w::
    ClipboardGet()
    Run, https://en.wikipedia.org/wiki/%clipboard%              ; 클립보드 내용을 사용하여 검색
    ClipboardRestore()
Return

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

;================================================================================================
; 클립보드 도우미 함수.
;================================================================================================
ClipboardGet()
{
    OldClipboard:= ClipboardAll                         ;기존 클립보드 내용 저장.
    Clipboard:= ""
    Send, ^c                                            ;선택한 텍스트를 클립보드에 복사.
    ClipWait 0
    If ErrorLevel
        {
        MsgBox, 선택된 텍스트가 없습니다!
        Return
        }
}


ClipboardRestore()
{
    Clipboard:= OldClipboard
}

기존에도 Caps Lock 키를 보조키로 사용하는 AutoHotkey 스크립트는 있었지만, Caps Lock 키를 두 번 눌렀을 때 토글 기능도 유지하는 스크립트는 흔치 않았습니다. 매우 유용한 기능이라고 생각합니다. 이 스크립트를 공유해 주신 Dave Kellog님께 다시 한번 감사의 말씀을 전합니다.