Запускайте програми на конкретних робочих просторах у xmonad


13

Я знаю, як пов’язати конкретні програми з конкретними робочими просторами за допомогою managHook та composeAll. Що я шукаю - це спосіб нерестувати додатки на конкретних робочих просторах, тобто функцію з підписом типу, String -> workSpaceId -> X ()чий приклад використання буде чимось на зразок:

spawnToWorkspace "emacs" "2:code"

Відповіді:


9

Більш правильний (і сучасний; я не думаю, що SpawnOn тоді був у випущеному XMonad, дуже багато хороших речей було лише в дарках) спосіб зробити це

import XMonad.Actions.SpawnOn

а потім скористайтеся дією

spawnOn "2:code" "emacs"

Докладні відомості див. У розділі http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-SpawnOn.html .


6
Це все ще працює? Я перебуваю на xmonad 0.10 і використовую spawnOn все ще, здається, просто породив додаток у поточній робочій області ...
bhh1988

5

Гаразд, насправді було простіше, ніж я думав:

spawnToWorkspace :: String -> String -> X ()
spawnToWorkspace program workspace = do
                                      spawn program     
                                      windows $ W.greedyView workspace

1
Це єдине рішення, яке, здається, працює, виявляється, що spawnOnвід XMonad-Contrib порушено новіші версії XMonad.
eazar001
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.