X 윈도우‎ > ‎

xbindkeys

http://www.nongnu.org/xbindkeys/xbindkeys.html

키보드는 물론 마우스까지 조합해서 쓸 수 있게 해주는 환경으로, 외부 명령으로 할 수 있는 건 죄다 된다.
예를 들어 wmctl을 사용하면 굳이 창 관리자 자체의 단축키 없이도 창 관리자의 EWMH 프로토콜을 통해 어떤 창을 닫거나 키우거나 숨기거나 다른 작업공간으로 옮길 수 있다.
혹은 dbus-send 명령을 쓰면 dbus를 지원하는 프로그램도 제어할 수 있다.

설정을 할 때는 --defaults 옵션을 통해 기본 설정을 출력한 뒤 그걸 저장해서 고쳐 쓰면 된다.
맨 왼쪽에 있는 이름은 조합키(modifier)로 xmodmap을 실행하면 나온다. 가령 alt-x는 mod1+x로 쓰면 된다.
다음은 내가 썼던 ~/.xbindkeysrc 내용이다.

# screenshot
"gnome-screenshot"
Print
"gnome-screenshot --window"
mod1 + Sys_Req # is equal to Print

# file browser
#"nautilus --browser --no-desktop"
"thunar"
mod5 + e

# gaim
"gaim-remote.py GaimBlistSetVisible?show=1"
mod5 + b

# QuodLibet
"quodlibet"
mod5 + q
"quodlibet --toggle-window"
mod5 + a

# rhythmbox
"rhythmbox --toggle-hide"
mod5 + h

# run dialog
# from openbox package
"gnome-panel-control --run-dialog"
mod5 + r

# menu
# from openbox package
"grootmenu"
mod5 + m

# Liferea
"liferea"
mod5 + l

# show desktop
# from http://kldp.org/node/55824
"if [ `xprop -root _NET_SHOWING_DESKTOP | awk -F "=" '{print $2}' ` -eq 0 ]; then wmctrl -k on; else wmctrl -k off; fi"
mod5 + d

# terminal
"mlterm"
mod4 + t

# resize the window toggle
"wmctrl -r :ACTIVE: -b toggle,maximized_vert,maximized_horz"
Scroll_Lock
"wmctrl -r :ACTIVE: -b toggle,maximized_horz"
shift + Scroll_Lock
"wmctrl -r :ACTIVE: -b toggle,maximized_vert"
mod1 + Scroll_Lock
"wmctrl -r :ACTIVE: -b toggle,fullscreen"
control + Scroll_Lock

# always on top toggle
"wmctrl -r :ACTIVE: -b toggle,above"
mod4 + Page_Up

# close the window
"wmctrl -c :ACTIVE:"
Pause

# switch to Nth desktop
"wmctrl -s 0"
mod4 + 1
"wmctrl -s 1"
mod4 + 2
"wmctrl -s 2"
mod4 + 3
"wmctrl -s 3"
mod4 + 4
"wmctrl -s 4"
mod4 + 5
"wmctrl -s 5"
mod4 + 6
"wmctrl -s 6"
mod4 + 7
"wmctrl -s 7"
mod4 + 8
"wmctrl -s 8"
mod4 + 9
"wmctrl -s 9"
mod4 + 0

# move the window to Nth desktop
"wmctrl -r :ACTIVE: -t 0"
shift + mod4 + 1
"wmctrl -r :ACTIVE: -t 1"
shift + mod4 + 2
"wmctrl -r :ACTIVE: -t 2"
shift + mod4 + 3
"wmctrl -r :ACTIVE: -t 3"
shift + mod4 + 4
"wmctrl -r :ACTIVE: -t 4"
shift + mod4 + 5
"wmctrl -r :ACTIVE: -t 5"
shift + mod4 + 6
"wmctrl -r :ACTIVE: -t 6"
shift + mod4 + 7
"wmctrl -r :ACTIVE: -t 7"
shift + mod4 + 8
"wmctrl -r :ACTIVE: -t 8"
shift + mod4 + 9
"wmctrl -r :ACTIVE: -t 9"
shift + mod4 + 0
Comments