我希望大家可以帮助我,因为我是Haskell的新手,Haskell-fu相当弱。
我正在尝试创建一个类似地震的终端,在被召唤时会下降。在大多数情况下,我认为在由simpleDrawer
(XMonad.Layout.Drawer
)管理的布局中存储一个名为urxvt的终端适用于此。我遇到的问题是绑定一个密钥,以便它会弹出我碰巧在的任何工作区。
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")
看看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