Erneutes Verknüpfen von STRG-ALT- [C | V] mit STRG-UMSCHALT- [C | V] in URxvt> = 9,20

16

Seit URxvt9.20 kann Text mit Ctrl+ Alt+ in die Zwischenablage kopiert C(und auch mit Ctrl+ Alt+ von dort eingefügt werden V).

Aber ich benutze diese Bindungen schon für eine andere Sache.

Also, wie kann ich es in URxvt> = 9.20 zu Ctrl+ Shift+ C(und Ctrl+ Shift+ Vzum Einfügen) zurückbinden ?

Fauve
quelle
verwandte Frage zu SO stackoverflow.com/questions/43305190/…
anarcat

Antworten:

22

Die mit rxvt-unicode ausgelieferte eval-Erweiterung enthält hierfür paste_clipboard- und selection_to_clipboard-Aktionen, die an ein beliebiges keysym gebunden werden können (siehe hier ).

In Ihrem .Xresourceshinzufügen:

URxvt.keysym.Shift-Control-V: eval:paste_clipboard
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard

Um die vorherigen Tastenkombinationen zu deaktivieren, benötigen Sie außerdem:

URxvt.keysym.Control-Meta-c: builtin-string:
URxvt.keysym.Control-Meta-v: builtin-string:

Sie können die Datei neu laden mit:

xrdb -load .Xresources

Sie müssen rxvt neu starten, damit die Änderungen wirksam werden.

Enno
quelle
1
Dies funktionierte überhaupt nicht, bis ich dies auch hinzufügte oder bearbeitete, .Xresources: URxvt.perl-ext-common: default um #auch Tastenkappen wie folgt zu deaktivieren: unix.stackexchange.com/a/444777/8827
marinara
2

Der Code implementiert diese beiden Bindungen wie folgt:

  if (ctrl && meta && (keysym == XK_c || keysym == XK_v))
    { 
      if (keysym == XK_v)
        selection_request (ev.time, Sel_Clipboard);
      else if (selection.len > 0)
        { 
          free (selection.clip_text);
          selection.clip_text = rxvt_wcsdup (selection.text, selection.len);
          selection.clip_len = selection.len;
          selection_grab (CurrentTime, true);
        }

      return;
    }

Sie können nicht die Verwendung keysymRessource , etwas anderes zu binden, da das nur in Strings Karten (keine Modifikatoren wie controlund alt).

Sie können jedoch die Perl-Erweiterung verwenden, die Methoden zum Arbeiten mit Auswahlen enthält. Sie müssen jedoch ein Perl-Skript schreiben, um diese zusammenzufügen.

Thomas Dickey
quelle
1

Um die in @ Ennos Antwort genannten eval-Erweiterungen ( paste_clipboardund selection_to_clipboard) zu verwenden , können Sie Ihrer Datei Folgendes hinzufügen :.Xresources

URxvt.keysym.Shift-Control-V: eval:paste_clipboard
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
Spencer Miller
quelle
Dies allein beantwortet die Frage nicht wirklich. Sie können es verbessern, indem Sie beschreiben, wie die .XresourcesDatei zum Binden der Schlüssel verwendet wird, da die Antwort von Enno dies nicht tut.
G-Man sagt, dass Monica am
1

Alle vorhandenen Antworten in der zweiten Hälfte der Frage behandeln (wie keybindings für Zwischenablage , um neue Schlüssel zu addieren), aber die erste Hälfte nicht beantworten (wie man oben freizugeben die ursprünglichen keybindings).

Die Antwort ist, sie einfach zu binden builtin-string:(wenn Sie möchten, dass sie wörtlich gesendet werden; ansonsten an die gewünschte Aktion). Dh in .Xresources:

URxvt.keysym.C-M-c: builtin-string:

Oder in der Befehlszeile:

-keysym.C-M-c builtin-string:
Vladimir Panteleev
quelle