我將 xmonad 與 2 個顯示幕和XMonad.Layout.IndependentScreens. 它作業正常,但我遇到的一個問題是,當我將視窗移動到另一臺顯示幕時,它會失去焦點
負責放置的代碼在這里:
[((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f))
| (key, sc) <- zip [xK_e, xK_w, xK_r] [0..] -- switched e and w to accomodate my monitor setup
, (f, m) <- [(W.view, 0), (W.shift, controlMask)]]
但是,我對 Haskell 很陌生,無法理解它
如何修改上面的代碼來實作我想要的?
uj5u.com熱心網友回復:
我不太清楚你真正想要什么。我假設您想將當前聚焦的視窗移動到其他作業區/監視器并將焦點保持在該視窗上。不是嗎?
查看 snipet,我不確定您喜歡哪種鍵系結。讓我解釋
-- This comprehension list expands as below
[ ( (m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f) )
| (key, sc) <- zip [xK_e, xK_w, xK_r] [0..]
, (f, m) <- [(W.view, 0), (W.shift, controlMask)]
]
-- mod 0 e moves focus to workspace 0 (but not the focused window)
-- mod ctrl e moves focused window to workspace 0 (but doesn't move the focus)
-- mod 0 w moves focus to workspace 1 (but not the focused window)
-- etc...
[ ( (0 .|. modm, xK_e), screenWorkspace 0 >>= flip whenJust (windows . W.view) )
, ( (controlMask .|. modm, xK_e), screenWorkspace 0 >>= flip whenJust (windows . W.shift) )
, ( (0 .|. modm, xK_w), screenWorkspace 1 >>= flip whenJust (windows . W.view) )
, ( (controlMask .|. modm, xK_w), screenWorkspace 1 >>= flip whenJust (windows . W.shift) )
, ( (0 .|. modm, xK_r), screenWorkspace 2 >>= flip whenJust (windows . W.view) )
, ( (controlMask .|. modm, xK_r), screenWorkspace 2 >>= flip whenJust (windows . W.shift) )
]
如您所見,移動焦點和移動焦點視窗有不同的鍵系結。我猜你想要一個鍵系結同時執行這兩個操作。我假設您想Mod CTRL w/e/r移動到其他作業區。在這種情況下,您需要通過以下方式修改該串列
[ ( (controlMask .|. modm, key), screenWorkspace sc >>= flip whenJust (\wid -> windows $ W.view wid . W.shift wid) )
| (key, sc) <- zip [xK_e, xK_w, xK_r] [0..]
]
由于上面的代碼有點神秘,我建議在頂層定義一個輔助函式
moveCurrentWindowsAndFocusIt :: WorkspaceId -> X ()
moveCurrentWindowsAndFocusIt wid = windows $ W.view wid . W.shift wid
-- This is the where your keybindings are
mykeybindings =
...
[ ( (controlMask .|. modm, key), screenWorkspace sc >>= flip whenJust moveCurrentWindowsAndFocusIt )
| (key, sc) <- zip [xK_e, xK_w, xK_r] [0..]
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/387019.html
上一篇:fmap替換決議樹中的文字
