Запускайте приложения на определенных рабочих пространствах в xmonad


13

Я знаю, как связать определенные приложения с конкретными рабочими пространствами, используя manageHook и composeAll. То, что я ищу, - это способ порождения приложений в определенных рабочих пространствах, то есть функция с сигнатурой типа String -> workSpaceId -> X (), пример использования которой будет выглядеть примерно так:

spawnToWorkspace "emacs" "2:code"

Ответы:


9

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

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.