Iniciar aplicativos em áreas de trabalho específicas no xmonad

13

Sei como associar aplicativos específicos a espaços de trabalho específicos usando manageHook e componeAll. O que estou procurando é uma maneira de gerar aplicativos em espaços de trabalho específicos, ou seja, uma função com assinatura de tipo String -> workSpaceId -> X ()cujo exemplo de uso seria algo como:

spawnToWorkspace "emacs" "2:code"
user63896
fonte

Respostas:

9

A maneira mais correta (e moderna; eu não acho que o SpawnOn estava no XMonad lançado naquela época, muitas coisas boas eram apenas em darcs) para fazer isso é

import XMonad.Actions.SpawnOn

e depois use a ação

spawnOn "2:code" "emacs"

Veja http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-SpawnOn.html para obter detalhes.

geekosaur
fonte
6
Isso ainda funciona? Eu estou em xmonad 0,10 e usando spawnOn ainda parece apenas gerar o aplicativo na área de trabalho atual ...
bhh1988
5

Ok, foi realmente mais fácil do que eu pensava:

spawnToWorkspace :: String -> String -> X ()
spawnToWorkspace program workspace = do
                                      spawn program     
                                      windows $ W.greedyView workspace
user63896
fonte
1
Esta é a única solução que parece funcionar, parece que o spawnOnXMonad-Contrib está quebrado com as versões mais recentes do XMonad.
Eazar001 11/11