Mulai aplikasi pada ruang kerja tertentu di xmonad

13

Saya tahu cara mengaitkan aplikasi spesifik dengan ruang kerja tertentu menggunakan manageHook dan composeAll. Apa yang saya cari adalah cara untuk menelurkan aplikasi pada ruang kerja tertentu, yaitu fungsi dengan tipe tanda tangan String -> workSpaceId -> X ()yang contoh penggunaannya akan seperti:

spawnToWorkspace "emacs" "2:code"
pengguna63896
sumber

Jawaban:

9

Yang lebih benar (dan modern; saya tidak berpikir SpawnOn ada di XMonad yang dirilis saat itu, banyak sekali hal-hal baik yang hanya ada dalam darcs) cara untuk melakukan ini adalah dengan

import XMonad.Actions.SpawnOn

dan kemudian gunakan aksinya

spawnOn "2:code" "emacs"

Lihat http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-SpawnOn.html untuk detailnya.

geekosaurus
sumber
6
Apakah ini masih berfungsi? Saya menggunakan xmonad 0.10 dan menggunakan spawnOn sepertinya masih akan menelurkan aplikasi di ruang kerja saat ini ...
bhh1988
5

Oke, itu sebenarnya lebih mudah dari yang saya kira:

spawnToWorkspace :: String -> String -> X ()
spawnToWorkspace program workspace = do
                                      spawn program     
                                      windows $ W.greedyView workspace
pengguna63896
sumber
1
Ini adalah satu-satunya solusi yang tampaknya berfungsi, tampaknya spawnOndari XMonad-Contrib rusak dengan versi XMonad yang lebih baru.
eazar001