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
버튼을 눌러 스크립트 파일을 생성합니다.
오른쪽 에디터에 다음과 같은 내용을 입력합니다.
keyboard.send_keys("<div> </div>")
keyboard.send_keys()
는 인자로 전달된 key를 입력하는 API입니다.
위 스크립트가 실행되면, 키보드로 입력된 것처럼 다음과 같은 텍스트가 입력됩니다.
<div> </div>
HotKey는 단축키로, 아래 그림처럼 Set
버튼을 눌러 설정할 수 있습니다. 저는 Ctrl + 1
로 설정했습니다.
저장을 하시고 에디터에서 자신이 설정한 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을 보시면 더 많은 예제들이 많이 있습니다. 이 예제들을 응용하면 필요한 것은 거의 구현할 수 있을 것 같습니다.
참고
Recommended Posts:
- Ubuntu 20.04 - SSH 설치와 접속 방법
- Ubuntu에서 imwheel로 마우스 휠 스크롤 속도 변경
- Ubuntu에서 사용할 수 있는 Text Editor 소개
- Ubuntu 20.04 - OpenJDK 11 설치, 삭제
- Ubuntu 20.04 - VLC Player 설치
- Linux의 apt-get 명령어
- apt remove, purge, autoremove 명령어 차이점
- Ubuntu 20.04 - 토렌트 설치
- Ubuntu에서 사용할 수 있는 그림판(mspaint)과 비슷한 툴 소개
- Linux - Hardware 정보를 보여주는 명령어
- Ubuntu에 OpenJdk 9 설치하는 방법
- Linux - Bash 쉘스크립트 파일의 절대경로 얻기
- Ubuntu18.04의 네트워크 이더넷 이름 변경하는 방법(enp??를 eth0으로 변경)