키보드로 쉽게 프로그램 호출하기 – xbindkeys, ratmenu

마우스로 클릭하는 것은 오래 사용했어도 불편하다. 오래 사용하면 손목이 아프기도 하고 마우스 포인터를 정확한 위치에 조준하는 것도 약간 힘들어진다. 그래서 키보드를 더 사용하려고 한다. 우분투에서 아래 도구들이 도움되었다. 키보드를 사용해서 프로그램을 호출할 수 있다. 더 이상 프로그램 아이콘을 클릭하지 않아도 된다.

xbindkeys

Windows에서는 AutoHotkey를 사용했었는데 우분투로 환경을 바꾸면서 비슷한 기능의 xbindkeys를 사용하고 있다. xbindkeys 설정 파일(~/.xbindkeysrc)에 호출할 프로그램과 단축키를 적어 두면 단번에 프로그램을 열 수 있다. Alt-Ctrl-Shift-j와 같이 다양한 단축키 조합이 가능한 것이 장점이다. 단축키를 찾을 때는 아래 명령을 사용하면 된다.

$ xbindkeys -k

ratmenu

xbindkeys를 사용할 때 호출할 프로그램이 많아지면 외워야 하는 단축키도 많아진다. 이럴 땐 프로그램 호출 메뉴를 만들어주는 ratmenu를 사용한다. 커서 키 혹은 [j], [k]키를 이용하여 프로그램을 선택할 수 있다. 비슷한 프로그램들을 따로 모아서 메뉴를 구성할 수도 있다. 아래는 세 가지 터미널 프로그램을 호출하는 예다. 아래 코드를 bash파일로 저장한 다음에

#!/usr/bin/env bash
ratmenu -label term -back xmenu -style dreary -bg RosyBrown -fg Black -align left -font '10x20' \
"  terminology    " "terminology" \
"  terminator     " "terminator" \
"  gnome-terminal " "gnome-terminal"

이 스크립트를 실행하면 아래와 같은 팝업이 나타나서 프로그램을 선택할 수 있다. 이 스크립트를 위에서 설명한 xbindkeys로 호출하면 더욱 간편하게 사용할 수 있다.

xmenu_animation

-back 옵션은 상위 메뉴를 나타낼 때 사용할 수 있다. 위의 예에서 -back 옵션인 ‘menu’는 또 하나의 ratmenu 명령을 수행할 bash 파일이다. 반대로 수행할 명령어에도 bash 파일을 지정할 수 있는데 이런 방식으로 3 depth 정도의 메뉴를 구성해서 사용하고 있다. 라벨에 단축키를 사용하고 싶다면 수정된 버전을 사용하기 바란다. 라벨문자 앞에 ^ (caret) 마크를 붙여서 사용할 수 있는데 아래와 같이 제한된 키만 가능하다. 당신의 수정을 기다리고 있다.

^ (caret)으로 지정할 수 있는 문자 모음

acdehkloqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

수정된 버전은 아래 방법으로 컴파일하여 설치할 수 있다.

git clone https://github.com/afrontend/ratmenu.git
cd ratmenu
make
sudo make install

수정된 버전을 사용하면 위에서 설명한 스크립트를 아래처럼 변경하여 사용할 수 있다.

#!/usr/bin/env bash
ratmenu -label term -back xmenu -style dreary -bg RosyBrown -fg Black -align left -font '10x20' \
"  ^terminology    " "terminology" \
"  terminat^or     " "terminator" \
"  gnome-termin^al " "gnome-terminal"

프로그램 이름에 ^이 추가된 것을 확인하자. 여기선 ^ 뒤에 문자인 [t], [o], [a] 키를 단축키로 활용할 수 있다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

This site uses Akismet to reduce spam. Learn how your comment data is processed.