sxhkd
sxhkd は、bspwm の開発者による単純な X ホットキーデーモンであり、コマンドを実行して入力イベントに反応します。
インストール
sxhkd または sxhkd-gitAUR をインストールしてください。
設定
sxhkd のデフォルトの設定ファイルは $XDG_CONFIG_HOME/sxhkd/sxhkdrc
です。-c
オプションを使うことで他のファイルを設定ファイルとして指定することもできます。
設定ファイルの各行は以下のように処理されます:
- 行頭が
#
の場合、無視されます。 - 1つ以上の空白コマンドから始まっている場合、コマンドとして読み取られます。
- それ以外の場合、ホットキーとして解釈されます: キーの名前は空白か
+
文字で区切ります。
構文:
[MODIFIER + ]*[@|!]KEYSYM COMMAND
MODIFIER
は次の名前のどれかになります: super
, hyper
, meta
, alt
, control
, ctrl
, shift
, mode_switch
, lock
, mod1
, mod2
, mod3
, mod4
, mod5
。@
がキーシムの最初に追加されている場合、キーのリリース時にコマンドが実行されます。付いていない場合はキーを押した時に実行されます。!
がキーシムの先頭に付いている場合、コマンドはマウスを動かした時に実行されます。コマンドには2つの整数値変換仕様を含める必要があり、ルートウィンドウからのポインタの相対座標に置き換わります (このタイプのホットキーで使えるボタンキーシムは: button1
, ..., button5
)。KEYSYM
の名前は xev
で取得できます。
特殊なキーシム名を使用することでマウスのホットキーを定義することができます: button1
, button2
, button3
, ..., button24
。ホットキーはシーケンスの形で記述することができ (STRING_1
,...,STRING_N
)、この場合、コマンドも N 個の要素からなるシーケンスを記述する必要があります: 2つのシーケンスを合わせて N 個のホットキーが出来ます。さらに、シーケンスには A-Z
という形で範囲を指定できます。A や Z は英数字です。
実際に実行されるのは SHELL -c COMMAND
なので、COMMAND
に環境変数を設定することができます。SHELL
は次のリストで定義された最初の環境変数になります: SXHKD_SHELL
, SHELL
。sxhkd が SIGUSR1
シグナルを受け取った場合、設定ファイルがリロードされます。
例
$XDG_CONFIG_HOME/sxhkd/sxhkdrc
# On mouse button 1 press Alt_R+F1 button1 xte "keydown Alt_R" "keydown F1" "keyup Alt_R" "keyup F1" # On mouse button 2 pause 3 seconds then press Alt_R+F2 button2 xte "sleep 3" "keydown Alt_R" "keydown F2" "keyup Alt_R" "keyup F2"
キー1回押しコマンドをバインドする
Windows で Super
キーでスタートメニューを開くように、1回のキー入力にコマンドをバインドしたいユーザがいるかもしれません。sxhkd では、次のように、1つの keysym のキープレスとキーリリースイベントからなるコードチェーンにバインドすることでこれを実現します。
$XDG_CONFIG_HOME/sxhkd/sxhkdrc
# Program launcher Super_L; @Super_L rofi -show drun
この複雑なパターンが必要なのは、明示的なコードチェーン (すなわち、単一の @Super_L
) がなければ、sxhkd はキーを どんな リリースでも、たとえそのキーが他のコードで使われていてもバインドをトリガしてしまうからです。さらに、sxhkd は修飾子のための @
シンボル (キーの解放を表す) の使用をサポートしていないので、修飾子の代わりに keysyms を使う必要があります
(Super_L
は super
とは違います。)
使用方法
設定後、sxhkd を 自動起動 に設定したい場合、詳細については、デスクトップ環境またはウィンドウマネージャーに対応する記事を参照してください。
デスクトップ環境が Desktop Application Autostart Specification をサポートしている場合は、sxhkd.desktop
ファイルを作成して sxhkd を起動できます。適切なディレクトリで:
~/.config/autostart/sxhkd.desktop
[Desktop Entry] Name=sxhkd Comment=Simple X hotkey daemon Exec=/usr/bin/sxhkd Terminal=false Type=Application
参照
- 公式ウェブサイト - includes configuration options, example bindings, and source code.
- ArchLinux forum thread