「Xbindkeys」の版間の差分
(同期) |
|||
14行目: | 14行目: | ||
== インストール == |
== インストール == |
||
− | + | {{Pkg|xbindkeys}} パッケージを[[インストール]]してください。 |
|
− | |||
− | GUI を使いたい場合は、[[AUR]] に {{AUR|xbindkeys_config}} パッケージがあります。 |
||
== 設定 == |
== 設定 == |
||
25行目: | 23行目: | ||
また、次を実行することでサンプルファイルを作成することができます: |
また、次を実行することでサンプルファイルを作成することができます: |
||
$ xbindkeys -d > ~/.xbindkeysrc |
$ xbindkeys -d > ~/.xbindkeysrc |
||
+ | |||
+ | {{Note|サンプルファイルには {{ic|Ctrl+f}} などのバインディングが含まれています。}} |
||
{{ic|~/.xbindkeysrc}} を編集してキーバインドを設定するか、GUI を使って設定を行えます。 |
{{ic|~/.xbindkeysrc}} を編集してキーバインドを設定するか、GUI を使って設定を行えます。 |
||
+ | {{Tip|変更を加えた後は {{ic|xbindkeys -p}} を実行して設定ファイルをリロードすることで変更が適用されます。}} |
||
− | === Xbindkeysrc === |
||
+ | === ボリューム操作 === |
||
− | 設定ファイルのエントリの形式を見るには、次のコマンドを実行: |
||
− | $ xbindkeys -k |
||
+ | 以下はノートパソコンで Fn キーを使って {{Pkg|pamixer}} コマンドを実行して音量を調整する設定例です。シャープ記号 (#) はコメントとして使えます。 |
||
− | 空のウィンドウがポップアップします。コマンドに割り当てたいキーを押すと ''xbindkeys'' は {{ic|~/.xbindkeysrc}} に記述することが出来るスニペットを出力します。例えば、空のウィンドウが開いた時に、{{ic|Alt+o}} を押すと以下のように出力されます (出力結果は異なることがあります): |
||
− | "(Scheme function)" |
||
− | m:0x8 + c:32 |
||
− | Alt + o |
||
− | |||
− | 最初の行がコマンドです。2番目の行には {{ic|xev}} による状態 (0x8) とキーコード (32) が含まれます。3番目の行はそのキーコードと関連付けられているキーシムです。上記の出力を使う場合、後ろの2行のうち、どちらかを {{ic|~/.xbindkeysrc}} にコピーして "(Scheme function)" を実行したいコマンドに置き換えます。以下はノートパソコンで Fn キーを使って {{AUR|pamixer}} コマンドを実行して音量を調整する設定例です。シャープ記号 (#) はコメントとして使えます。 |
||
# Increase volume |
# Increase volume |
||
"pamixer --increase 5" |
"pamixer --increase 5" |
||
44行目: | 38行目: | ||
# Decrease volume |
# Decrease volume |
||
− | "pamixer --decrease 5" |
||
− | m:0x0 + c:122 |
||
− | または: |
||
"pamixer --decrease 5" |
"pamixer --decrease 5" |
||
XF86AudioLowerVolume |
XF86AudioLowerVolume |
||
+ | 上記以外の音量操作コマンドは [[PulseAudio#キーボードのボリュームコントロール]]や [[ALSA#キーボードのボリュームコントロール]]を見てください。 |
||
− | また、{{AUR|pamixer}} の代わりに ''pactl'' を使って [[PulseAudio]] を制御しボリュームレベルを変更することも可能です (上記の ''pamixer'' コマンドを以下のコマンドで置き換え): |
||
− | pactl set-sink-volume 0 +2% |
||
− | pactl set-sink-volume 0 -2% |
||
− | pactl set-sink-mute 0 toggle |
||
+ | === GUI による設定 === |
||
− | sink の番号を固定して設定する代わりに {{ic|@DEFAULT_SINK@}} を使うこともできます: |
||
− | pactl set-sink-volume @DEFAULT_SINK@ +2% |
||
− | pactl set-sink-volume @DEFAULT_SINK@ -2% |
||
− | pactl set-sink-mute @DEFAULT_SINK@ toggle |
||
+ | グラフィカルに設定したい場合 {{AUR|xbindkeys_config-gtk2}} パッケージを[[インストール]]して次のコマンドを実行してください: |
||
− | ({{Pkg|alsa-utils}} パッケージに入っている) amixer を使う方法もあります: |
||
+ | $ xbindkeys_config |
||
− | amixer -c 1 set Master 5+ |
||
− | amixer -c 1 set Master 5- |
||
− | amixer -c 1 set Master toggle |
||
+ | == キーコードの確認 == |
||
− | {{Tip|{{ic|xbindkeys -mk}} を使うことで複数のキーを押してもプロンプトが閉じないようにすることができます。終了するときは {{ic|q}} を押して下さい。}} |
||
+ | 特定のキーのキーコードを確認するには、以下のコマンドを実行: |
||
− | === GUI による設定 === |
||
+ | $ xbindkeys -k |
||
+ | 空のウィンドウが開きます。コマンドを割り当てたいキーを押すと ''xbindkeys'' は {{ic|~/.xbindkeysrc}} に記述することが出来るスニペットを出力します。例えば、空のウィンドウが開いた時に、{{ic|Alt+o}} を押すと以下のように出力されます (出力結果は異なることがあります): |
||
− | {{AUR|xbindkeys_config}} パッケージをインストールしたら、次を実行: |
||
+ | "(Scheme function)" |
||
− | $ xbindkeys_config |
||
+ | m:0x8 + c:32 |
||
+ | Alt + o |
||
+ | |||
+ | 最初の行がコマンドです。2番目の行には {{ic|xev}} による状態 (0x8) とキーコード (32) が含まれます。3番目の行はそのキーコードと関連付けられているキーシムです。上記の出力を使う場合、後ろの2行のうち、どちらかを {{ic|~/.xbindkeysrc}} にコピーして "(Scheme function)" を実行したいコマンドに置き換えます。 |
||
+ | |||
+ | {{Tip|{{ic|xbindkeys -mk}} を使うことで複数のキーを押してもプロンプトが閉じないようにすることができます。終了するときは {{ic|q}} を押して下さい。}} |
||
+ | |||
+ | マウスのボタンを確認したい場合は xev を使います。[https://blog.hanschen.org/2009/10/13/mouse-shortcuts-with-xbindkeys/] を見てください。 |
||
− | == |
+ | == 変更の永続化 == |
キーの設定ができたら、[[xprofile]] や [[xinitrc]] ファイルを編集して以下を記述してください (どちらのファイルを使用するかはウィンドウマネージャによって変わります): |
キーの設定ができたら、[[xprofile]] や [[xinitrc]] ファイルを編集して以下を記述してください (どちらのファイルを使用するかはウィンドウマネージャによって変わります): |
||
94行目: | 86行目: | ||
xmodmap -e 'add Mod4 = Super_L' |
xmodmap -e 'add Mod4 = Super_L' |
||
}} |
}} |
||
+ | 上記の設定で XF86AudioLowerVolume を使うことができますが ({{ic|Super+minus}} を使用)、Super キーを話さずに (ボリュームボタンを叩くように) 何度も呼び出すことはできません。その場合、以下の行をスクリプトの末尾に追加してください: |
||
− | This works for calling XF86AudioLowerVolume once (assuming you are using {{ic|Super+minus}}), but repeatedly calling it without releasing the Super key (like tapping on a volume button) does not work. If you would like it to work that way, add the following line to the bottom of the script. |
||
echo 'KeyStrPress Super_L' | xmacroplay :0 |
echo 'KeyStrPress Super_L' | xmacroplay :0 |
||
+ | スクリプトを修正した場合、キーを素早く押すことで Super_L キーがオンのままになることがあります。それによって面白い副作用が発生することがあります。状態を解除するにはもう一度キーを入力するか、ボリュームアップ・ダウンのマルチタップを気にしない場合は元のスクリプトを使ってください。 |
||
− | With this modified script, if you press the key combination fast enough your Super_L key will remain 'on' till the next time you hit it, which may result in some interesting side-effects. Just tap it again to remove that state, or use the original script if you want things to 'just work' and do not mind not multi-tapping on volume up/down. |
||
− | + | 上記の設定は全ての XF86 マルチメディアキーに適用できます (例: XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioPlay, XF86AudioPrev, XF86AudioNext)。 |
|
== トラブルシューティング == |
== トラブルシューティング == |
||
106行目: | 98行目: | ||
動作しないキーを押すと、''xbindkeys'' のエラーが表示されます (例: コマンドやキーコードが間違っている、など)。 |
動作しないキーを押すと、''xbindkeys'' のエラーが表示されます (例: コマンドやキーコードが間違っている、など)。 |
||
+ | |||
+ | コマンドラインの xdotool でキーバインドのコマンドが動作するのにホットキーでは有効にならない場合、ホットキーに "+ Release" を追加してみてください (特に GNOME でこの問題が発生します): |
||
+ | "xdotool key --clearmodifiers XF86AudioPlay" |
||
+ | Mod2 + F7 + Release |
||
+ | |||
+ | 上記の設定では F7 キーで音楽を再生・停止します。"xdotool" コマンドはコマンドラインで動作しますが "+ Release" を取ると xbindkeys では機能しなくなります。 |
2016年11月14日 (月) 23:46時点における版
Xbindkeys はコマンドをキーボードの特定のキーやキーの組み合わせに結びつけることができるプログラムです。Xbindkeys はマルチメディアキーを処理できます。ウィンドウマネージャやデスクトップ環境に依存しないので手軽に使うことが可能です。
インストール
設定
ホームディレクトリに .xbindkeysrc
という名前のファイルを作成してください:
$ touch ~/.xbindkeysrc
また、次を実行することでサンプルファイルを作成することができます:
$ xbindkeys -d > ~/.xbindkeysrc
~/.xbindkeysrc
を編集してキーバインドを設定するか、GUI を使って設定を行えます。
ボリューム操作
以下はノートパソコンで Fn キーを使って pamixer コマンドを実行して音量を調整する設定例です。シャープ記号 (#) はコメントとして使えます。
# Increase volume "pamixer --increase 5" XF86AudioRaiseVolume
# Decrease volume "pamixer --decrease 5" XF86AudioLowerVolume
上記以外の音量操作コマンドは PulseAudio#キーボードのボリュームコントロールや ALSA#キーボードのボリュームコントロールを見てください。
GUI による設定
グラフィカルに設定したい場合 xbindkeys_config-gtk2AUR パッケージをインストールして次のコマンドを実行してください:
$ xbindkeys_config
キーコードの確認
特定のキーのキーコードを確認するには、以下のコマンドを実行:
$ xbindkeys -k
空のウィンドウが開きます。コマンドを割り当てたいキーを押すと xbindkeys は ~/.xbindkeysrc
に記述することが出来るスニペットを出力します。例えば、空のウィンドウが開いた時に、Alt+o
を押すと以下のように出力されます (出力結果は異なることがあります):
"(Scheme function)" m:0x8 + c:32 Alt + o
最初の行がコマンドです。2番目の行には xev
による状態 (0x8) とキーコード (32) が含まれます。3番目の行はそのキーコードと関連付けられているキーシムです。上記の出力を使う場合、後ろの2行のうち、どちらかを ~/.xbindkeysrc
にコピーして "(Scheme function)" を実行したいコマンドに置き換えます。
マウスのボタンを確認したい場合は xev を使います。[1] を見てください。
変更の永続化
キーの設定ができたら、xprofile や xinitrc ファイルを編集して以下を記述してください (どちらのファイルを使用するかはウィンドウマネージャによって変わります):
xbindkeys
ウィンドウマネージャや DE を起動する行の前に書いて下さい。
マルチメディアキーのシミュレート
XF86Audio* などのマルチメディアキー [2] は主要な DE なら大抵は認識されます。マルチメディアキーが存在しないキーボードを使っている場合、他のキーで同じような動作をするようにシミュレートできます:
# Decrease volume on pressing Super-minus "amixer set Master playback 1-" m:0x50 + c:20 Mod2+Mod4 + minus
実際にキーを呼び出すために xdotool (公式リポジトリ) や xmacroAUR (AUR) などのツールを使うことができます。残念ながら、修飾キー (Super や Shift など) を押している場合、X には Super-XF86AudioLowerVolume
のように認識されるため動作しません。以下は xorg-server-utils パッケージの xmacro と xmodmap を使ってこれに対応するスクリプトです [3]。
#!/bin/sh echo 'KeyStrRelease Super_L KeyStrRelease minus'
上記の設定で XF86AudioLowerVolume を使うことができますが (Super+minus
を使用)、Super キーを話さずに (ボリュームボタンを叩くように) 何度も呼び出すことはできません。その場合、以下の行をスクリプトの末尾に追加してください:
echo 'KeyStrPress Super_L' | xmacroplay :0
スクリプトを修正した場合、キーを素早く押すことで Super_L キーがオンのままになることがあります。それによって面白い副作用が発生することがあります。状態を解除するにはもう一度キーを入力するか、ボリュームアップ・ダウンのマルチタップを気にしない場合は元のスクリプトを使ってください。
上記の設定は全ての XF86 マルチメディアキーに適用できます (例: XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioPlay, XF86AudioPrev, XF86AudioNext)。
トラブルシューティング
何らかの理由で、~/.xbindkeysrc
に設定したホットキーが使えない場合、ターミナルを開いて次を入力してください:
$ xbindkeys -n
動作しないキーを押すと、xbindkeys のエラーが表示されます (例: コマンドやキーコードが間違っている、など)。
コマンドラインの xdotool でキーバインドのコマンドが動作するのにホットキーでは有効にならない場合、ホットキーに "+ Release" を追加してみてください (特に GNOME でこの問題が発生します):
"xdotool key --clearmodifiers XF86AudioPlay" Mod2 + F7 + Release
上記の設定では F7 キーで音楽を再生・停止します。"xdotool" コマンドはコマンドラインで動作しますが "+ Release" を取ると xbindkeys では機能しなくなります。