回答:
rxvt-unicodeに同梱されているeval拡張機能には、このためのpaste_clipboardおよびselection_to_clipboardアクションがあり、任意のキーシムにバインドできます(こちらを参照)。
あなたの.Xresources
追加で:
URxvt.keysym.Shift-Control-V: eval:paste_clipboard
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
以前のキーバインドを無効にするには、次のものも必要です。
URxvt.keysym.Control-Meta-c: builtin-string:
URxvt.keysym.Control-Meta-v: builtin-string:
次の方法でファイルをリロードできます。
xrdb -load .Xresources
変更を有効にするには、rxvtを再起動する必要があります。
.Xresources: URxvt.perl-ext-common: default
。この答えは1として無効キーキャップを#also:unix.stackexchange.com/a/444777/8827
コードは、次のようにこれら2つのバインディングを実装します。
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;
}
あなたは使うことはできませんkeysym
から、何か他のものを再バインドするためのリソースをそれが唯一の文字列にマップ(のような何の修飾をcontrolしてalt)。
ただし、選択範囲を操作するためのメソッドを備えたPerl拡張機能を使用できます。しかし、それらを結び付けるためにPerlスクリプトを作成する必要があります。
@Ennoの回答に記載されているeval拡張機能(paste_clipboard
およびselection_to_clipboard
)を使用するには、ファイルに以下を追加します。.Xresources
URxvt.keysym.Shift-Control-V: eval:paste_clipboard
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
既存の回答はすべて質問の後半(クリップボード操作のキーバインドを新しいキーに追加する方法)を処理しますが、前半(元のキーバインドを解放する方法)には回答しません。
答えは、単純にそれらをバインドすることですbuiltin-string:
(逐語的に送信する場合は、それ以外の場合は、目的のアクションにバインドします)。すなわち.Xresources
:
URxvt.keysym.C-M-c: builtin-string:
または、コマンドラインで:
-keysym.C-M-c builtin-string: