티스토리 뷰
728x90
Capslock을 오래(0.1초 이상) 누르고 있으면 Ctrl로 동작하고
0.1초 이내로 짧게 누르는 경우 0.1초 이내에 Capslock 요청이 한 번 더 온다면 Esc로 동작,
짧게 눌렀고 요청이 한 번 더 오지 않는다면 한영전환(vk15)로 동작하게 된다.
Ctrl을 누르는 경우 Modifier key로 동작하게 하기 위함(다른 키가 더 입력되기를 기다리는)이 대부분이기 때문에 오래 누르고 있는 경우 {Control Down}으로 인식하고 로직이 끝난 후에 {Control Up}을 진행한다.
$Capslock::
KeyWait, Capslock, T0.1
if (ErrorLevel)
;long press
Send, {Ctrl Down}
else {
KeyWait, Capslock, D T0.1
;single press
if (ErrorLevel)
Send, {vk15}
;double press
else
Send, {esc}
}
KeyWait, Capslock
Send, {Ctrl Up}
return
(2023-01-09) 추가 : 위의 기능을 좀 더 보강하여 Capslock을 한번 클릭시 영어, 두번 클릭시 한글로 변경되게 수정해보았다.
$Capslock::
KeyWait, Capslock, T0.1
if (ErrorLevel)
;long press
Send, {Ctrl Down}
else {
KeyWait, Capslock, D T0.1
;single press
;Capslock 한번 클릭시 무조건 영어.
if (ErrorLevel) {
ime_status := % IME_CHECK("A")
;한글이라면 영어로 전환
if(ime_status = "1") {
Send, {VK15}
} else {}
}
;double press
;Capslock 2번 클릭시 무조건 한글.
else {
ime_status := % IME_CHECK("A")
;영어라면 한글로 전환
if(ime_status = "0") {
Send, {VK15}
} else {}
}
}
KeyWait, Capslock
Send, {Ctrl Up}
return
/*
IME check
*/
IME_CHECK(WinTitle) {
WinGet,hWnd,ID,%WinTitle%
Return Send_ImeControl(ImmGetDefaultIMEWnd(hWnd),0x005,"")
}
Send_ImeControl(DefaultIMEWnd, wParam, lParam) {
DetectSave := A_DetectHiddenWindows
DetectHiddenWindows,ON
SendMessage 0x283, wParam,lParam,,ahk_id %DefaultIMEWnd%
if (DetectSave <> A_DetectHiddenWindows)
DetectHiddenWindows,%DetectSave%
return ErrorLevel
}
ImmGetDefaultIMEWnd(hWnd) {
return DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint)
}
레퍼런스
https://gist.github.com/volks73/1e889e01ad0a736159a5d56268a300a8
https://www.autohotkey.com/boards/viewtopic.php?t=10067
'etc' 카테고리의 다른 글
Intellij 기본적인 세팅 정리 (0) | 2022.11.12 |
---|
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 도커
- 루나빔
- neovim
- RequestParam
- lunarvim
- JavaScript
- ModelAttribute
- vim
- RequestPart
- 레디스
- IDE
- 배포
- Dap
- 아키텍처
- RequestBody
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함