Запускать приложения на определенных рабочих пространствах в xmonad

4079
user63896

Я знаю, как связать определенные приложения с конкретными рабочими пространствами, используя manageHook и composeAll. То, что я ищу, - это способ порождения приложений в определенных рабочих пространствах, то есть функция с сигнатурой типа String -> workSpaceId -> X (), пример использования которой будет выглядеть примерно так:

spawnToWorkspace "emacs" "2:code" 
13

2 ответа на вопрос

9
geekosaur

Более правильный (и современный; я не думаю, что SpawnOn был в выпущенном тогда XMonad, очень много хороших вещей было только в darcs), способ сделать это -

import XMonad.Actions.SpawnOn 

а затем использовать действие

spawnOn "2:code" "emacs" 

См. Http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-SpawnOn.html для получения подробной информации.

Это все еще работает? Я нахожусь на xmonad 0.10, и использование spawnOn все еще, кажется, просто порождает приложение в текущей рабочей области ... bhh1988 11 лет назад 5
5
user63896

Хорошо, это было на самом деле проще, чем я думал:

spawnToWorkspace :: String -> String -> X () spawnToWorkspace program workspace = do spawn program  windows $ W.greedyView workspace 
Это единственное решение, которое работает, похоже, что spawnOn от XMonad-Contrib не работает с более новыми версиями XMonad. eazar001 10 лет назад 1

Похожие вопросы