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"

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.


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.