8

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

原因: 我当前的设置是 Arch Linux + XMonad,我让它在 6 台显示器上运行。我已经使用 XMonad 大约一年了,我唯一的问题是打开需要一点时间的程序。例如,我第一次启动 chromium 时需要 3 秒才能加载。我按下我的 chrome 键绑定,然后转到另一个屏幕做其他事情。但是,当 chrome 加载时,它会加载到我当前关注的屏幕上,而不是在按下 spawn 键绑定时关注的屏幕上。

我的haskell技能很好……不存在。我以前用 Lisp 编程过,并且在 C、python 和 JavaScript 上花了很多时间,所以我确信如果需要我可以把它捡起来(所以当涉及到答案中的 haskell 示例时,请清楚)。

提前致谢。

4

1 回答 1

9

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

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

import XMonad.Actions.SpawnOn

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

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

这里的关键是manageSpawn在行中manageHook添加。

然后将您spawn的 s替换为spawnHere

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

变成:

  , ((modMask, xK_w), spawnHere "chromium")
于 2012-05-25T11:33:16.960 回答