Avviare applicazioni su aree di lavoro specifiche in xmonad


13

So come associare applicazioni specifiche a aree di lavoro specifiche usando manageHook e composeAll. Quello che sto cercando è un modo per generare applicazioni su aree di lavoro specifiche, ovvero una funzione con firma del tipo il String -> workSpaceId -> X ()cui esempio di utilizzo sarebbe qualcosa del tipo:

spawnToWorkspace "emacs" "2:code"

Risposte:


9

Il più corretto (e moderno; non credo che SpawnOn fosse nel XMonad rilasciato all'epoca, un sacco di cose buone era solo in darc) modo di farlo è quello di

import XMonad.Actions.SpawnOn

e quindi usa l'azione

spawnOn "2:code" "emacs"

Vedi http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-SpawnOn.html per i dettagli.


6
Funziona ancora? Sono su Xmonad 0.10 e utilizzo spawnOn sembra ancora generare l'applicazione sull'area di lavoro corrente ...
bhh1988

5

Ok, in realtà è stato più facile di quanto pensassi:

spawnToWorkspace :: String -> String -> X ()
spawnToWorkspace program workspace = do
                                      spawn program     
                                      windows $ W.greedyView workspace

1
Questa è l'unica soluzione che sembra funzionare, sembra che spawnOnda XMonad-Contrib sia rotto con le versioni più recenti di XMonad.
eazar001,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.