Iniciar aplicaciones en espacios de trabajo específicos en xmonad

13

Sé cómo asociar aplicaciones específicas con espacios de trabajo específicos mediante manageHook y composeAll. Lo que estoy buscando es una forma de generar aplicaciones en espacios de trabajo específicos, es decir, una función con firma de tipo String -> workSpaceId -> X ()cuyo uso de ejemplo sería algo así como:

spawnToWorkspace "emacs" "2:code"
usuario63896
fuente

Respuestas:

9

La forma más correcta (y moderna; no creo que SpawnOn estuviera en el XMonad lanzado en ese entonces, una gran cantidad de cosas buenas era solo en términos oscuros) para hacer esto es

import XMonad.Actions.SpawnOn

y luego usa la acción

spawnOn "2:code" "emacs"

Ver http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-SpawnOn.html para más detalles.

geekosaur
fuente
66
¿Esto todavía funciona? Estoy en xmonad 0.10 y uso spawnOn todavía parece generar la aplicación en el espacio de trabajo actual ...
bhh1988
5

De acuerdo, en realidad fue más fácil de lo que pensaba:

spawnToWorkspace :: String -> String -> X ()
spawnToWorkspace program workspace = do
                                      spawn program     
                                      windows $ W.greedyView workspace
usuario63896
fuente
1
Esta es la única solución que parece funcionar, parece que spawnOndesde XMonad-Contrib se rompe con las nuevas versiones de XMonad.
eazar001