Xmonad:按键绑定将一个窗口从另一个工作区带到当前工作区

时间:2018-09-12 21:29:21

标签: haskell key-bindings xmonad

我希望你们能为我提供帮助,因为我是Haskell的新手,而Haskell-fu非常虚弱。

我正在尝试创建一个类似地震的终端,当被调用时会掉落。在大多数情况下,我认为将命名的urxvt终端存储在simpleDrawerXMonad.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")

1 个答案:

答案 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