Wie ordne ich das Kontextmenü einem anderen Linux-Schlüssel zu?

19

Ich habe gerade ein Lenovo Thinkpad gekauft und bin so stolz auf alles darin. Es fühlt sich genauso solide an wie der Linux-Kernel: P.

Das Problem ist, dass Lenovo beschlossen hat, die Kontextmenü-Taste zu entfernen, mit der die Rechtsklick-Funktionen ausgeführt werden. Sie ersetzten es durch eine Drucktaste. Meine Tastatur hat einen numerischen Teil mit einigen Schaltflächen darüber. Es gibt eine Lupentaste, die ich neu zuordnen möchte, um das Kontextmenü zu öffnen oder die rechte Maustaste zu drücken. Ist das möglich?

Ich habe versucht, nach anderen verwandten Fragen zu suchen, aber ich habe nur Fragen und Antworten zum Hinzufügen von Optionen zum Nautilus-Kontextmenü gefunden. Ich möchte eine physische Taste meiner Tastatur zuordnen, um dieses Menü zu öffnen. Genau wie vorher. Es scheint auch, dass Dell diese Taste in seiner Inspiron-Tastatur ablegt. Ich weiß nicht, was los ist, da ich die Tastatur mehr als die Maus benutze.

Danke im Voraus.

Jhonnytunes
quelle
3
Bitte installieren Sie xbindkeys mit sudo apt-get install xbindkeys. Führen xbindkeys -kSie dann in einem Terminal den Schlüssel aus, den Sie ändern möchten. Können Sie die Ausgabe Ihrer Frage hinzufügen?
Seth
"NoCommand" m: 0x50 + c: 46 Mod2 + Mod4 + l
Jhonnytunes
Wer möchte eine Drucktaste, bei der eine Menütaste erwartet wird? Ich frage mich ernsthaft, wie betrunken Sie bei Lenovo vorbeikommen dürfen. Wie auch immer, beachten Sie, dass Sie zunächst keine .Xmodmapgenerierte xmodmap -pkeDatei benötigen. Sie können Ihre Bindung auch einfach in eine leere Datei einfügen. Schauen Sie sich auch an, was @Baha_hi unten herausgefunden hat.
J. Katzwinkel

Antworten:

13

Es ist ein bisschen kompliziert, aber du kannst es schaffen. Folge diesen Schritten:

Ermitteln Sie den Schlüsselcode

  1. Führen Sie xevden folgenden Befehl aus, um den Schlüsselcode zu ermitteln:

    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. Drücken Sie die Taste, die Sie neu konfigurieren möchten. Die Ausgabe im Terminal zeigt Ihnen die keycode(Vorsicht, möglicherweise mehrere).

Testen Sie die Zuordnung

  1. Neue Zuordnung vorübergehend festlegen, für mich ist es keycode 107:

    xmodmap -e "keycode  107 = Return NoSymbol Return"
    

Wenn sich der Schlüssel wie erwartet verhält, können Sie die Konfiguration speichern.

Speichern Sie Ihre Konfiguration

  1. Speichern Sie Ihre aktuelle Keymap-Tabelle in Ihrem $HOME, um die Standardeinstellung zu überschreiben:

    xmodmap -pke > ~/.Xmodmap
    
  2. Erstellen oder bearbeiten Sie ~/.xinitrc, um Ihre Konfiguration zu laden:

    $EDITOR ~/.xinitrc
    
  3. Fügen Sie folgende Zeilen hinzu

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

Genießen

Die meisten der oben genannten Informationen stammen aus ArchWiki-Artikeln .

Ed Villegas
quelle
Es gibt ein Problem. Wenn ich die Taste drücke, ist 'l' markiert. Ich überprüfte es bei xev und es gab mir den Schlüsselcode 46, der dem Buchstaben L l zugewiesen wird. Vielleicht gibt es keinen Schlüsselcode, den man nehmen kann.
Jhonnytunes
@Jhonnytunes. Überprüfen Sie, ob Ihr Tastaturlayout korrekt ist. Sie können Ihr Modell durch Eingabe von "sudo dpkg-reconfigure keyboard-configuration" ändern.
Ed Villegas
Immer noch das gleiche Verhalten. Ich habe verschiedene Thinkpad-Modelle ausprobiert und nichts.
Jhonnytunes
Übrigens ist mein Thinkpad ein E530c und erscheint nicht in der Tastaturliste.
Jhonnytunes
Wenn dies Ihr Tastaturlayout ist, lautet die Taste neben "Löschen" möglicherweise "Kontextmenü" (die gesuchte Funktion). Andernfalls konfigurieren Sie einen anderen Schlüssel neu oder fragen Sie direkt bei Lenovo nach dem Layout, das Sie auswählen sollten.
Ed Villegas
12

Ich habe hier festgestellt , dass mit: shift+ F10das Kontextmenü geöffnet wird.

Ich weiß, es ist nicht die beste Lösung, aber ich dachte, es könnte für den vorübergehenden Gebrauch helfen!

PS: Ich habe auch e530c und ich habe es unter Debian 7 (Wheezy) getestet.

Bahax
quelle
3

Nach stundenlangen Tests habe ich endlich den Weg gefunden, dies zu tun

Zuerst installiere xautomation:

sudo apt-get install xautomation

Wechseln Sie dann in den Ubuntu-Systemeinstellungen zur Registerkarte "Tastenkombination" im Abschnitt "Tastatur". Gehen Sie zuerst zum Screenshot-Eintrag und ordnen Sie die Aktionen einem anderen Schlüssel zu oder deaktivieren Sie sie, wenn Sie möchten. Ich habe den PrtSc-Schlüssel (Print) durch den schwarzen Thinkpad-Knopf (Launch1) ersetzt.

Gehen Sie nun zum Abschnitt Benutzerdefinierte Verknüpfungen und fügen Sie eine Verknüpfung hinzu. Nennen Sie es, wie Sie möchten, z. B. Menü. Geben Sie im Befehlsfeld Folgendes ein:

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

Die Arbeit ist erledigt! Es funktioniert wie ein Wunder;)

Danial Behzadi
quelle
2

Das hat den Trick für mich getan. Für mich ist der Schlüsselcode für den "PrtSc" -Button auf meinem Thinkpad 107. Das habe ich mit dem "xev" -Tool in Ubuntu gefunden.

xmodmap -e "keycode  107 = Menu"

Dies ist eine vorübergehende Änderung.

Sie können dies permanent machen, indem Sie diesen Befehl zu / etc / profile hinzufügen. Er wird bei jedem Start ausgeführt und ist eine permanente Änderung.

Null Zeiger
quelle
1

Ich habe kürzlich ein Lenovo E550 gekauft und hatte das gleiche Problem. Ich habe es mit xte(von xautomation) zusammen mit gelöst xmodmap.

Warum funktionieren die anderen Antworten nicht ganz?

  1. Die Antwort von @Ed Villegas (oder @Null Pointer ) funktioniert nicht, da einige der Tasten über dem numerischen Teil keine eindeutigen Tasten für sich sind ( z. B. bezieht sich die Tastensperre auf die Super+ L-Kombination). Wenn xevverwendet wird , um zu versuchen , die Sperrtaste keycode finden es beide gibt die Superund die Lkeycodes, müssen Sie nur die Interpretation xevdurch die Linie Ausgangsleitung.

  2. Bei @Bahax und @John Finegan : Shift+ F10ist eine Kontextmenütaste, sie funktioniert nicht in allen Anwendungen und bietet nicht die gleichen Funktionen wie Menu. Wenn Sie im Datei-Explorer eine Datei auswählen und Menudas Kontextmenü für die Datei selbst drücken , sollte dies nicht bei der Kombination Shift+ der Fall sein F10, sondern ein Kontextmenü für das Fenster.

  3. @Danial Behzadi geht ähnlich vor wie die Personen im zweiten Element, verknüpft jedoch die Tastenkombination mit einer Taste über einen Tastensimulator . Dadurch wird die Taste mit dem Shift+ verknüpft F10und das gleiche Ergebnis erzielt .

Die Antwort, die funktioniert

Es ist wichtig zu berücksichtigen, dass der Schlüssel, der in der ThinkPad-Tastatur nicht vorhanden ist, der Menu( dh der Name) ist, der in der folgenden Abbildung dargestellt ist:

Menütaste

Obwohl der Schlüssel nicht vorhanden ist, sollte er in Ihrem Computer vorhanden sein. Sie können ihn finden, indem Sie die Schlüsselcodetabelle ausdrucken, mit xmodmap -pke | grep Menuder Sie etwa Folgendes erhalten:

xmodmap-Ausgabe

In diesem Sinne installieren Sie xautomation(zur Verwendung xtefür Tastenanschlagsimulationen) wie in @Danial Behzadi. Antwort:

sudo apt-get install xautomation

Erstellen Sie eine benutzerdefinierte Verknüpfung, drücken Sie im Trigger die Taste, die Sie als Verknüpfung verwenden möchten, und Actionfügen Sie sie ein xte 'key Menu'. Übernehmen und testen.

Hans
quelle