Heute fand ich diesen sehr schönen Artikel von Steven Losh, in dem er einige produktivitätssteigernde Tastaturzuordnungen vorstellt. Darunter befindet sich eine dynamische Zuordnung der linken und rechten Umschalttaste.
Die Idee
Wenn Shift_L oder Shift_R ohne eine zusätzliche Taste gedrückt werden, werden sie '(' und ')' zugeordnet, ansonsten funktionieren sie wie gewohnt.
Das Problem
All dies macht er unter OSX. Ich versuche das gleiche unter Linux zu erreichen. Dies ist nicht ohne Weiteres möglich, da meines Wissens nicht mit xmodmap eine Taste nur für Shift_L und eine andere für Shift als Zusatztaste konfiguriert werden kann.
Ich habe ein bisschen gegoogelt und Leute gefunden, die versucht haben, dasselbe unter Windows zu tun, was anscheinend mit AutoHotKey möglich ist, aber ich konnte nichts für Linux finden.
Gibt es eine Möglichkeit, dies unter Linux zu lösen?
Antworten:
Beeindruckend! Der Kommentar des Benutzers teika kazura zu der ursprünglichen Frage ist ganz richtig - dies ist nicht nur effektiv ein Duplikat dieser anderen Frage , sondern die dort angegebene Antwort ("use xcape ") löst dieses Problem!
Nachdem ich das xcape-Repo geklont und kompiliert hatte (ich musste zuerst libXtst-devel auf meiner Fedora-Box installieren), konnte ich mit dem folgenden Befehl das genaue gewünschte Verhalten erzielen:
Nach zugegebenermaßen flüchtigen Tests scheint es sehr gut zu funktionieren . Nett!
Andere Optionen
Wenn Sie die Umschalttaste als Mausmodifikator verwenden (dh, wenn Sie jemals auf etwas klicken), möchten Sie wahrscheinlich die Timeout-Option von xcape einbeziehen und einen komfortablen Timeout-Wert finden, damit die in Kombination mit der Maus verwendete Solo-Umschalttaste gedrückt wird erzeugen keine falschen Klammern. Aus der xcape README:
Wenn Sie also das
-t
Flag mit einem für Sie geeigneten Timeout-Wert einfügen, können Sie mit der Maus beitimeout ms
gedrückter Umschalttaste mindestens Millisekunden lang auf die Umschalttaste klicken .( Nochmals ein Dank an teika kazura für den Hinweis auf die andere Frage und an don_crissti für die ursprüngliche Antwort dort.)
quelle
-t <timeout ms>
Datei heißt es : " Wenn Sie eine Taste länger als dieses Zeitlimit gedrückt halten, generiert xcape kein Schlüsselereignis. Die Standardeinstellung ist 500 ms." ... Es sei denn, xcape stört das Key-Down-Ereignis des Modifikators (ich kann mich nicht erinnern), sollte dies verhindern, dass unechte Tastendrücke erzeugt werden, und Sie können es dennoch als Mausauswahl-Modifikator verwenden, solange Sie es lang genug halten .-t
Flagge vorzuschlagen !Es ist eine interessante Herausforderung, und ich stimme einer zu, für die xinput nicht perfekt geeignet zu sein scheint. Ich habe einige Zeit damit verbracht, an den Fähigkeiten von xmodmap herumzuspielen, und war so frustrierend nahe daran, das zu erreichen, was Sie tun möchten ... ohne es tatsächlich zu schaffen, dorthin zu gelangen.
Mit xmodmap ist es möglich, parenleft als verschobenes Tastensymbol auf der linken Umschalttaste zuzuweisen:
welches sorta funktioniert, zumindest beim testen auf meiner fedora 17 box, aber nicht in befriedigender weise. Ich stellte fest, dass mit dieser Zuordnung die Umschalttaste immer noch normal funktionierte und keine falschen Parens wiedergab, aber (frustrierend) auch keine zuverlässigen linken Parens erzeugte. Aus irgendeinem Grund scheint der Schlüssel nicht zuverlässig ändern sich , was seine verschobene Zuordnung bricht ... zunächst. Aus welchem Grund auch immer, ein paar Mal nacheinander die linke Verschiebung zu drücken, würde dazu führen, dass die Produktion von linken Parens beginnt, jedoch erst nach dem vierten oder fünften Druck.
Ein Verhalten, das mir jedoch aufgefallen ist, dass Sie möglicherweise als "nah genug" -Analog arbeiten können: Nach dem Zuordnen von parenleft und parenright zu Shift_L und Shift_R konnte ich Parens zuverlässig eingeben, indem ich über beide Shift-Tasten "rollte" - Mit anderen Worten, mit diesem Mapping:
Wenn Sie Shift_L gefolgt von Shift_R drücken und dann beide loslassen, wird ein Rechts- oder ein Links-Paren in die andere Richtung ausgegeben. (Die Parenzuordnungen könnten natürlich umgekehrt werden; ich konnte mich nicht so recht entscheiden, wie ich mich "natürlicher" fühlte.)
Das war so nah, wie ich dem genauen Verhalten, das Sie suchen, nahe gekommen bin. Es scheint nicht möglich zu sein, nur xmodmap zu verwenden.
Ich war halbwegs überzeugt, dass es einfach nicht möglich ist, Punkt, aber dann wurde mir klar, dass es mindestens eine Taste gibt, die genau so funktioniert , wie Sie es beschreiben: Die Super-Taste ("Windows"). Unter Gnome Shell ist es eine Modifikationstaste (mod4), die einen anderen Effekt erzeugt (Overview auslöst), wenn sie alleine gedrückt wird. Zumindest theoretisch ist es also möglich, die gewünschte Umschalttastenüberladung auf dieselbe Weise zu implementieren.
... Aber ich habe absolut keine Ahnung, wie das gemacht würde oder wie invasiv es wäre, jedes Mal, wenn Sie die Umschalttaste drücken, in der notwendigen Verarbeitung festzusacken. :-)
quelle
Vielleicht schauen Sie sich ein xbindkeys an, um die Tastenzuordnung zu ändern, oder suchen Sie einfach ein gutes Codierungs-Plugin für vim oder gedit oder was auch immer Sie verwenden oder selbst codieren möchten.
Tools zum Ändern von Keymaps /programming/6812/mapping-my-custom-keys-in-debian
Vielleicht http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO-14.html
und schreiben Sie ein Skript, um es zu aktivieren.
quelle