我如何在 Xmonad 的 manageHook 中链接多个操作?

How can I chain multiple actions at manageHook in Xmonad?

我试图在从托盘图标打开 skype/discord 时获得效果,将程序 window 移动到特定工作区 "11:w-" 并将当前屏幕也切换到该工作区。我的问题是我无法获得正确的类型。

myManageHook = composeAll . concat $
   [ [ className   =? t --> sequence [doShift "11:w-", screenWorkspace "11:w-"] | t <- rarelyUsedApps] ]

rarelyUsedApps = ["Skype", "discord"]

此代码产生错误

Error detected while loading xmonad configuration file: /home/i/.xmonad/xmonad.hs

xmonad.hs:268:33:
    Couldn't match type `[Data.Monoid.Endo WindowSet]'
                  with `Data.Monoid.Endo
                          (W.StackSet
                             WorkspaceId (Layout Window) Window ScreenId ScreenDetail)'
    Expected type: Query
                     (Data.Monoid.Endo
                        (W.StackSet
                           WorkspaceId (Layout Window) Window ScreenId ScreenDetail))
      Actual type: Query [Data.Monoid.Endo WindowSet]
    In the return type of a call of `sequence'
    In the second argument of `(-->)', namely
      `sequence [doShift "11:w-", screenWorkspace "11:w-"]'
    In the expression:
      className =? t
      --> sequence [doShift "11:w-", screenWorkspace "11:w-"]

xmonad.hs:268:60:
    Couldn't match type `X' with `Query'
    Expected type: Query (Data.Monoid.Endo WindowSet)
      Actual type: X (Maybe WorkspaceId)
    In the return type of a call of `screenWorkspace'
    In the expression: screenWorkspace "11:w-"
    In the first argument of `sequence', namely
      `[doShift "11:w-", screenWorkspace "11:w-"]'

xmonad.hs:268:76:
    Couldn't match expected type `ScreenId' with actual type `[Char]'
    In the first argument of `screenWorkspace', namely `"11:w-"'
    In the expression: screenWorkspace "11:w-"
    In the first argument of `sequence', namely
      `[doShift "11:w-", screenWorkspace "11:w-"]'

Please check the file for errors.

我刚刚意识到上面代码中的第一个错误是我将工作区名称而不是工作区 ID 传递给 screenWorkspace "11:w-"。还, screenWorkspace 对于我的目标来说是一个完全错误的函数。

反正发现wiki里已经有我要的了 https://wiki.haskell.org/Xmonad/General_xmonad.hs_config_tips#Shift_an_app_to_a_workspace_and_view_it