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"

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.


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

1
Esta es la única solución que parece funcionar, parece que spawnOndesde XMonad-Contrib se rompe con las nuevas versiones de XMonad.
eazar001
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.