https://st.suckless.org/patches/clipboard/마우스 휠을 선택하여 붙여넣게 하는데 마우스 왼쪽 버튼을 선택할 때 복사한 다음 마우스 오른쪽 버튼을 클릭할 때 붙여넣어야 합니다.
확장하려면 Ctrl-V를 눌러 붙여넣으세요.
저는 xorg,archlinux를 사용합니다.
이 목표를 달성하는 방법은 무엇입니까?
답변1
마우스 릴리스 처리
마우스 이벤트를 붙여넣기로 변환하는 루틴은 brelease()
다음과 같습니다 x.c
.
void
brelease(XEvent *e)
{
if (IS_SET(MODE_MOUSE) && !(e->xbutton.state & forceselmod)) {
mousereport(e);
return;
}
if (e->xbutton.button == Button2)
selpaste(NULL);
else if (e->xbutton.button == Button1)
mousesel(e, 1);
}
가운데 버튼 대신 오른쪽 버튼을 붙여넣으려면 다음으로 변경한 Button2
후 Button3
다시 컴파일하세요.
if (e->xbutton.button == Button3)
키보드 단축키 정의
키보드 단축키는 shortcuts
의 배열에 있습니다 config.h
. 클립보드 붙여넣기가 Ctrl- Shift- 에 매핑되었습니다 V.
static Shortcut shortcuts[] = {
/* mask keysym function argument */
...
{ TERMMOD, XK_V, clippaste, {.i = 0} },
Ctrl- v일부 쉘과 편집기에서는 이미 특별한 의미를 갖고 있으므로 터미널이 이를 가로채는 것을 원하지 않고 기존 단축키를 사용하는 것을 선호할 수도 있습니다. 하지만 이 새로운 단축키를 사용하기로 결정했다면 다음과 같이 줄을 추가/변경해야 합니다.
{ ControlMask, XK_v, clippaste, {.i = 0} },
이제는 XK_v
소문자 "v"가 없습니다 Shift.
답변2
@JigglyNaga에게 많은 감사를 드립니다. 하지만 현재(2022년 8월) 이 구성은 config.def.h/config.h에서 수행할 수 있습니다.
/*
* Internal mouse shortcuts.
* Beware that overloading Button1 will disable the selection.
*/
static MouseShortcut mshortcuts[] = {
/* mask button function argument release */
{ XK_ANY_MOD, Button3, selpaste, {.i = 0}, 1 },
{ ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} },
{ XK_ANY_MOD, Button4, ttysend, {.s = "\031"} },
{ ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} },
{ XK_ANY_MOD, Button5, ttysend, {.s = "\005"} },
};
셀프 서비스 붙여넣기를 위해 Button2를 Button3으로 변경했습니다. 마우스 오른쪽 버튼을 클릭할 때 붙여넣기 기능이 실행되도록 하려면 이 작업을 수행하면 됩니다.
맙소사 나는 세인트를 사랑해요. 이렇게 쉽게 구성할 수 있는 유일한 단말기입니다.