「Xbindkeys」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(en:Xbindkeysへの転送ページ)
 
(Pkg/AUR テンプレートの更新)
(2人の利用者による、間の3版が非表示)
1行目: 1行目:
  +
[[Category:キーボード]]
#redirect[[en:Xbindkeys]]
 
  +
[[Category:X サーバー]]
  +
[[en:Xbindkeys]]
  +
[[fr:Xbindkeys]]
  +
[[ru:Xbindkeys]]
  +
[[tr:Xbindkeys]]
  +
{{Related articles start}}
  +
{{Related|Xmodmap}}
  +
{{Related|Sxhkd}}
  +
{{Related articles end}}
  +
  +
Xbindkeys はコマンドをキーボードの特定のキーやキーの組み合わせに結びつけることができるプログラムです。Xbindkeys はマルチメディアキーを処理できます。ウィンドウマネージャやデスクトップ環境に依存しないので手軽に使うことが可能です。
  +
  +
== インストール ==
  +
  +
{{Pkg|xbindkeys}} パッケージを[[インストール]]してください。
  +
  +
== 設定 ==
  +
  +
ホームディレクトリに {{ic|.xbindkeysrc}} という名前のファイルを作成してください:
  +
$ touch ~/.xbindkeysrc
  +
  +
また、次を実行することでサンプルファイルを作成することができます:
  +
$ xbindkeys -d > ~/.xbindkeysrc
  +
  +
{{Note|サンプルファイルには {{ic|Ctrl+f}} などのバインディングが含まれています。}}
  +
  +
{{ic|~/.xbindkeysrc}} を編集してキーバインドを設定するか、GUI を使って設定を行えます。
  +
  +
{{Tip|変更を加えた後は {{ic|xbindkeys -p}} を実行して設定ファイルをリロードすることで変更が適用されます。}}
  +
  +
=== ボリューム操作 ===
  +
  +
以下はノートパソコンで Fn キーを使って {{Pkg|pamixer}} コマンドを実行して音量を調整する設定例です。シャープ記号 (#) はコメントとして使えます。
  +
# Increase volume
  +
"pamixer --increase 5"
  +
XF86AudioRaiseVolume
  +
  +
# Decrease volume
  +
"pamixer --decrease 5"
  +
XF86AudioLowerVolume
  +
  +
上記以外の音量操作コマンドは [[PulseAudio#キーボードのボリュームコントロール]]や [[ALSA#キーボードのボリュームコントロール]]を見てください。
  +
  +
=== GUI による設定 ===
  +
  +
グラフィカルに設定したい場合 {{AUR|xbindkeys_config-gtk2}} パッケージを[[インストール]]して次のコマンドを実行してください:
  +
$ xbindkeys_config
  +
  +
== キーコードの確認 ==
  +
  +
特定のキーのキーコードを確認するには、以下のコマンドを実行:
  +
$ xbindkeys -k
  +
  +
空のウィンドウが開きます。コマンドを割り当てたいキーを押すと ''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)" を実行したいコマンドに置き換えます。
  +
  +
{{Tip|{{ic|xbindkeys -mk}} を使うことで複数のキーを押してもプロンプトが閉じないようにすることができます。終了するときは {{ic|q}} を押して下さい。}}
  +
  +
マウスのボタンを確認したい場合は xev を使います。[https://blog.hanschen.org/2009/10/13/mouse-shortcuts-with-xbindkeys/] を見てください。
  +
  +
== 変更の永続化 ==
  +
  +
キーの設定ができたら、[[xprofile]] や [[xinitrc]] ファイルを編集して以下を記述してください (どちらのファイルを使用するかはウィンドウマネージャによって変わります):
  +
xbindkeys
  +
  +
ウィンドウマネージャや DE を起動する行の前に書いて下さい。
  +
  +
== マルチメディアキーのシミュレート ==
  +
  +
XF86Audio* などのマルチメディアキー [http://wiki.linuxquestions.org/wiki/XF86_keyboard_symbols] は主要な DE なら大抵は認識されます。マルチメディアキーが存在しないキーボードを使っている場合、他のキーで同じような動作をするようにシミュレートできます:
  +
# Decrease volume on pressing Super-minus
  +
"amixer set Master playback 1-"
  +
m:0x50 + c:20
  +
Mod2+Mod4 + minus
  +
実際にキーを呼び出すために {{Pkg|xdotool}} ([[公式リポジトリ]]) や {{AUR|xmacro}} ([[AUR]]) などのツールを使うことができます。残念ながら、修飾キー (Super や Shift など) を押している場合、X には {{ic|Super-XF86AudioLowerVolume}} のように認識されるため動作しません。以下は {{Pkg|xorg-server-utils}}{{Broken package link|パッケージが存在しません}} パッケージの ''xmacro'' と ''xmodmap'' を使ってこれに対応するスクリプトです [https://bbs.archlinux.org/viewtopic.php?pid=843395]。
  +
{{bc|
  +
#!/bin/sh
  +
echo 'KeyStrRelease Super_L KeyStrRelease minus' | xmacroplay :0
  +
xmodmap -e 'remove Mod4 = Super_L'
  +
echo 'KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume' | xmacroplay :0
  +
xmodmap -e 'add Mod4 = Super_L'
  +
}}
  +
上記の設定で XF86AudioLowerVolume を使うことができますが ({{ic|Super+minus}} を使用)、Super キーを話さずに (ボリュームボタンを叩くように) 何度も呼び出すことはできません。その場合、以下の行をスクリプトの末尾に追加してください:
  +
echo 'KeyStrPress Super_L' | xmacroplay :0
  +
スクリプトを修正した場合、キーを素早く押すことで Super_L キーがオンのままになることがあります。それによって面白い副作用が発生することがあります。状態を解除するにはもう一度キーを入力するか、ボリュームアップ・ダウンのマルチタップを気にしない場合は元のスクリプトを使ってください。
  +
  +
上記の設定は全ての XF86 マルチメディアキーに適用できます (例: XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioPlay, XF86AudioPrev, XF86AudioNext)。
  +
  +
== トラブルシューティング ==
  +
  +
何らかの理由で、{{ic|~/.xbindkeysrc}} に設定したホットキーが使えない場合、ターミナルを開いて次を入力してください:
  +
$ xbindkeys -n
  +
  +
動作しないキーを押すと、''xbindkeys'' のエラーが表示されます (例: コマンドやキーコードが間違っている、など)。
  +
  +
コマンドラインの xdotool でキーバインドのコマンドが動作するのにホットキーでは有効にならない場合、ホットキーに "+ Release" を追加してみてください (特に GNOME でこの問題が発生します):
  +
"xdotool key --clearmodifiers XF86AudioPlay"
  +
Mod2 + F7 + Release
  +
  +
上記の設定では F7 キーで音楽を再生・停止します。"xdotool" コマンドはコマンドラインで動作しますが "+ Release" を取ると xbindkeys では機能しなくなります。

2017年7月13日 (木) 00:11時点における版

関連記事

Xbindkeys はコマンドをキーボードの特定のキーやキーの組み合わせに結びつけることができるプログラムです。Xbindkeys はマルチメディアキーを処理できます。ウィンドウマネージャやデスクトップ環境に依存しないので手軽に使うことが可能です。

インストール

xbindkeys パッケージをインストールしてください。

設定

ホームディレクトリに .xbindkeysrc という名前のファイルを作成してください:

$ touch ~/.xbindkeysrc

また、次を実行することでサンプルファイルを作成することができます:

$ xbindkeys -d > ~/.xbindkeysrc
ノート: サンプルファイルには Ctrl+f などのバインディングが含まれています。

~/.xbindkeysrc を編集してキーバインドを設定するか、GUI を使って設定を行えます。

ヒント: 変更を加えた後は xbindkeys -p を実行して設定ファイルをリロードすることで変更が適用されます。

ボリューム操作

以下はノートパソコンで 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)" を実行したいコマンドに置き換えます。

ヒント: xbindkeys -mk を使うことで複数のキーを押してもプロンプトが閉じないようにすることができます。終了するときは q を押して下さい。

マウスのボタンを確認したい場合は xev を使います。[1] を見てください。

変更の永続化

キーの設定ができたら、xprofilexinitrc ファイルを編集して以下を記述してください (どちらのファイルを使用するかはウィンドウマネージャによって変わります):

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[リンク切れ: パッケージが存在しません] パッケージの xmacroxmodmap を使ってこれに対応するスクリプトです [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 では機能しなくなります。