要讓xdotool轉發鼠標點擊,您需要確保它使用--window
參數。例如,如果你的窗口ID是79693135,那麼xdotool click --window 79693135 3
就是你想要的。
以下基本xmonad.hs
說明如何做到這一點,以獲得無鍵盤鼠標手勢正常工作:
import XMonad
import qualified XMonad.Actions.CycleWS as Workspace
import XMonad.Actions.MouseGestures (mouseGesture, Direction2D(..))
import qualified XMonad.Util.EZConfig as EZ
import XMonad.Util.Run (safeSpawn)
import qualified Data.Map as Map
mouseGestureButton :: Button
mouseGestureButton = button3 -- right click
sendMouseClickToWindow :: Window -> X()
sendMouseClickToWindow win =
safeSpawn
"xdotool" ["click", "--window", show win, show mouseGestureButton]
myMouseGestures :: [([Direction2D], Window -> X())]
myMouseGestures =
[ ([R], const Workspace.nextWS) -- move to the next workspace
, ([L], const Workspace.prevWS) -- move to the previous workspace
, ([], sendMouseClickToWindow)
]
addMouseGestures :: XConfig a -> XConfig a
addMouseGestures =
flip EZ.additionalMouseBindings
[((0, mouseGestureButton), mouseGesture $ Map.fromList myMouseGestures)]
main = xmonad $ addMouseGestures def
注:這不是使用按鈕1這是一個好主意,因爲這將有選擇干擾文本和通常與按鈕1一起使用的其他鼠標拖動功能。因此使用按鈕3(與OP一樣)絕對是正確的想法。
您對此@BruceBerry有任何進一步的改進嗎? – vincent