我希望你们能为我提供帮助,因为我是Haskell的新手,而Haskell-fu非常虚弱。
我正在尝试创建一个类似地震的终端,当被调用时会掉落。在大多数情况下,我认为将命名的urxvt终端存储在simpleDrawer
(XMonad.Layout.Drawer
)管理的布局中非常有效。我遇到的问题是将一个键绑定到它,这样它就会在我碰巧遇到的任何工作空间中弹出。
bringSelected
选项对我不起作用,因为我不想处理网格菜单。我尝试过的最接近的是:
raiseMaybe (spawnHere "urxvt -name drawer") (resource =? "drawer")
并且:
ifWindows (resource =? "drawer") (mapM_ focus) (spawn "urxvt -name drawer")
问题在于,两者实际上都在做相同的事情,而不是将所述窗口(带有resource =? "drawer"
)带到当前工作区中,而是使我从当前工作区中移到了上次调用它的地方。
理想情况下,我正在寻找符合以下条件的东西:
ifWindows (resource =? "drawer") ({- bring window to current workspace -})
(spawnHere "urxvt -name drawer")
答案 0 :(得分:1)
翻阅contrib文档,似乎我正在尝试重新发明轮子,因为我可以轻松地使用草稿板。这应该够了吧。
但是...如果有人对上述问题有任何想法,即使用ifWindows将另一个窗口从一个工作区拉到另一个工作区,我很想知道您的处理方式。
添加了以下myKeys:
, ("M-`", scratchpadSpawnActionTerminal myScratchTerm)
定义了ManageHook:
myScratchPadHook :: ManageHook
myScratchPadHook =
scratchpadManageHook (W.RationalRect fLeft fTop tRight fBottom)
where
fLeft = 0.0
fTop = 0.75
tRight = 1.0
fBottom = 0.25
并添加
<+> myScratchPadHook