2015-05-20 85 views
3

ST terminalpatch for scrolling back。除了「PageUp」和「PageDown」之外,我想更新所述補丁以啓用鼠標滾輪上下信號。我懷疑config.h的一個小改動是需要的,但我沒有終端代碼的經驗,因此我請求幫助。補貼滾動回吮吸ST終端支持鼠標滾輪

在源代碼中,在config.h這些行出現:

static Mousekey mshortcuts[] = { 
    /* button    mask   string */ 
    { Button4,    XK_ANY_MOD,  "\031" }, 
    { Button5,    XK_ANY_MOD,  "\005" }, 
}; 

因此,很明顯,我們知道將Button4/5。另外,我們有這些:

static Shortcut shortcuts[] = { 
    /* mask     keysym   function  argument */ 
    [...] 
    { ShiftMask,   XK_Page_Up,  kscrollup,  {.i = -1} }, 
    { ShiftMask,   XK_Page_Down, kscrolldown, {.i = -1} }, 
}; 

所以,天真,我一個假設增加另外兩個原始(一個車輪時,一個車輪下)會做的伎倆。但是,什麼?


注:知道suckless建議使用終端複用器如tmux。我已經用過了。但是,有時(很少)我只想使用沒有tmux的終端,此功能將非常有用。 請不要評論/使用tmux回答,這不是這個問題的意思。

回答

2

並非如此簡單。當有人想要鼠標軌跡球的左/右滾動時,偶爾會出現此問題。

表格的左列是X事件。這些僅限於預定義符號的組合。

Button4和Button5被提及,因爲那些通常用於通過鼠標事件。相當長的一段時間, 1999年修改xterm之前使用了一個資源文件(patch #120)以使其成爲內置功能。

可能的X事件被放置在C頭文件中— X.h —和X源代碼中的表格;因此沒有提供輪滑鼠標事件。例如,X Toolkit庫中有一個table,它列出了所有可能性(對於使用X Toolkit的客戶端,例如xterm)。 xev使用標題定義。

如果X以不同的方式支持滾輪鼠標事件,它可能會爲此使用新的函數調用,因爲現有信息可能以不允許輕鬆擴展的方式打包到位字段中。

+0

雖然真的不是我正在尋找的答案,但確實給了我一個清楚的問題解釋。謝謝。 – Sardathrion

+0

所以有一種方法可以做到這一點,因爲有一個[補丁](http://st.suckless.org/patches/scrollback)允許這樣做。然而,你的答案仍然是我的問題中最好的答案,所以它仍然被接受。 – Sardathrion

0

suckless網站,有一些scroll back patches允許滾動使用Shift+MouseWheel以及完整的鼠標滾動。除了滾動功能以外,最後一個補丁可能會打破其他mkeys