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

Nic*_*ick 8 linux haskell xmonad

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

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

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

提前致谢.

Nic*_*ick 8

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

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

import XMonad.Actions.SpawnOn
Run Code Online (Sandbox Code Playgroud)

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

main = do
xmonad $ defaultConfig
    {    
         manageHook = myManageHooks <+> manageSpawn <+> manageDocks <+> manageHook defaultConfig
       , startupHook = myStartupHook
       , ETC.....
Run Code Online (Sandbox Code Playgroud)

这里的关键是增加manageSpawnmanageHook线.

然后用以下内容替换你spawnspawnHere:

  , ((modMask, xK_w), spawn "chromium")
Run Code Online (Sandbox Code Playgroud)

变为:

  , ((modMask, xK_w), spawnHere "chromium")
Run Code Online (Sandbox Code Playgroud)