Rebobinado CTRL-ALT- [C | V] a CTRL-SHIFT- [C | V] en URxvt> = 9.20

16

Desde URxvt9.20, el texto puede copiarse al portapapeles con Ctrl+ Alt+ C(y también pegarse con Ctrl+ Alt+ V).

Pero, ya uso estos enlaces para otra cosa.

Entonces, ¿cómo puedo volver a vincular, en URxvt> = 9.20 a Ctrl+ Shift+ C(y Ctrl+ Shift+ Vpara pegar)?

fauve
fuente
pregunta relacionada en SO stackoverflow.com/questions/43305190/…
anarcat

Respuestas:

22

La extensión eval incluida con rxvt-unicode tiene acciones de paste_clipboard y selection_to_clipboard para esto, que pueden vincularse a cualquier keyym (ver aquí ).

En tu .Xresourcescomplemento:

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

Para deshabilitar las combinaciones de teclas anteriores, también necesitará:

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

Puede recargar el archivo con:

xrdb -load .Xresources

Deberá reiniciar rxvt para que los cambios surtan efecto.

Enno
fuente
1
esto no funcionó en absoluto hasta que también agregué o .Xresources: URxvt.perl-ext-common: default edité esto para deshabilitar también las teclas como esta respuesta: unix.stackexchange.com/a/444777/8827
marinara
2

El código implementa estos dos enlaces como este:

  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;
    }

No puede usar el keysymrecurso para volver a vincular otra cosa, ya que solo se asigna a cadenas (sin modificadores como controly alt).

Sin embargo, puede usar la extensión Perl, que tiene métodos para trabajar con selecciones. Pero tendrías que escribir un guión de Perl para unirlos.

Thomas Dickey
fuente
1

Para usar las extensiones eval ( paste_clipboardy selection_to_clipboard) mencionadas en la respuesta de @ Enno, puede agregar lo siguiente a su .Xresourcesarchivo:

URxvt.keysym.Shift-Control-V: eval:paste_clipboard
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
Spencer Miller
fuente
Por sí solo, esto realmente no responde la pregunta. Puede mejorarlo describiendo cómo usar el .Xresourcesarchivo para vincular las teclas, ya que la respuesta de Enno no.
G-Man dice 'reinstalar a Mónica' el
1

Todas las respuestas existentes manejan la segunda mitad de la pregunta (cómo agregar combinaciones de teclas para las operaciones del portapapeles a las nuevas teclas), pero no responden la primera mitad (cómo liberar las combinaciones de teclas originales).

La respuesta es simplemente vincularlos builtin-string:(si desea que se envíen textualmente; de ​​lo contrario, a la acción deseada). Es decir, en .Xresources:

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

O, en la línea de comando:

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