我正在嘗試切換switchInDirection()來自視窗管理器(dwm,用 c 編寫)。由於似乎無法從命令列控制協同操作,因此我嘗試從 wm 觸發適當的組合鍵。
場景:在super+,
wm 捕獲的(逗號)事件上,它應該觸發 synergys 正在偵聽的另一個組合鍵。由於某種原因XTestFakeKeyEvent
(xlib 函數)根本不起作用,並且XSendEvent
用修飾符模擬按鍵不起作用,所以我必須對 xdotool 進行系統呼叫:
xdotool keyup comma key control+alt+shift+F11 // note the required comma key up;
它似乎可以作為 POC 工作,但在某些時候它會導致協同作用中的段落錯誤。請注意,在沒有 xdotool 的情況下觸發相同的組合鍵不會導致段錯誤。
如果有的話,我有什麼選擇?
編輯:super+,
一個明顯的解決方案是先透過協同 監聽事件,並處理那裡的邏輯(無論是切換螢幕還是向 dwm 發送另一個組合鍵)。這應該可行,但意味著伺服器和客戶端的 dwm 配置不同,因為super+,
仍應由客戶端中的 dwm 處理(否則透過其本機鍵盤控制客戶端將無法按預期工作)。