「キーボードショートカット」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎Readline: 記事の差し替え)
(→‎再起動: リンクを修正)
 
(2人の利用者による、間の14版が非表示)
18行目: 18行目:
 
[[systemd]] は sysrq パーミッションのビットマスクがを[https://github.com/systemd/systemd/blob/main/sysctl.d/50-default.conf#L14-L19 デフォルトで 0X10に設定]しており、特に[https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html プロセスのシグナリングや再起動などを許可していません]。システムで sysrq キーを完全に使用できるようにするには [[sysctl#設定|sysctl の設定]]に、{{ic|1=kernel.sysrq = 1}} を追加してください。1 より大きい値は、sysrq 機能を選択的に有効にするために使用できます。詳細は、[https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html Linuxカーネルのドキュメント]を参照してください。パーティションがマウントされる前やinitrd内でも有効にしたい場合は、{{ic|1=sysrq_always_enabled=1}} を[[カーネルパラメータ]]に追加してください。
 
[[systemd]] は sysrq パーミッションのビットマスクがを[https://github.com/systemd/systemd/blob/main/sysctl.d/50-default.conf#L14-L19 デフォルトで 0X10に設定]しており、特に[https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html プロセスのシグナリングや再起動などを許可していません]。システムで sysrq キーを完全に使用できるようにするには [[sysctl#設定|sysctl の設定]]に、{{ic|1=kernel.sysrq = 1}} を追加してください。1 より大きい値は、sysrq 機能を選択的に有効にするために使用できます。詳細は、[https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html Linuxカーネルのドキュメント]を参照してください。パーティションがマウントされる前やinitrd内でも有効にしたい場合は、{{ic|1=sysrq_always_enabled=1}} を[[カーネルパラメータ]]に追加してください。
   
Note that changing the setting through these methods will cause the changes to persist across reboots. If you want to try changing the sysrq settings for just your current session, you can run either {{ic|1=sysctl kernel.sysrq=1}} or {{ic|echo "1" > /proc/sys/kernel/sysrq}}.
+
これらの方法で設定を変更すると、再起動しても変更が持続されることに注意してください。現在のセッションの sysrq 設定を変更してみたい場合は、 {{ic|1=sysctl kernel.sysrq=1}} または {{ic|echo "1" > /proc/sys/kernel/sysrq}} を実行できます。
   
  +
sysrq キーを完全に有効にすることには、いくつかの明らかなセキュリティ上の リスクがあります。強制的なリブートなどに加え、CPU レジスタの内容をダンプするために使用することができ、理論的には機密情報を明らかにすることができます。これを使うにはシステムに物理的にアクセスする必要があるので (あなたが [https://github.com/jd/sysrqd 気にしない限り])、ほとんどのデスクトップユーザはおそらくそのリスクレベルを許容範囲と考えるでしょう。とはいえ、sysrq を有効にする前に、それを有効にすることの意味と、あなたのシステムが動作しているより大きな状況の力学を完全に理解していることを確認してください。
There are some obvious security risks involved in fully enabling the sysrq key. In addition to forcing reboots and the like, it can be used to dump the contents of the CPU registers, which could theoretically reveal sensitive information. Since using it requires physical access to the system (unless you [https://github.com/jd/sysrqd go out of your way]), most desktop users will probably consider the level of risk acceptable. That said, make sure you fully understand the implications of enabling it and the dynamics of the larger context in which your system is operating before you turn sysrq all the way on.
 
   
 
==== 再起動 ====
 
==== 再起動 ====
26行目: 26行目:
 
覚え方は "'''R'''eboot '''E'''ven '''I'''f '''S'''ystem '''U'''tterly '''B'''roken" です ("REISUB" とも呼ばれます)。もしくは "BUSIER" の反対として覚えましょう。
 
覚え方は "'''R'''eboot '''E'''ven '''I'''f '''S'''ystem '''U'''tterly '''B'''roken" です ("REISUB" とも呼ばれます)。もしくは "BUSIER" の反対として覚えましょう。
   
  +
{{Note|"REISUB" 自体は単なるニーモニックであり、応答しないシステムの制御を取り戻すためのキー押下シーケンスに関する一般的な推奨事項ではないことに注意してください。以下に示すように、実際の機能を知らずに、これらのシーケンスを毎回盲目的に押すべきではありません。}}
{{Note|Please be aware that "REISUB" itself is just a mnemonic, not any kind of general recommendation for the key press sequence to take back control of an unresponsive system. You should not blindly press these sequences each time without knowing their actual function as noted below.}}
 
   
 
{| class="wikitable"
 
{| class="wikitable"
 
! キーボードショートカット
 
! キーボードショートカット
 
! 説明
 
! 説明
  +
! 有効にするコード
! Code to Enable
 
  +
! その他の機能を有効にする
! Other Functions Enabled
 
 
|-
 
|-
 
| {{ic|Alt+SysRq+r}} Unraw
 
| {{ic|Alt+SysRq+r}} Unraw
64行目: 64行目:
 
|}
 
|}
   
  +
たとえば、再起動機能のみを選択的に有効にするには、{{ic|1=kernel.sysrq}} を128に設定します。REISUB 機能のセット全体を有効にするには、244に設定します。ただし、これにより、表の最後の列にリストされている追加機能も有効になります。詳細なドキュメントについては、[https://docs.kernel.org/admin-guide/sysrq.html sysrq キーのドキュメント] およびカーネルソースファイル {{ic|/drivers/tty/sysrq.c}} を参照してください。
For example, to selectively enable just the reboot function, set {{ic|1=kernel.sysrq}} to 128. The whole set of REISUB functions can be enabled by setting it to 244, although this also enables the additional functions listed in the last column of the table. For further documentation, see the [https://kernel.org/doc/html/latest/admin-guide/sysrq.html sysrq key documentation], and the kernel source file {{ic|/drivers/tty/sysrq.c}}.
 
   
  +
==== メモリを大量に消費するプロセスの終了 ====
==== Killing a memory-hogging process ====
 
   
  +
{{ic|Alt+SysRq+f}} で kill することができない場合時は、カーネルパニックを起こさずに [https://www.kernel.org/doc/html/latest/admin-guide/mm/concepts.html?highlight=oom#oom-killer OOM (out-of-memory) killer] を呼び出せます。OOM キラーは、ヒューリスティックのセットを使って、最もメモリを消費している比較的重要でないプロセスを選び、それを kill します。これは、暴走したブラウザスクリプトのような、過剰なスラッシュを引き起こしてシステムをソフトロックしているプロセスを kill するのに非常に便利で、多くの場合、再起動の必要性を軽減できます。OOM キラーは、その善意のヒューリスティックにもかかわらず、多種多様なプロセスを対象とすることができますが、やや予測不可能なことがあるので、気軽に呼び出すには注意が必要です。
{{ic|Alt+SysRq+f}} can be used to invoke the [https://www.kernel.org/doc/html/latest/admin-guide/mm/concepts.html?highlight=oom#oom-killer OOM (out-of-memory) killer] without causing a kernel panic if nothing can be killed. The OOM killer uses a set of heuristics to pick whichever relatively non-vital process is using the most memory and kill it. This is very useful to kill a process that is softlocking your system by causing excessive thrashing, such as a runaway browser script, and can alleviate the need for a reboot in many cases. Note that the OOM killer can target a wide variety of processes despite its well-meaning heuristics and can be somewhat unpredictable, so be careful about calling it casually.
 
   
==== Troubleshooting ====
+
==== トラブルシューティング ====
   
* If you are using a [[ディスプレイマネージャ]] and after {{ic|Alt+SysRq+e}} you are presented with the login screen (or full desktop if autologin is enabled), it is most likely caused by {{ic|1=Restart=always}} directive in the relevant [[systemd|サービスファイル]]. If necessary, [[ユニットファイルの編集]], however this should not prevent the "REISUB" sequence from working.
+
* [[ディスプレイマネージャ]] を使っていて、{{ic|Alt+SysRq+e}} の後にログイン画面が表示される場合(自動ログインが有効な場合はフルデスクトップ)。と表示される場合、関連する [[systemd|サービスファイル]] {{ic|1=Restart=always}} ディレクティブが原因であることが多いようです。必要であれば、[[ユニットファイルの編集]] をしてください。ただし、これによって "REISUB "シーケンスが動作しなくなることはないはずです。
  +
* もし、{{ic|Alt+SysRq+b}} 以外の組み合わせで動作する場合は、{{ic|Alt}} キーを使ってみてください。
* If all the above combinations work except {{ic|Alt+SysRq+b}}, try using the contralateral {{ic|Alt}} key.
 
  +
* もし、{{ic|SysRq}} と {{ic|PrtScrn}} を区別するために {{ic|Fn}} キーを使用するノートパソコンでは、実際には {{ic|Fn}} キーを使う必要はないかもしれません(すなわち、{{ic}Alt + PrtSc +''letter' }} でも機能するかもしれません。)
* On laptops that use {{ic|Fn}} key to differentiate {{ic|SysRq}} from {{ic|PrtScrn}}, it may not actually be necessary to use the {{ic|Fn}} key (i.e., {{ic|Alt+PrtSc+''letter''}} could work).
 
* On Lenovo laptops {{ic|SysRq}} is often configured as {{ic|Fn+S}}. To use it press and hold {{ic|Alt}} then press {{ic|Fn+s}}, '''release''' {{ic|Fn}} and {{ic|s}} still holding {{ic|Alt}} followed by the keys above.
+
* Lenovo のノートパソコンでは、{{ic|SysRq}} はしばしば {{ic|Fn+S}} として設定されます。これを使うには {{ic|Alt}} を押しながら {{ic|Fn+s}} を押して、{{ic|Fn}} {{ic|s}} を離し {{ic|Alt}} を押したまま上記のキーを押してください。
* You may need to press {{ic|Ctrl}} along with {{ic|Alt}}. So for example, full key shortcut would be {{ic|Ctrl+Alt+SysRq+b}}.
+
* また、{{ic|Alt}} と同時に {{ic|Ctrl}} を押す必要があるかもしれません。例えば、フルキーショートカットは {{ic|Ctrl+Alt+SysRq+b}} となります。
   
=== Linux console ===
+
=== Linux コンソール ===
   
See [[Linux コンソール#キーボードショートカット]].
+
参照 [[Linux コンソール#キーボードショートカット]]
   
 
=== X11 & Wayland ===
 
=== X11 & Wayland ===
103行目: 103行目:
 
=== Readline ===
 
=== Readline ===
   
[[Readline]] is a commonly used library for line-editing; it is used for example by [[Bash]], FTP, and many more (see the details of {{Pkg|readline}} package under "Required By" for more examples). It has [[Emacs]]-like and [[vi]]-like editing modes which can be customized with escape sequences. Default key bindings are listed in {{man|3|readline}} and the [https://tiswww.cwru.edu/php/chet/readline/rluserman.html Info documentation].
+
[[Bash]]FTP などで利用されています (詳細は {{Pkg|readline}} パッケージの "Required By" 項目を参照してください) [[Emacs]] 的な編集モードと [[vi]] 的な編集モードがあり、エスケープシーケンスでカスタマイズすることができます。デフォルトのキーバインディングは {{man|3|readline}} [https://tiswww.cwru.edu/php/chet/readline/rluserman.html Info documentation] に記載されています。
   
 
=== Zsh ===
 
=== Zsh ===
111行目: 111行目:
 
=== Xorg ===
 
=== Xorg ===
   
  +
デフォルトでは無効になっている一般的なショートカットについては [[Xorg でのキーボード設定#よく使われる XKB オプション]] を参照してください。
See [[Xorg/Keyboard configuration#Frequently used XKB options]] for some common shortcuts, that are disabled by default.
 
   
  +
グラフィカルな環境にいるとき、あるキーの組み合わせが押されたときにコマンドを実行したいことがあります(つまり、コマンドを ''keysym'' にバインドする)。これを行うには、複数の方法があります。
When we are in a graphical environment we may want to execute a command when certain key combination is pressed (i.e. bind a command to a ''keysym''). There are multiple ways to do that:
 
   
  +
* [[acpid]] のような低レベルのツールを使う最も移植性の高い方法です。すべてのキーに対応しているわけではありませんが、キーボードのキー、電源アダプタの接続、ヘッドフォンジャックの(抜き)挿しイベントまで、統一された方法で設定することが可能です。また、X セッション内のプログラムを正しく実行することも困難です。
* The most portable way using low level tools, such as [[acpid]]. Not all keys are supported, but configuration in uniform way is possible for keyboard keys, power adapter connection and even headphone jack (un)plugging events. It is also difficult to run programs inside X session correctly.
 
  +
* [[Xorg]] ユーティリティ(例:[[xbindkeys]]) やデスクトップ環境、ウィンドウマネージャツールを使用するのが一般的な方法です。
* The universal way using [[Xorg]] utilities (e.g. [[xbindkeys]]) and eventually your desktop environment or window manager tools.
 
  +
* Gnome Control Center のような GUI ですべてを行うサードパーティプログラムを使用するのが手っ取り早い方法です。
* The quicker way using a third-party program to do everything in GUI, such as the Gnome Control Center.
 
   
 
==== sxhkd ====
 
==== sxhkd ====
   
  +
強力でコンパクトな構成構文を備えたシンプルなXホットキーデーモン。詳細については、[[sxhkd]] を参照してください。
A simple X hotkey daemon with a powerful and compact configuration syntax. See [[sxhkd]] for details.
 
   
 
==== actkbd ====
 
==== actkbd ====
   
From [http://users.softlab.ece.ntua.gr/~thkala/projects/actkbd/ actkbd home page]:
+
[http://users.softlab.ece.ntua.gr/~thkala/projects/actkbd/ actkbd home page] より
  +
:{{AUR|actkbd}} はキーボードイベントにアクションを結びつけるシンプルなデーモンです。([[AUR]] で利用可能) はキーボードイベントにアクションをバインドするシンプルなデーモンです。キーの組み合わせを認識し、プレス、リピート、リリースイベントを扱うことができます。現在のところ linux-2.6 evdev インターフェースのみをサポートしています。すべてのバインディングを含むプレーンテキストの設定ファイルを使用します。
:{{AUR|actkbd}} (available in [[AUR]]) is a simple daemon that binds actions to keyboard events. It recognises key combinations and can handle press, repeat and release events. Currently it only supports the linux-2.6 evdev interface. It uses a plain-text configuration file which contains all the bindings.
 
   
A sample configuration and guide is available [http://users.softlab.ece.ntua.gr/~thkala/projects/actkbd/latest/README here].
+
[http://users.softlab.ece.ntua.gr/~thkala/projects/actkbd/latest/README こちら] に設定ファイルのサンプルとガイドがあります
   
 
==== xbindkeys ====
 
==== xbindkeys ====
   
  +
[[xbindkeys]] はデスクトップ環境とは関係なくキーとアクションの高度なマッピングを可能にします。
[[xbindkeys]] allows advanced mapping of keysyms to actions independently of the Desktop Environment.
 
{{Tip| If you find {{ic|xbindkeys}} difficult to use, try the graphical manager {{AUR|xbindkeys_config-gtk2}} from the [[AUR]].}}
+
{{Tip|もし {{ic|xbindkeys}} が使いづらいと感じたら、[[AUR]] にあるグラフィカルマネージャー {{AUR|xbindkeys_config-gtk2}} を試してみてください。}}
   
=== Desktop environments ===
+
=== デスクトップ環境 ===
   
 
* [[LXDE#Bindings]]
 
* [[LXDE#Bindings]]
 
* [[Xfce#Keyboard Shortcuts]]
 
* [[Xfce#Keyboard Shortcuts]]
   
=== Window managers ===
+
=== ウィンドウマネージャ ===
   
 
* [[Fluxbox#Hotkeys]]
 
* [[Fluxbox#Hotkeys]]
185行目: 185行目:
 
, ((0, xK_Insert), pasteSelection) ]
 
, ((0, xK_Insert), pasteSelection) ]
 
}}
 
}}
 
'''xdotool を使用''' - コマンドライン X11 自動化ツール
 
 
{{Pkg|xdotool}} を使用することで中ボタンボタンによって X のセレクションバッファの中身を貼り付ける操作のショートカットを作成できます。ショートカットのコマンドは以下のようになります:
 
 
xdotool getwindowfocus key --window %1 click 2
 
 
上記のコマンドは X サーバーからフォーカスのあたっているウィンドウを取得してボタン2 (中マウスボタン) のクリックイベントを発動します。
 
 
== ヒントとテクニック ==
 
 
* 主にキーボードを使って作業をする場合、[[ウィンドウマネージャ#タイル型ウィンドウマネージャ|タイル型ウィンドウマネージャ]]が気に入るかもしれません。
 
   
 
== 参照 ==
 
== 参照 ==

2023年7月29日 (土) 20:18時点における最新版

この記事では (あまり有名でない) デフォルトのキーボードショートカットのリストとユーザーカスタマイズの情報を提供します。

標準のショートカット

カーネル (SysRq)

sysrq キーを介してカーネルに実装されるローレベルなショートカットがいくつかあります。これらのショートカットは、システムが反応しなくなったときに復旧させたりデバッグするのに用いることができます。いつでも使うことができますが、特に、電源ボタンを長押しして無理やりシステムの電源を切るよりかはショートカットを使うほうが推奨されます。

詳細については、Wikipedia:Magic SysRq key を参照してください。

有効化

systemd は sysrq パーミッションのビットマスクがをデフォルトで 0X10に設定しており、特にプロセスのシグナリングや再起動などを許可していません。システムで sysrq キーを完全に使用できるようにするには sysctl の設定に、kernel.sysrq = 1 を追加してください。1 より大きい値は、sysrq 機能を選択的に有効にするために使用できます。詳細は、Linuxカーネルのドキュメントを参照してください。パーティションがマウントされる前やinitrd内でも有効にしたい場合は、sysrq_always_enabled=1カーネルパラメータに追加してください。

これらの方法で設定を変更すると、再起動しても変更が持続されることに注意してください。現在のセッションの sysrq 設定を変更してみたい場合は、 sysctl kernel.sysrq=1 または echo "1" > /proc/sys/kernel/sysrq を実行できます。

sysrq キーを完全に有効にすることには、いくつかの明らかなセキュリティ上の リスクがあります。強制的なリブートなどに加え、CPU レジスタの内容をダンプするために使用することができ、理論的には機密情報を明らかにすることができます。これを使うにはシステムに物理的にアクセスする必要があるので (あなたが 気にしない限り)、ほとんどのデスクトップユーザはおそらくそのリスクレベルを許容範囲と考えるでしょう。とはいえ、sysrq を有効にする前に、それを有効にすることの意味と、あなたのシステムが動作しているより大きな状況の力学を完全に理解していることを確認してください。

再起動

覚え方は "Reboot Even If System Utterly Broken" です ("REISUB" とも呼ばれます)。もしくは "BUSIER" の反対として覚えましょう。

ノート: "REISUB" 自体は単なるニーモニックであり、応答しないシステムの制御を取り戻すためのキー押下シーケンスに関する一般的な推奨事項ではないことに注意してください。以下に示すように、実際の機能を知らずに、これらのシーケンスを毎回盲目的に押すべきではありません。
キーボードショートカット 説明 有効にするコード その他の機能を有効にする
Alt+SysRq+r Unraw キーボードの制御を X から取り戻す。 4 Alt+SysRq+k SAK
Alt+SysRq+e Terminate 全てのプロセスに SIGTERM を送り、丁寧にプロセスを終了させる。 64 Alt+SysRq+f OOM kill
Alt+SysRq+j Thaw
Alt+SysRq+i Kill 全てのプロセスに SIGKILL を送り、即座にプロセスを強制終了させる。
Alt+SysRq+s Sync データをディスクに書き込む。 16 -
Alt+SysRq+u Unmount 全てのファイルシステムをアンマウントして読み取り専用で再マウント。 32 -
Alt+SysRq+b Reboot 再起動 128 -

たとえば、再起動機能のみを選択的に有効にするには、kernel.sysrq を128に設定します。REISUB 機能のセット全体を有効にするには、244に設定します。ただし、これにより、表の最後の列にリストされている追加機能も有効になります。詳細なドキュメントについては、sysrq キーのドキュメント およびカーネルソースファイル /drivers/tty/sysrq.c を参照してください。

メモリを大量に消費するプロセスの終了

Alt+SysRq+f で kill することができない場合時は、カーネルパニックを起こさずに OOM (out-of-memory) killer を呼び出せます。OOM キラーは、ヒューリスティックのセットを使って、最もメモリを消費している比較的重要でないプロセスを選び、それを kill します。これは、暴走したブラウザスクリプトのような、過剰なスラッシュを引き起こしてシステムをソフトロックしているプロセスを kill するのに非常に便利で、多くの場合、再起動の必要性を軽減できます。OOM キラーは、その善意のヒューリスティックにもかかわらず、多種多様なプロセスを対象とすることができますが、やや予測不可能なことがあるので、気軽に呼び出すには注意が必要です。

トラブルシューティング

  • ディスプレイマネージャ を使っていて、Alt+SysRq+e の後にログイン画面が表示される場合(自動ログインが有効な場合はフルデスクトップ)。と表示される場合、関連する サービスファイルRestart=always ディレクティブが原因であることが多いようです。必要であれば、ユニットファイルの編集 をしてください。ただし、これによって "REISUB "シーケンスが動作しなくなることはないはずです。
  • もし、Alt+SysRq+b 以外の組み合わせで動作する場合は、Alt キーを使ってみてください。
  • もし、SysRqPrtScrn を区別するために Fn キーを使用するノートパソコンでは、実際には Fn キーを使う必要はないかもしれません(すなわち、{{ic}Alt + PrtSc +letter' }} でも機能するかもしれません。)
  • Lenovo のノートパソコンでは、SysRq はしばしば Fn+S として設定されます。これを使うには Alt を押しながら Fn+s を押して、Fns を離し Alt を押したまま上記のキーを押してください。
  • また、Alt と同時に Ctrl を押す必要があるかもしれません。例えば、フルキーショートカットは Ctrl+Alt+SysRq+b となります。

Linux コンソール

参照 Linux コンソール#キーボードショートカット

X11 & Wayland

キーボードショートカット 説明 ノート
Ctrl+Alt+F1, F2, F3, ... n 番目の仮想端末にスイッチ 機能しない場合 Ctrl+Fn+Alt+F… を試してみてください。
Shift+Insert
Mouse Button 2
PRIMARY バッファからテキストを貼り付ける デフォルトでは QtShift+Insert で PRIMARY バッファではなく CLIPBOARD を使います [1]。そして PRIMARY バッファは Ctrl+Shift+Insert を使用します。

カスタマイズ

Readline

Bash、FTP などで利用されています (詳細は readline パッケージの "Required By" 項目を参照してください) Emacs 的な編集モードと vi 的な編集モードがあり、エスケープシーケンスでカスタマイズすることができます。デフォルトのキーバインディングは readline(3)Info documentation に記載されています。

Zsh

ZshZLE を使用して、ショートカットをウィジット、スクリプトおよびコマンドにリンクします。

Xorg

デフォルトでは無効になっている一般的なショートカットについては Xorg でのキーボード設定#よく使われる XKB オプション を参照してください。

グラフィカルな環境にいるとき、あるキーの組み合わせが押されたときにコマンドを実行したいことがあります(つまり、コマンドを keysym にバインドする)。これを行うには、複数の方法があります。

  • acpid のような低レベルのツールを使う最も移植性の高い方法です。すべてのキーに対応しているわけではありませんが、キーボードのキー、電源アダプタの接続、ヘッドフォンジャックの(抜き)挿しイベントまで、統一された方法で設定することが可能です。また、X セッション内のプログラムを正しく実行することも困難です。
  • Xorg ユーティリティ(例:xbindkeys) やデスクトップ環境、ウィンドウマネージャツールを使用するのが一般的な方法です。
  • Gnome Control Center のような GUI ですべてを行うサードパーティプログラムを使用するのが手っ取り早い方法です。

sxhkd

強力でコンパクトな構成構文を備えたシンプルなXホットキーデーモン。詳細については、sxhkd を参照してください。

actkbd

actkbd home page より

actkbdAUR はキーボードイベントにアクションを結びつけるシンプルなデーモンです。(AUR で利用可能) はキーボードイベントにアクションをバインドするシンプルなデーモンです。キーの組み合わせを認識し、プレス、リピート、リリースイベントを扱うことができます。現在のところ linux-2.6 evdev インターフェースのみをサポートしています。すべてのバインディングを含むプレーンテキストの設定ファイルを使用します。

こちら に設定ファイルのサンプルとガイドがあります

xbindkeys

xbindkeys はデスクトップ環境とは関係なくキーとアクションの高度なマッピングを可能にします。

ヒント: もし xbindkeys が使いづらいと感じたら、AUR にあるグラフィカルマネージャー xbindkeys_config-gtk2AUR を試してみてください。

デスクトップ環境

ウィンドウマネージャ

X-selection-paste のキーバインディング

マウスよりもキーボードを好んで使用する場合、マウスの中ボタンでペーストを行うキーバインドが役に立つかもしれません。特にキーボードを集中的に使う環境では有用です。ワークフローは以下のようになります:

  1. Firefox で、検索したい文字列を (マウスで) 選択してください。
  2. Ctrl+k を押して "Google search" フィールドにカーソルを移動。
  3. マウスポインタを移動して中ボタンを押す代わりに F12 でバッファを貼り付け。
ノート: Shift+Insert で同じような機能が実行できます。#X11 を見てください: Shift+Insert は x-selection-paste バッファではなくクリップボードバッファを挿入します。アプリケーションによっては、両方のバッファには同じ中身が入ります。

ここでは公式リポジトリにある3つのパッケージを使います:

  • xsel で x-selection-buffer の中身にアクセス。
  • Xbindkeys でキーストロークに操作をバインド。
  • xvkbdAUR でキーボードの入力をエミュレートしてバッファ文字列をアプリケーションに渡す。

以下の例では x-selection-paste の操作を F12 キーにバインドします:

.xbindkeysrc
"xvkbd -no-jump-pointer -xsendevent -text "\D1`xsel`" 2>/dev/null"
    F12

"\D1" コードはセレクションバッファの挿入の前に 100 ms のポーズを追加します (xvkbd のホームページ を参照)。

ノート: X の設定によっては、xvkbd の -xsendevent 引数を外す必要があります。

F12 以外のキーのキーコードは xbindkeys -k で確認できます。

参照:

XMonad ウィンドウマネージャ

xmonad ウィンドウマネージャには x-selection-buffer の中身を貼り付ける機能が内蔵されています。特定のキーストローク (例: Insert キー) にバインドするには以下の設定を使用:

xmonad.hs
import XMonad.Util.Paste
...
  -- X-selection-paste buffer
  , ((0,                     xK_Insert), pasteSelection) ]

参照