我想配置XMonad,以便在窗口關注時對某個IO()
函數進行評估,這樣我就可以根據這是哪個窗口來更改環境的某些方面。我似乎無法在文檔中找到任何有關此信息的內容,但我確定它存在,因此推測我正在尋找錯誤的關鍵字。XMonad焦點鉤子
回答
最接近的東西可能是logHook :: !(X())
在XConfig
。您可以獲得焦點窗口並運行您的IO
操作來更新環境,但此鉤子被描述爲「更改窗口集時執行的操作」,因此您的updateEnv
可以在同一個窗口中連續調用多次ID(例如,當您切換窗口而不更改焦點時)。
myLogHook = gets (peek . windowset) >>= liftIO . updateEnv
where
updateEnv :: Maybe Window -> IO()
updateEnv = undefined
我認爲這是我想要的;一旦我有時間來驗證它是否有效,我會鼓勵並接受它。 –
您可能想要自定義handleEventHook
。
事情是這樣的:
myEventHook [email protected](CrossingEvent {ev_event_type=t, ev_window=win})
| t == enterNotify = do
something with win
return $ All True
| t == leaveNotify = do
something else
return $ All True
| otherwise = return $ All True
因爲'CrossingEvent'與鼠標指針綁定,所以當你使用鍵盤改變焦點時,除非你使用'XMonad.Actions.UpdatePointer'來使指針跟隨,否則它不會做任何事情。 – raymonad
@raymonad focusIn/focusOut將是正確的事件,但它似乎不可能得到它們(我嘗試使用AnyEvent)。我不知道爲什麼。 – Leiaz
@Leiaz我認爲你需要改變XMonad使用的clientMask。 ([xmonad.org/docu](http://xmonad.org/xmonad-docs/xmonad/src/XMonad-Operations.html#clientMask))。當然,有一種方法可以將'focusChangeMask'添加到它,但我不知道如何。 – anthonybrice
- 1. 焦點上,焦點
- 2. 將焦點添加到焦點子元素上的父元素
- 3. jquery焦點/焦點按鍵
- 4. xmonad無法找到模塊`XMonad':破包
- 5. XMonad on Nix - 無法找到xmonad-contrib
- 6. jQuery選擇插件:捕捉焦點打開時掛鉤
- 7. Git的pre-commit鉤子要點
- 8. 鉤子切換用戶鏈接點擊
- 9. xmonad的dynamicLog如何格式化未聚焦窗口的標題?
- 10. Xmonad多個子圖組合鍵
- 11. TSLint預先掛鉤鉤子
- 12. 開始xmonad
- 13. Linux,XMonad佈局
- 14. xmonad submap not working
- 15. Mate DE with XMonad
- 16. XMonad通過
- 17. 鉤子的ghostscript
- 18. mercurial-server鉤子
- 19. 焦點
- 20. 子窗口(CEdit)失去焦點
- 21. 給孩子的窗口焦點在IE8
- 22. WrapPanel抓住它的孩子的焦點
- 23. 焦點錯誤地由獅子保存
- 24. 子視圖焦點變化android
- 25. GridView的孩子不顯示焦點
- 26. NSButton是焦點,但沒有焦點環
- 27. Combobox焦點,殺死組合框焦點
- 28. 在AngularUI的nggrid,編輯焦點小區選擇例子並不....焦點編輯
- 29. javascript焦點()不聚焦
- 30. TreeListLookupEdit - 焦點節點
你們是不是要執行時,聚焦一個特定的窗口操作,或當集中的任何窗口?後者比前者要困難得多(我不熟悉任何提供所謂的焦點鉤子的模塊)。 – acomar
當一個特定的窗口聚焦時,如果我沒有聚焦時也可能發生某些事情,那就沒事了。 –