web-dev-qa-db-ja.com

Linuxでは、キーを2番目のキーボードからUnicode文字とショートカットに再マップします

頻繁に使用するUnicode文字とキーボードショートカット用の2番目のキーボードを入手したいと思います。つまり、たとえば、2番目のキーボードの「a」キーをFirefoxを開くようにバインドしたいと思います。もう1つの例は、「b」キーを✓文字の挿入にバインドすることです。そのため、毎回ctrl + shift + u、2713を入力する必要はありません。

OSはUbuntu、wmはfluxboxです。ありがとう!

2
cat pants

まず、2番目のキーボードのイベントハンドラーを見つけます。実行

$ cat /proc/bus/input/devices

イベントハンドラーの出力とノート番号で2番目のキーボードデバイスを見つけます。例えば:

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input2
U: Uniq=
H: Handlers=sysrq kbd event2 
B: PROP=0
B: EV=120013
B: KEY=6007 2900000 83802078 f040d001 feffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7

「H:Handlers = sysrq kbd event2」は、監視するデバイスが/ dev/input/event2であることを示しています。次に、押されたキーをキャプチャする必要があります。便利なツールはactkbd -- http://users.softlab.ece.ntua.gr/~thkala/projects/actkbd/ ダウンロードしてインストールすると、キーボードコードを取得できます。 :

$ Sudo actkbd -s -d /dev/input/event2

以前に入手したイベントデバイスを-dオプションに渡します。使用するキーをタップし、番号をメモして、actkbdをオフにします。 Crtl+C ショートカット。

コマンドをactkbd構成ファイルに入れられたshorctursにバインドするには、/etc/actkbd.conf、次の形式の行:key-numbers:::commandそして、以前と同じ方法でactkbdデーモンを再度実行します。たとえば、タップした後にgeditを実行するには a キーはこの行を置きます:

30:::gedit

Unicode文字の挿入はより注意が必要です。それらを直接挿入する方法があるかどうかはわかりませんが、簡単な回避策を提案できます。 xclipまたはxselコマンドを使用して任意の文字列をクリップボードに入れ、マウスの中ボタンを使用して任意のアプリケーションに貼り付けることができます。を使用した構成行の例 q ボタンキー:

16:::echo -n '✓' | xsel
2
Nykakin