Linux

st 終端:選擇時複製並點擊滑鼠右鍵粘貼

  • September 26, 2018

https://st.suckless.org/patches/clipboard/使滑鼠滾輪選擇和粘貼,但我需要在選擇滑鼠左鍵時複製,然後點擊滑鼠右鍵進行粘貼。

並擴展, ctrl-v 粘貼。

我使用 xorg、archlinux。

如何做到這一點?

滑鼠釋放處理

將滑鼠事件轉換為粘貼的常式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在某些 shell 和編輯器中已經具有特殊含義,因此您可能不希望終端攔截它,而更喜歡使用現有的快捷方式。但是,如果您真的確定要使用此新快捷方式,則必須按如下方式添加/更改該行:

   { ControlMask,          XK_v,           clippaste,      {.i =  0} },

注意XK_vnow 有一個小寫的“v”,因為它沒有Shift.

引用自:https://unix.stackexchange.com/questions/471537