it-swarm.com.de

Tastaturkürzel zum Einfügen der primären Auswahl

Gibt es eine Standard- oder herkömmliche Tastenkombination zum Einfügen der primären Auswahl?

Ich möchte einen Text auswählen und zu einer anderen App gehen, um ihn einzufügen ohne den Inhalt meiner Zwischenablage zu verwerfen. Ich möchte lieber meine Finger auf der Tastatur lassen, als zur Maus zu gehen, den Mauszeiger zu finden, an der gewünschten Stelle zu positionieren und mit der mittleren Maustaste zu klicken.

Wenn es nichts Konventionelles gibt oder wenn es anwendungsspezifisch ist und von vielen nicht unterstützt wird, gibt es eine Problemumgehung, um dies global zum Laufen zu bringen? (Oder zumindest in mehr Anwendungen.)

39
Roger Pate

Das Senden von virtuellen Tastendrücken funktioniert bei mir nicht (siehe Kommentare ), aber diese Antwort hat mich dazu inspiriert, nach ähnlichen Lösungen zu suchen. Das Senden eines "Text" -Ereignisses mit xvkbd ignoriert den aktuellen Status Ihrer physischen Tastatur:

sh -c 'xsel | xvkbd -xsendevent -file - 2>/dev/null'

xvkbd -text verwendet einige Backslash-Sequenzen, sodass -file funktioniert, anstatt mit Escape-Zeichen zu tanzen. xvkbd gibt auch einen Warnungstext zu Modifikatoren aus, der jedoch für diese Verwendung irrelevant zu sein scheint (aber ich wollte ihn nicht in ~/.xsession-errors sehen).

Ich habe dies mit System> Preferences> Keyboard Shortcuts an eine Verknüpfung gebunden.

Beachten Sie, dass Sie die Pakete xsel und xvkbd installiert haben müssen:

Sudo apt-get install xsel xvkbd
32
Roger Pate

Sie erhalten dies durch die kombinierte Verwendung der Programme xdotool ( zum Installieren klicken ) und xsel ( zum Installieren klicken =).

xdotool kann das Eingeben in ein Fenster simulieren. xsel gibt den Inhalt der PRIMARY-Auswahl aus (standardmäßig); Der folgende Shell One Liner macht den Trick:

 xdotool type `xsel`

Um dies mit dem Menüpunkt System-> Preferences-> Keyboard Shortcuts an eine beliebige Taste zu binden, muss sie in einen Shell-Aufruf eingeschlossen werden:

 sh -c 'xdotool type --clearmodifiers -- "`xsel`"'

Die Eingabe von xdotool funktioniert bei einigen Programmen nicht. Beachten Sie die Hinweise in der xdotool-Dokumentation .

7
Riccardo Murri

Ich suchte nach einer Antwort auf genau diese Frage und fand diese Antwort das besagt das Shift+Insert arbeitet daran, die primäre Auswahl einzufügen. Ich arbeite für mich Einfacher.

5
Anne

Das Aufrufen von xdotool click --clearmodifiers 2 simuliert das Klicken mit der mittleren Maustaste. Dies funktioniert viel besser als die Verwendung von xsel (zumindest für mich). Sie müssen jedoch die Maus positionieren, bevor Sie tippen ...

2
Robert Jakob

Ein weiterer xdotool-Vorschlag, der in Debian Jessie 8.7 (Januar 2017) funktioniert:

xdotool click --delay 0 --clearmodifiers 2
  • xdotool verarbeitet im Gegensatz zu xvkbd Mehrbyte-Strings (p.e. UTF-8).
  • xdotool click simuliert einen tatsächlichen Klick, so dass Sie nicht selbst klicken müssen, um an der Mausposition einzufügen, wie Sie es bei Verwendung von xdotool type oder xvkbd getan hätten.

Das einzige Problem ist, dass --clearmodifiers einen beliebigen Modifikator (Strg/Alt/Umschalt/Meta) "drückt", den Sie nach der Simulation des Klicks verwenden. Selbst mit --delay 0 (anstelle von 12 ms) dauert die Ausführung des Befehls etwas. Wenn Sie die Tasten vorzeitig loslassen, werden Ihre Modifikatoren erneut "gedrückt" und bleiben dort hängen, bis Sie die eigentliche Taste erneut drücken und loslassen.

Also musst du ein bisschen "langsam" sein (50ms?), Um deine Modifikatoren freizugeben, wenn du welche verwendest.

Sie können dies testen, indem Sie Ihre Tastenkombination einrichten, sie in einem Texteditor verwenden und dann eine Taste drücken (z. B. a oder einen Pfeil). Der Buchstabe sollte in Kleinbuchstaben angezeigt werden. Wenn etwas anderes passiert, sind Sie zu schnell und ein Modifikator bleibt hängen (S. Shift, wenn es in Großbuchstaben geschrieben ist, Strg, wenn Sie den gesamten Text ausgewählt haben, Alt, wenn Sie ein Menü geöffnet haben). Drücken Sie die Modifikatoren erneut und lassen Sie sie wieder los, um sie zurückzusetzen.

Wenn Sie zu schnell sind, können Sie den Vorschlag von ilkerk verwenden:

sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0  "`xsel`"'

Dann müssen Sie sie in weniger als 300 ms loslassen und eine halbe Sekunde warten, bis der Text angezeigt wird.

Wenn Sie xdotool type verwenden, wird der Text so eingefügt, als ob Sie an der Position des Textcursors und nicht am Mauszeiger tippen. Sie können es in click ändern, wenn Sie das übliche Verhalten beim Klicken mit der mittleren Maustaste bevorzugen.

(Dieser Beitrag wurde so gestaltet, dass Neulinge die in den Kommentaren verteilten Puzzleteile nicht mehr teilen müssen.)

1
Chema

Ich hatte Probleme mit den Lösungen, die das Einfügen der PRIMARY Auswahl simulieren, also habe ich stattdessen eine Verknüpfung hinzugefügt, die kopiert die PRIMARY Auswahl zu CLIPBOARD. Nachdem ich meine Verknüpfung verwendet habe, füge ich die CLIPBOARD auf die übliche Weise mit Ctrl+V, Ctrl+Shift+V oder Shift+Insert ein, je nach Anwendung.

Der Befehl zum Kopieren der PRIMARY Auswahl in die CLIPBOARD lautet

sh -c 'xsel --output --primary | xsel --input --cliboard'

die ich an Ctrl+Insert (beliebige Auswahl) in den Gnome-Shortcut-Einstellungen unter System Settings -> Devices -> Keyboard binde

Zusammenfassung der Probleme mit anderen Lösungen: Ich habe die Lösungen xsel | xvkbd ... und xsel | xdotool ... ausprobiert, aber festgestellt, dass sie nicht sehr gut funktionieren, da sie die Eingabe simulieren die PRIMARY Auswahl Zeichen für Zeichen, was nicht dasselbe ist wie Einfügen mit mittlerem Klick. Zu den Problemen gehören: Es gibt eine lange Verzögerung, während eine große Auswahl Zeichen für Zeichen eingefügt wird. Wenn Sie das Einfügen rückgängig machen möchten, müssen Sie es zeichenweise rückgängig machen, was langsam ist. Wenn Sie "tote Schlüssel" verwenden, wird alles durcheinander gebracht, z. "Einfügen" "e erzeugt ë; Das xvkdb verarbeitet Unicode-Zeichen nicht korrekt.

Warnung: Diese Lösung überschreibt den vorhandenen CLIPBOARD Inhalt, aber das OP hat nach Lösungen gefragt, die den vorhandenen CLIPBOARD Inhalt beibehalten.

1
ntc2

Ich hatte das gleiche Problem und die Internetsuche half mir nicht viel. Das Problem beim Simulieren von Klick 2 ist ärgerlich, da OP erwähnt wurde.

Das Problem mit den oben vorgeschlagenen xdotool und xsel ist, dass Sie immer noch eine andere Taste drücken, wenn xdotool mit dem "Tippen" beginnt. Das führt nicht immer zu irgendeiner Ausgabe. Wenn Sie es beispielsweise an den Schlüssel "Einfügen" binden, sendet xdotool Schlüssel, während Ihr Finger die Taste "Einfügen" drückt, was nichts bewirkt.

Unten finden Sie eine Problemumgehung, um sie an einen Tastendruck zu binden:

sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0  "`xsel`"'

es ist nicht perfekt, aber es funktioniert. Jetzt haben Sie 0,3 Sekunden Zeit, um die Auswahl des Tastendrucks zu beenden (und die Taste zu drücken).

0
ilkerk