AutoKey 설치 및 macro 만들기

AutoKey는 파이썬 스크립트를 실행해주는 프로그램(macro)입니다. 스크립트마다 Hot key를 지정할 수 있어서 특정 키를 눌렀을 때 특정 스크립트가 동작하도록 만들 수 있습니다.

AutoKey는 사용자의 동작을 기록하여 스크립트로 만들어주는 기능은 없습니다. AutoKey에서 제공하는 API를 이용하여 Python 스크립트를 직접 만들어야 합니다.

Python 코드 작성이 서툴다면 이 프로그램을 사용하는데 어려움이 있을 수 있습니다.

이 글의 내용은 Ubuntu 18.04에서 확인한 내용입니다.

설치

apt를 이용하여 AutoKey-gtk를 설치해야 합니다.

먼저 다음과 같이 repository를 설정하고 update를 합니다.

$ sudo add-apt-repository ppa:sporkwitch/autokey
$ sudo apt update

그리고 apt로 autokey-gtk를 설치합니다.

$ sudo apt install autokey-gtk

Ubuntu의 프로그램에서 AutoKey를 검색하면 실행 아이콘이 보입니다.

Script 등록

AutoKey를 실행하면 다음과 같은 화면이 보입니다. 왼쪽 폴더는 스크립트를 관리하는 디렉토리입니다.

Sample Script 폴더를 클릭하고 New 버튼을 눌러 스크립트 파일을 생성합니다. autokey

오른쪽 에디터에 다음과 같은 내용을 입력합니다.

keyboard.send_keys("<div> </div>")

keyboard.send_keys()는 인자로 전달된 key를 입력하는 API입니다. 위 스크립트가 실행되면, 키보드로 입력된 것처럼 다음과 같은 텍스트가 입력됩니다.

<div> </div>

HotKey는 단축키로, 아래 그림처럼 Set 버튼을 눌러 설정할 수 있습니다. 저는 Ctrl + 1로 설정했습니다. autokey

저장을 하시고 에디터에서 자신이 설정한 HotKey를 누르면 스크립트가 실행됩니다.

Clipboard 예제

Clipboard와 관련된 처리도 할 수 있습니다.

다음 스크립트는 현재 선택된 text를 삭제하고 다른 text와 함께 출력하는 예제입니다.

text = clipboard.get_selection()
keyboard.send_key("<delete>")
keyboard.send_keys("The text %s was here previously" % text)

aaa를 선택하고 스크립트를 실행한 결과

The text aaa was here previously

Persistent Value 예제

Persistent value는 삭제되지 않는, 전역변수와 같습니다.

다음 스크립트는 Persistent를 사용하는 예제입니다.

if not store.has_key("runs"):
    # Create the value on the first run of the script
    store.set_value("runs", 1)
else:
    # Otherwise, get the current value and increment it
    cur = store.get_value("runs")
    store.set_value("runs", cur + 1)
    keyboard.send_keys("I've been run %d times!\n" % store.get_value("runs"))

HotKey를 여러번 누르면 다음과 같이 출력됩니다.

I've been run 1 times!
I've been run 2 times!
I've been run 3 times!
I've been run 4 times!

Window 위치 이동 예제

다음 스크립트는 윈도우를 왼쪽으로 이동시키는 예제입니다.

# move active window left
thisWin = window.get_active_title()
windetails = window.get_active_geometry() # returns tuple of: x, y, width, height
newX = windetails[0] - 40
window.resize_move(thisWin, xOrigin=newX, yOrigin=-1, width=-1, height=-1, matchClass=False)

더 많은 예제들

autokey - scripting을 보시면 더 많은 예제들이 많이 있습니다. 이 예제들을 응용하면 필요한 것은 거의 구현할 수 있을 것 같습니다.

참고

Loading script...

Related Posts

codechachaCopyright ©2019 codechacha