我正在尝试配置我的xmonad.hs
,以便在启动会话时在不同的工作区域中启动一系列不同的程序(例如1中的终端;2中的Firefox;3中的Pidgin)。
我已经研究了XMonad.Actions.SpawnOn
,但由于spawnOn
返回一个X()
而不是常见的m ()
,所以我不能在main = do ...
中使用它。
是否有一个函数接受X
-monad并返回IO()
,或者是否有其他解决方法?
通常的方法是使用 startupHook,它接受一个 X ()
的动作,并在每次启动时执行。
main = xmonad $ defaultConfig
{ startupHook = do
spawnOn "workspace1" "program1"
…
spawnOn "workspaceN" "programN"
}
spawnOn
函数来自于 xmonad-contrib 包。 - amindfv
X ()
可以与m ()
一起使用 - 您可以在X ()
操作中使用 do-notation。 - amindfv