我想让我的程序在屏幕上产生焦点,当它完成加载时按下的键绑定不在当前焦点的屏幕上。
为什么: 我目前的设置是Arch Linux + XMonad,我让它在6台显示器上运行。我已经使用XMonad大约一年了,我唯一的问题是需要一段时间才能打开的程序。例如,我第一次开始使用铬时需要3到几秒钟才能加载。我按下我的键绑定chrome,然后转到另一个屏幕做其他事情。但是当镀铬加载时,它会加载到屏幕上,当前聚焦在屏幕上,而不是在按下生成键绑定时聚焦的屏幕上。
我的haskell技能很好......不存在。我以前在Lisp中编程并在C,python和JavaScript上花了很多时间,所以我确定如果需要的话我可以把它拿起来(所以请在答案中明确说明haskell样本。)
提前致谢。
答案 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")