Программы запуска XMonad при запуске в указанной рабочей области

Я пытаюсь настроить мойxmonad.hs так что, когда я начинаю сеанс, я запускаю массив различных программ в разных рабочих пространствах (например, Terminal в 1; Firefox в 2; Pidgin в 3).

Я уже посмотрел вXMonad.Actions.SpawnOn, но, какspawnOn возвращается сX () а не с общимm () Я не могу использовать его вmain = do ....

Есть ли функция, которая принимаетX-монада и возвращается сIO () или есть другой обходной путь?

 amindfv24 апр. 2013 г., 19:20
X является экземпляром Monad, поэтомуX () работает сm () - вы можете использовать do-обозначения сX () действия.

Ответы на вопрос(1)

Решение Вопроса

Обычный способ заключается в использованииstartupHook который занимаетX () действие и выполняет его при каждом запуске. Например.

main = xmonad $ defaultConfig
  { startupHook = do
      spawnOn "workspace1" "program1"
      …
      spawnOn "workspaceN" "programN"
  }
 24 апр. 2013 г., 19:21
ЗаметкаspawnOn это из пакета xmonad-contrib
 salbeira11 июн. 2012 г., 14:30
Я назвал свои рабочие пространства в соответствии с их функцией «Терминал». & Quot; Веб & Quot; & Quot; Chat & Quot; и т. д., но передача этих имен в качестве аргументов функции spawnOn не работает с некоторыми программами (например, eclipse). В настоящее время я работаю над этим с настройкой управления хуками для каждого приложения, например className =? & Quot; Firefox, & Quot; - & GT; doF (W.shift (customWorkspaces !! 1)) и порождает их с регулярным порождением
 21 февр. 2014 г., 16:37
Я получил {startupHook = do spawnOn & quot; workspace2 & quot; & Quot; Emacs & Quot; }, но программа просто запускается в первом рабочем пространстве после входа в систему или в текущем рабочем пространстве, если я перезапущу xmonad.
 26 февр. 2017 г., 12:10
1) Какие имена рабочих пространств по умолчанию? 2) это позволит запускать новые приложения при перезагрузке, а не только при новом запуске. Как это может защитить от перезапуска?

Ваш ответ на вопрос