Mousetroke GitHub
한국어 ▾
가이드 목차

키 보내기 문법#

단축키로 시작하기#

키 보내기에서 ^c를 붙여 넣으면 Windows에서 Ctrl+C를, #c를 붙여 넣으면 Mac에서 Command+C를 보냅니다. 기록을 클릭하고 조합을 누른 뒤 완료를 클릭할 수도 있습니다. Lua도 ms.keys(sequence)를 통해 같은 문법을 사용합니다.

문자는 보통 US 키보드 위치의 키를 의미합니다. abc는 A, B, C를 순서대로 누르고, 대문자 ABC는 Shift를 추가하지 않습니다. Shift+A에는 +a를 사용하세요. 유니코드나 고정 텍스트는 텍스트와 이스케이프와 클립보드 레시피를 참조하세요.

수식 키와 그룹#

접두사WindowsMac
^CtrlControl ⌃
%AltOption ⌥
+ShiftShift ⇧
#WinCommand ⌘

접두사는 다음 키나 괄호로 묶은 그룹에 적용됩니다. ^+t는 Ctrl+Shift+T를 보냅니다. ^(ac)는 A와 C 둘 다에 Ctrl을 적용합니다. ^ac는 A에만 Ctrl을 적용합니다. 그룹은 중첩할 수 있으며, 균형 잡힌 괄호를 사용하세요. 그룹 수식 키는 각 키 동작에 붙으므로, 키 사이에서 수식 키가 계속 눌려 있다고 가정하지 마세요. 끝에 놓인 수식 키 하나만으로는 키 입력이 아닙니다. 수식 키 자체가 필요하면 예를 들어 {CTRL}을 사용하세요.

Lua ms.is_keys_pressed는 두 플랫폼에서 조회 시점의 모든 키와 수식 키의 합집합을 검사합니다. ^ac는 Control, A, C가 함께 눌려 있어야 합니다. 어느 쪽이든 접두사를 만족하며, 명시적 {LCTRL} / {RCTRL} 이름은 해당 쪽을 유지합니다. 반복은 무시되고, 대기·텍스트·마우스·휠 단계는 false를 반환합니다. 과거에 눌린 순서는 인식하지 않습니다.

이름 있는 키, 반복과 지연#

Enter에는 {ENTER}를 사용하세요. 이름은 대소문자를 구분하지 않습니다. {LEFT 3}은 Left를 세 번 누릅니다. 양의 횟수는 키를 반복하고, 0이나 음수는 한 번으로 처리됩니다. {SLEEP 100}은 100 ms를 기다리며, 음수가 아닌 정수가 필요합니다. 이름과 인수는 공백으로 구분하세요.

예: ^c{SLEEP 100}^v는 Windows에서 복사하고 잠시 기다린 다음 붙여넣습니다. Mac에 해당하는 것은 #c{SLEEP 100}#v입니다.

아래 표는 별칭과 번호 붙은 F/숫자 키패드 이름을 포함해 파서가 받아들이는 이름을 모두 나열합니다. ASCII 문자, 숫자 또는 지원되는 US 구두점 문자 하나도 {a}나 {+}처럼 중괄호 안에 올 수 있습니다.

이름의미
{ENTER}, {RETURN}Enter
{ESC}Escape
{TAB}Tab
{BACKSPACE}Backspace
{SPACE}Space
{CAPSLOCK}Caps Lock
{INSERT}, {INS}Insert(Windows 전용)
{DELETE}, {DEL}Delete / forward delete
{HOME}, {END}Home / End
{PGUP}, {PGDN}Page Up / Page Down
{UP}, {DOWN}, {LEFT}, {RIGHT}방향키
{PRTSC}Print Screen(Windows 전용)
{BREAK}Break(Windows 전용)
{MEDIA_NEXT}, {MEDIA_PREV}, {MEDIA_STOP}, {MEDIA_PLAY}, {MEDIA_PLAY_PAUSE}미디어 키(키 시퀀스에서는 Windows 전용)
{VOLUME_MUTE}, {VOLUME_DOWN}, {VOLUME_UP}볼륨 키(키 시퀀스에서는 Windows 전용)
{CTRL}, {ALT}, {SHIFT}Control / Alt(Mac Option) / Shift
{LCTRL}, {RCTRL}, {LSHIFT}, {RSHIFT}, {LALT}, {RALT}왼쪽/오른쪽 수식 키. Alt는 Mac에서 Option
{LWIN}, {WIN}, {RWIN}Windows 키. Mac에서는 Command
{F1}, {F2}, {F3}, {F4}, {F5}, {F6}, {F7}, {F8}, {F9}, {F10}, {F11}, {F12}, {F13}, {F14}, {F15}, {F16}, {F17}, {F18}, {F19}, {F20}, {F21}, {F22}, {F23}, {F24}기능 키. Mac은 F1–F20 지원
{N0}, {N1}, {N2}, {N3}, {N4}, {N5}, {N6}, {N7}, {N8}, {N9}숫자 키패드 0–9
{MOUSE_LEFT}, {MOUSE_RIGHT}, {MOUSE_MIDDLE}, {MOUSE_X1}, {MOUSE_X2}마우스 클릭(Windows 전용)
{MOUSE_WHEEL}, {MOUSE_HWHEEL}휠: 예 {MOUSE_WHEEL 120}, {MOUSE_HWHEEL -120}(Windows 전용)
{SLEEP}지연: 예 {SLEEP 100}, 밀리초

마우스 버튼과 휠#

Windows는 {MOUSE_LEFT}, {MOUSE_RIGHT}, {MOUSE_MIDDLE}, {MOUSE_X1}, {MOUSE_X2}를 클릭으로 지원합니다. {MOUSE_LEFT 2}는 두 번 클릭을 보내며, 포인터를 옮기지는 않습니다.

{MOUSE_WHEEL 120}은 한 노치 위로 스크롤하고, -120은 아래로 스크롤합니다. {MOUSE_HWHEEL 120}은 오른쪽으로, -120은 왼쪽으로 스크롤합니다. 인수는 반복 횟수가 아니라 부호 있는 휠 델타입니다. 이것은 주입 입력의 관례이며, 기록된 제스처 휠 단계의 부호와 다릅니다.

Mac은 이 토큰을 파싱하지만 입력 실행 중 마우스와 휠 동작은 건너뜁니다. ms.keys로 Mac 클릭이나 스크롤을 합성하는 데 사용할 수 없습니다.

텍스트와 이스케이프#

텍스트 우선 모드는 Lua ms.keys(s, true)로만 사용할 수 있으며, 키 보내기 편집기는 항상 키 모드를 사용합니다. 일반 문자는 유니코드 텍스트가 되지만, ^, %, +, #, 괄호와 여는 중괄호는 여전히 문법을 시작합니다. 중괄호로 묶은 문자 하나는 텍스트 우선 모드에서도 키 동작으로 남습니다.

텍스트 우선 모드 안에서 단축키를 쓰려면 키를 중괄호로 묶으세요. ^{c}는 Ctrl+C를, #{c}는 Command+C를 보냅니다. 이 모드에서 중괄호 없는 ^c는 텍스트 c를 내보내고 수식 키는 버립니다. 일반 키 모드로 별도의 ms.keys("^c") 호출을 만들 수도 있습니다.

문자 그대로시퀀스 표기
^{^}
%{%}
+{+}
#{#}
({(}
){)}
{{{}
}}(중괄호 없이)

백슬래시는 키 시퀀스의 이스케이프가 아닙니다. 따옴표로 묶은 Lua 문자열에서는 백슬래시 하나를 "\\"로 쓰거나 긴 괄호 문자열을 사용하세요. 문법 기호가 포함된 임의 텍스트에는 클립보드 방식이 두 겹의 이스케이프를 모두 피합니다.

자주 쓰는 단축키#

대상 애플리케이션과 운영 체제의 단축키 설정에 따라 달라집니다.

목적Windows 시퀀스Mac 시퀀스
복사^c#c
붙여넣기^v#v
잘라내기^x#x
모두 선택^a#a
실행 취소^z#z
새 탭^t#t
탭 닫기^w#w
닫은 탭 다시 열기^+t#+t
다음 탭^{TAB}^{TAB}
이전 탭^+{TAB}^+{TAB}
앱 전환%{TAB}#{TAB}
이전/다음 데스크톱#^{LEFT} / #^{RIGHT}^{LEFT} / ^{RIGHT}
화면 영역 캡처#+s#+4
바탕 화면 표시#d{F11}
작업 관리자 / Activity Monitor^+{ESC}앱 열기 사용: com.apple.ActivityMonitor
화면 잠금#l^#q

Ctrl+Alt+Del을 보낼 수 없는 이유#

Ctrl+Alt+Del은 Windows의 보안 주의 시퀀스(Secure Attention Sequence)입니다. Windows는 이 시퀀스에 대해 일반적인 합성 입력을 무시하므로 ^%{DEL}로 그 보안 화면을 열 수 없습니다. 작업 관리자에는 ^+{ESC}를, 잠금에는 #l을 사용하거나, 로그아웃(세션 종료)하려면 shutdown /l을 담은 명령 실행 동작을 사용하세요.

제한과 플랫폼 참고 사항#

공유 파서에는 전체 문자열 길이나 반복 횟수 상한이 없습니다. 반복 횟수와 지연은 부호 없는 32비트 값으로, 휠 델타는 부호 있는 32비트 값으로 저장됩니다. 범위를 벗어난 값은 변환 시 순환할 수 있으므로 작고 실용적인 횟수와 지연을 사용하세요. 잘못된 키 이름이나 필수 인수 누락은 파싱 오류를 내며, 편집기는 입력하는 동안 검증합니다.

Windows는 워커 스레드에서 시퀀스를 실행하고 {SLEEP ms} 동안 잠듭니다. Mac은 타이머 기반 배치로 입력을 보냅니다. Mac에서 16,384바이트보다 긴 동작 문자열은 거부되며, 이미 파싱된 Lua 입력의 한도는 동작 16,384개와 텍스트 동작당 16,384바이트입니다. 대기 큐는 최대 64개 항목을 담고, 초과 입력은 버려지고 기록됩니다.

Mac에서는 F1–F20, 숫자 키패드와 매핑된 탐색 키를 사용할 수 있습니다. Insert/INS, PRTSC, BREAK, F21–F24, 미디어/볼륨 토큰, 마우스/휠 토큰은 지원되지 않으며 건너뜁니다. 미디어와 볼륨에는 미디어와 시스템을 사용하세요. ms.keys_down과 ms.keys_up은 Windows 전용입니다. Lua API를 참조하세요.

일상 제스처 하나부터 시작하기

Mousetroke를 무료로 다운로드하고 첫 제스처를 설정하세요. Windows와 Mac 베타에서 사용할 수 있습니다.