마우스 릴리스 처리

마우스 릴리스 처리

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

가운데 버튼 대신 오른쪽 버튼을 붙여넣으려면 다음으로 변경한 Button2Button3다시 컴파일하세요.

            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으로 변경했습니다. 마우스 오른쪽 버튼을 클릭할 때 붙여넣기 기능이 실행되도록 하려면 이 작업을 수행하면 됩니다.

맙소사 나는 세인트를 사랑해요. 이렇게 쉽게 구성할 수 있는 유일한 단말기입니다.

관련 정보