XMonad:按下生成键时具有焦点的SpawnOn工作空间

时间:2012-05-25 09:58:54

标签: linux haskell xmonad

我想让我的程序在屏幕上产生焦点,当它完成加载时按下的键绑定不在当前焦点的屏幕上。

为什么: 我目前的设置是Arch Linux + XMonad,我让它在6台显示器上运行。我已经使用XMonad大约一年了,我唯一的问题是需要一段时间才能打开的程序。例如,我第一次开始使用铬时需要3到几秒钟才能加载。我按下我的键绑定chrome,然后转到另一个屏幕做其他事情。但是当镀铬加载时,它会加载到屏幕上,当前聚焦在屏幕上,而不是在按下生成键绑定时聚焦的屏幕上。

我的haskell技能很好......不存在。我以前在Lisp中编程并在C,python和JavaScript上花了很多时间,所以我确定如果需要的话我可以把它拿起来(所以请在答案中明确说明haskell样本。)

提前致谢。

1 个答案:

答案 0 :(得分:8)

我找到了自己问题的答案。

首先,您必须添加到您的导入:

import XMonad.Actions.SpawnOn

然后在你的主要功能下有类似的东西:

main = do
xmonad $ defaultConfig
    {    
         manageHook = myManageHooks <+> manageSpawn <+> manageDocks <+> manageHook defaultConfig
       , startupHook = myStartupHook
       , ETC.....

此处的关键是在manageSpawn行中添加了manageHook

然后将spawn替换为spawnHere

  , ((modMask, xK_w), spawn "chromium")

变为:

  , ((modMask, xK_w), spawnHere "chromium")