Linuxでコンテキストメニューを別のキーに再マップするにはどうすればよいですか?


19

レノボのシンクパッドを購入したばかりで、その中のすべてを誇りに思っています。Linuxカーネルと同じくらい堅実な感じです:P。

問題は、Lenovoが右クリックなどを行うキーであるコンテキストメニューキーを削除することにしたことです。彼らはそれをスクリーン印刷キーに置き換えました。キーボードの数値部分にはいくつかのボタンがあります。虫眼鏡のキーがあります。このキーを再マップしてコンテキストメニューを開くか、右クリックキーにします。これを行うことは可能ですか?

他の関連する質問を検索しようとしましたが、Nautilusコンテキストメニューにオプションを追加する方法に関するQ&Aしか見つかりませんでした。このメニューを開くために、キーボードの物理キーをマップしたいです。ちょうど前のように。また、Dellはinspironキーボードにこのキーをドロップしているようです。マウスよりもキーボードを使用するので、何が起こっているのかわかりません。

前もって感謝します。


3
でxbindkeysをインストールしてくださいsudo apt-get install xbindkeys。次に、ターミナルを実行してxbindkeys -k、変更するキーを入力します。質問に出力を追加できますか?
セス

「NoCommand」m:0x50 + c:46 Mod2 + Mod4 + l
Jhonnytunes

誰がメニューキーを期待するのにPrint Screenキーが必要でしょうか?レノボで働くためにあなたがどれほど酔っ払うのを許されているのか真剣に思います。とにかく、最初に.Xmodmap生成されたxmodmap -pkeを必要としないことに注意してください、空のファイルにバインディングを置くこともできます。また、@ Baha_hiが以下で見つけたものを見てください。
J.カッツウィンケル

回答:


13

それは少し複雑ですが、あなたはそれを行うことができます。次の手順を実行します:

キーコードを検出する

  1. xevキーコードを検出するために実行します:

    xev | grep keycode
    
            state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
            state 0x0, keycode 107 (keysym 0xff67, Menu), same_screen YES,
            state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    
  2. 再構成するキーを押します。ターミナルの出力に表示されますkeycode(注意してください、いくつかあるかもしれません)。

テストマッピング

  1. 新しいマッピングを一時的に設定します、私にとってはkeycode 107

    xmodmap -e "keycode  107 = Return NoSymbol Return"
    

キーが期待どおりに動作する場合、構成を保存できます。

設定を保存します

  1. 現在のキーマップテーブルをに保存して$HOME、defauをオーバーライドします。

    xmodmap -pke > ~/.Xmodmap
    
  2. ~/.xinitrc構成をロードするために作成または編集します。

    $EDITOR ~/.xinitrc
    
  3. 次の行を追加

    if [ -f $HOME/.Xmodmap ]; then
            /usr/bin/xmodmap $HOME/.Xmodmap
    fi
    

楽しい

上記の情報のほとんどは、ArchWikiの記事からのものです


問題があります。ボタンを押すと、「l」がマークされます。xevで確認し、L l文字に割り当てられた46キーコードを提供しました。たぶん、それはキーコードを持っていません。
Jhonnytunes

@Jhonnytunes。キーボードのレイアウトが正しいことを確認してください。「sudo dpkg-reconfigure keyboard-configuration」と入力してモデルを変更できます。
エドヴィルガス

まだ同じ振る舞い。さまざまなThinkPadモデルを試しましたが、何も試しませんでした。
Jhonnytunes

ところで私のThinkPadはE530cであり、キーボードリストに表示されません。
Jhonnytunes

これがキーボードレイアウトである場合 «Delete»の横のキーは、実際には«コンテキストメニュー»(探している機能)です。それ以外の場合は、別のキーを再構成するか、Lenovoのデスクにどのレイアウトを選択すべきかを直接尋ねてください。
エドヴィルガス

12

ここで次を使用していることがわかりましshift+ F10コンテキストメニューが開きます。

私はそれが最善の解決策ではないことを知っていますが、一時的な使用に役立つと思いました!

PS:私もe530cを持っています。これをDebian 7(Wheezy)でテストしました。


3

私は最終的にテストの時間後にこれを行う方法を見つけ、失敗します:D

まず、xautomationをインストールします。

sudo apt-get install xautomation

次に、Ubuntuシステム設定の[キーボード]セクションの[ショートカット]タブに移動します。最初にスクリーンショットエントリに移動して、アクションを別のキーに再マッピングするか、必要に応じて無効にします。PrtSc(Print)キーをThinkpadの黒いボタン(Launch1)に置き換えました。

次に、[カスタムショートカット]セクションに移動して、ショートカットを追加します。メニューなど、好きな名前を付けてください。[コマンド]フィールドにこれを挿入します。

xte 'keydown Shift_L' 'key F10' 'keyup Shift_L'

作業は完了です!それは奇跡のように働いています;)


2

これは私のためにトリックをしました。私にとって、ThinkPadの「PrtSc」ボタンのキーコードは107です。ubuntuの「xev」ツールでそれを見つけました。

xmodmap -e "keycode  107 = Menu"

これは一時的な変更です。

このコマンドを/ etc / profileに追加することで永続的にすることができ、起動するたびに実行され、永続的な変更になります。


1

最近、Lenovo E550を購入しましたが、同じ問題を抱えていました。xte(からxautomation)を使用して解決しましたxmodmap

他の回答が完全に機能しないのはなぜですか?

  1. @Ed Villegas(または@Null Pointer)の回答は機能しません。これは、数値部分の上にあるキーの一部が独自のキーではないためです(たとえば、ロックキーはSuper+のL組み合わせに関連しています)。ときにxevロックキーのキーコードを見つけようとするために使用され、それは両方を返すSuperLキーコードを、あなただけ解釈しなければならないxevラインで出力ラインを。

  2. @Bahaxおよび@John Fineganの場合:Shift+ F10はコンテキストメニューキーであり、すべてのアプリケーションで動作せず、と同じ機能を提供しませんMenu。ファイルエクスプローラでファイルを選択し、Menuポップアップするファイル自体のコンテキストメニューを押すと 、これはShift+のF10組み合わせでは発生せず、代わりにウィンドウのコンテキストメニューが表示されます。

  3. @Danial Behzadiは、2番目のアイテムの人々に対して同様のアプローチをとりますが、キーストロークシミュレータを介してキーボードの組み合わせを1つのキーにリンクすると、キーがShift+にリンクされF10、同じ結果が得られます。

働く答え

ThinkPadキーボードに存在しないキーMenu(つまり、名前)を考慮することは重要です。次の図に示されています。

メニューキー

キーは存在しませんが、キーコードはコンピューターに存在する必要があります。キーコードテーブルを印刷すると、xmodmap -pke | grep Menu次のようなコードが表示されます。

xmodmapの出力

それを念頭に置いて、@ Danial Behzadiの答えのように(キーストロークシミュレーションxautomationに使用するために)インストールxteしてください

sudo apt-get install xautomation

そして、カスタムショートカットを作成し、トリガーでショートカットにしたいキーを押して、Action貼り付けxte 'key Menu'ます。適用してテストします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.