-
AutoHotkey로 방향키 대신 wasd 또는 ijkl를 방향키로 쓰기 - AutoHotkey 다운 부터 키맵 설정, 시작 프로그램 등록하기기타 2021. 9. 5. 18:55반응형
(최종 코드는 가장 아래에 있습니다.)
코딩을 하다보면 방향키를 사용할 때가 많다.
하지만 방향키는 상대적으로 오른쪽에 위치해서 손목을 계속 꺾어야 하는 불편함이 있다.
평소에는 괜찮았는데 요즘 손목이 아프기 시작해서 방법을 강구하다가
오토핫키를 써서 리눅스의 단축키처럼 키보드에서 손을 덜 움직이고 편하게 코딩할 수 있도록 설정하는 방법을 찾게 되었다.
http://www.kbdmania.net/xe/tipandtech/7063618
가장 많이 참고한 블로그이다.
여러가지 블로그에서 좋은점을 가져오고 오토핫키 다운 부터 사용하기에 최적화 한 후 주의사항도 알아보도록 한다.
1. 오토핫키 다운
먼저 해당 사이트에 들어가서 오토핫키를 다운 받는다.
Download -> Download Current Version 을 눌러 다운 받아 실행하면
가 생기고 실행하보면 도움말이랑 가이드라인만 있고 실제 코딩 영역은 없다.
프로그램을 만드는 방법은 해당 프로그램을 실행시키는 것이 아니다.
실제 방법은 먼저 메모장 파일을 하나 만들어서
SetCapsLockState, AlwaysOff #If GetKeyState("Capslock","P") i::Up j::Left k::Down l::Right u::BackSpace o::Del ]::Send, {>} 1::Send, {(} 2::Send, {)} 3::Send, {{} 4::Send, {}} 5::Send, {[} 6::Send, {]} 7::PgUp 8::PgDn w::PgUp a::^+Left s::PgDn d::^+Right e:: Send, {=} q::BackSpace t::_ r::= z::Home x::End c::^c v::^v h::^Left `;::^Right =::Send, {=}{>} n::Home m::End f::CapsLock ,::Send, {<}{-} .::Send, {-}{>} #If ^F10::Send CtrlUp
해당 코드를 복사 붙혀넣기를 하고
확장자를 .txt 에서 .ahk로 바꿔주면 오토핫키 스크립트 파일을 만들어 줄 수 있다.
2. CapsLock으로 사용법 및 원하는 대로 설정 변경하기
[사용법]
- 모든 커맨드는 caps lock 버튼을 누른 상태에서 다른 버튼을 누르면 실행된다.
- ijkl를 누르면 방향키 없이 방향키 조작이 가능하다.
- j 와 l 옆에 h와 ; 는 각각 ctrl + left, ctrl + right로 설정하여 문장 사이를 빠르게 넘어갈 수 있게 하였다.
그냥 ctrl + caps lock + j or l 또한 가능하지만 누르기 불편해서 따로 지정해 주었다.
- n과 m은 home 키와 end키로 지정하였다. 문장의 처음 과 끝으로 이동할 수 있다.
- u와 o는 backspace 와 delete 로 지정하였다. 방향키 만큼 쓰지는 않게 되는 것 같다.
[설정 변경하기]
먼저 오토 핫키는 특수키를 특정 문자와 매칭되어 있다.
1. 위의 해당 코드를 보면 알겠지만 기존 단축키 명령어는
x::^c 이런식으로 사이에 :: 를 사용한다.
2. 커맨드를 통해 실제 문자를 출력하고 싶다면
x::send,{>} 형식으로 작성하면 출력할 수 있다.
3. 기존 오토핫키에서 문법으로 사용하고 있는 ; 같은 문자를 단축키로 사용하고 싶다면
`; 로 ; 옆에 `를 붙여서 사용한다.
4. 한영키는 오토핫키로 커맨드 조작이 불가능하다고 한다.
3. 오토핫키 스크립트를 컴퓨터 시작 시에 실행시키기
오토핫키 스크립트를 작성하고 실행하면 정상적으로 작동하지만
컴퓨터를 키고나서 자동으로 프로그램이 실행하였으면 했다.
방법은 win + r 을 눌러서
shell:startup을 작성하고 확인을 누른다.
그러면 이렇게 시작 프로그램 파일이 있는데 여기에 해당 스크립트 파일 바로가기를 생성해 넣어주면
이제 컴퓨터가 시작되었을 대 스크립트 파일이 자동으로 실행된다.
4. 주의점
만약에 게임을 하게 되면 오토핫키가 문제가 될 수 있다.
롤 같은 경우 오토핫키를 사용시에 자동으로 제제를 가하는 듯 하다.
오토핫키 스크립트가 실행되는 중에 롤을 플레이하게 되면 갑자기 게임이 다운되는 경우가 있는데
이때 컴퓨터를 다시 껐다 켜도 해당 판은 재접속이 불가능하다.
게임 플레이 전에는 해당 파일을 잠시 종료시키길 추천한다.
(*롤 클라이언트를 감지해 롤 실행시 오토핫키 종료하는 코드 추가)
[스크립트 수정]
- 롤 프로세스를 탐지해서 롤 클아이언트 실행시 스크립트 자동 종료하는 코드 추가
- Sleep, 1000 추가로 리소스 덜 쓰게 변경
[크롬 탭 이동]
- a, d로 스크린 탭 이동 기능 추가
- w, s로 스크롤 하기 - 마우스 스크롤 두번 정도( pg up down이 화면을 너무 많이 넘겨 설정 했다.)
[윈도우 가상 데스크톱]
- r로 가상 데스크톱 생성, t 로 가상 데스크톱 삭제 추가
- q e로 가상 데스크톱 좌우 이동 추가
SetCapsLockState, AlwaysOff Loop{ IfWinExist, ahk_exe LeagueClientUx.exe { ExitApp } Sleep, 1000 } #If GetKeyState("Capslock","P") i::Up j::Left k::Down l::Right u::BackSpace o::Del ]::Send, {>} 1::Send, {(} 2::Send, {)} 3::Send, {{} 4::Send, {}} 5::Send, {[} 6::Send, {]} 7::PgUp 8::PgDn w::Send, {Up}{Up}{Up}{Up}{Up}{Up} a::Send, ^+{tab} s::Send, {Down}{Down}{Down}{Down}{Down}{Down} d::Send, ^{tab} f::Send, ^w r::Send, #^d e::Send, #^{Right} q::Send, #^{Left} t::Send, ^#{F4} z::Send, {F11} x::Send, {F10} c::Send, +{F11} v::^v h::^Left `;::^Right =::Send, {=}{>} n::Send, !{tab} m::Home g::CapsLock ,::End .::Send, {-}{>} #If ^F10::Send CtrlUp
300x250'기타' 카테고리의 다른 글
JSONObject와 JSONArray 차이 (0) 2022.03.12 HTTP, AJAX, 폴링, 롱폴링 기법, 웹소켓 (0) 2022.01.24 DLL이란? (0) 2022.01.24 세션, 토큰, 쿠키 (0) 2021.12.16 동기와 비동기 (0) 2021.12.16