XMonad在指定的工作区中启动时生成程序

sal*_*ira 11 haskell xmonad

我正在尝试配置我,xmonad.hs这样当我开始我的会话时,我会在不同的工作区上启动一系列不同的程序(例如1中的终端; 2中的Firefox; 3中的Pidgin).

我已经调查过了XMonad.Actions.SpawnOn,但是作为一个spawnOn返回X ()而不是一个共同的m ()我不能使用它main = do ....

是否有一个函数采用X-monad并返回IO ()或是否有另一种解决方法?

Mat*_*nov 10

常见的方法是使用startupHook,X ()它在每次启动时执行操作并执行它.例如

main = xmonad $ defaultConfig
  { startupHook = do
      spawnOn "workspace1" "program1"
      …
      spawnOn "workspaceN" "programN"
  }
Run Code Online (Sandbox Code Playgroud)

  • 注意`spawnOn`来自xmonad-contrib包 (4认同)
  • 我有{startupHook = do spawnOn"workspace2""emacs"},但程序刚刚在登录后的第一个工作区启动,或者当我重新启动xmonad时的当前工作区. (3认同)
  • 1)什么是默认工作区名称?2)这将启动重新加载的新应用程序,而不仅仅是一个新的启动.怎么能防止重启? (2认同)