web-dev-qa-db-ja.com

キーボードのキーを再マップするにはどうすればよいですか?

キーの再マッピングに関する一般的な手順を探しています。

誰かが私にリマップする方法を教えてもらえますか F9 に PrtScr そして F10 に ScrollLock ボタン?

ここですべてのスレッドを調べましたが、どの提案も機能しませんでした。

スウェーデン語のキーボードセットアップとUbuntu 12.04を使用しています。

39
jdc

この回答の大部分は、この buntuの回答を求める およびこのUbuntuフォーラム スレッド のリンク/参照先の最初の3つのステップの情報を使用して構成されています。これ buntuの質問に答える はとても役に立ちました。したがって、NES、llazarte、bodhi.zazen、Argusvisionのすべての功績です。

2つのキー機能を単純に交換するには:ターミナルからxevを実行し、 F9 のようなものを与えるだろう

Terminal window showing F9 KeyPress event

同じことをする PrtSc xevに出力がなかった(または "KeyPressイベント"が見つからなかった)ため、すべての設定でカスタムショートカットを使用するが無効にするためにArgusvisionのアドバイスを使用した PrtSc として再割り当てすることにより、スクリーンショットボタンとして Shift + Alt 次にもう一度押してみました PrtSc xevのように

Terminal window showing PrtSc KeyPress event

4つのキーすべてについてこのプロセスを繰り返すと、

  • F9 =キーコード75
  • PrtSc =キーコード107、アクションPrint
  • F10 =キーコード76
  • Scroll Lock =キーコード127、アクション一時停止

キー機能を変更するには、押されているNEWキーのキーコードと、その機能のOLDキーまたは既存のキーの「アクション」を知る必要があります。

キーを識別するためのキーコードが用意できたので、xmodmapを使用してシステムに必要な処理を実行させます。 F9 「キーコード75」と PrtSc 「印刷」のアクションが必要です。

xmodmap -e "keycode 75 = Print"

作るために F9 キーはあたかも PrtSc キーが押されました。つまり、キーコードは同じままですが、 F9 キーの結果は異なります。

xevを使用して Scroll Lock また与えた

Terminal window showing Scroll Lock KeyPress event

の「アクション」を確認します Scroll Lock キーは「一時停止」なので、 F10 として作用します Scroll Lock しようとしている

xmodmap -e "keycode 76 = Pause"

望ましい結果が得られるはずです。

ログアウトするかシャットダウンするまでですので、コマンドを確認してからやらなければならないことは

xmodmap -e "keycode 75 = Print"
xmodmap -e "keycode 76 = Pause"

目的の結果が得られるかどうかを整理する SysRec 変更される PrtSc 同じキーアクションの複数のインスタンスが存在しないように、他のボタンを切り替えます。追加中

xmodmap -e "keycode 107 mod1 = F9 Sys_Req"

交換する必要があります F9 どこへ PrtSc 変更を保持していました SysReq (Alt + PrtSc)再度、xevを使用してこれを確認できます。

スワッピング Scroll Lock そして F10 ボタンが簡単です

xmodmap -e "keycode 127 = F10"

実行中にそれを確認した後

xmodmap -e "keycode 75 = Print"
xmodmap -e "keycode 107 mod1 = F9 Sys_Req"
xmodmap -e "keycode 76 = Pause"
xmodmap -e "keycode 127 = F10"

実際に、これは、起動時にこれを実行することだけを目的としています。これを実行するには

xmodmap -pke|egrep  -e '(F9|Print)'

それは私に与えた

some more text

キーコード75と107のみに関心があります。同じことを行います

xmodmap -pke|egrep  -e '(F10|Pause)'

それは私に与えた

even more text

キーコード76と127のみに関心があります。

お気に入りのテキストエディターで新しいテキストドキュメントを作成し、関連情報をコピーして貼り付けます

keycode  75 = Print NoSymbol Print
keycode 107 = F9 Sys_Req F9 Sys_Req
keycode  76 = Pause NoSymbol Pause
keycode 127 = F10 NoSymbol F10

ファイルに.Xmodmapという名前を付けてホームディレクトリに保存すると、再起動後にログオンするだけで変更を実行できます。

49
geezanansa

Ubuntuの新しいバージョンでは、Xmodmapは機能しますが、再起動後にキーマッピングが失われます!代わりに、xbdファイルを編集しました(/ usr/share/X11/xkb/symbols/pc)。

この場合、次のエントリを追加します。

key <FK09> { [Print] };
key <FK10> { [Scroll_Lock] };

次に、xkb設定キャッシュをクリアします。

rm -rf /var/lib/xkb/*

再起動後、キーは完全にマッピングされます。これに関するヘルプが必要な場合は、 buntu 15.04でのキーの再マッピング に関する投稿を参照してください。

16
Captain

System Settings > keyboard > Custom Shortcutsに移動します。ここで、任意のキーまたはキーのセットにコマンドを割り当てることができます。追加(+)ボタンをクリックします。表示されるウィンドウで、Name = Print Screen;コマンド= gnome-screenshot。作成したら、名前の右側の「無効」と書かれている行をクリックします。 F9キーを押すだけで、「新しいアクセラレータ」に変わります。

まだスクロールロックを探しています。

少し見てみると、スクロールロックの答えが見つかりました。私が見つけたものからこの答えを始めました ここ 端末からxmodmapを使用して任意のキーセットに適用できるはずです。編集:Xmodmapの詳細を読むこともできます here

xmodmap -pke | grep F10の出力を見てください。
私のもの:

keycode  76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10  

これは私を意味します F10 キーはkeycode 76です。異なるレイアウトを使用しているため、あなたのものはおそらく異なるでしょう。

Iは、スクロールロックを割り当てることができるはずです F10 次のコマンドで:

xmodmap -e "keycode 76 = Scroll_Lock"  

yourF10キー用に見つけた「キーコード」を挿入する必要があります。

追加のオプションについては、man xmodmapおよびxmodmap --helpを調べることもできます。
たとえば、xmodmap -pkeはキーマップテーブルを式としてリストします。そうすれば、他のキーに割り当てられた式も見つけることができます。

4
Argusvision