Bắt đầu ứng dụng trên các không gian làm việc cụ thể trong xmonad


13

Tôi biết cách liên kết các ứng dụng cụ thể với các không gian làm việc cụ thể bằng ManageHook và compose ALL. Những gì tôi đang tìm kiếm là một cách để sinh ra các ứng dụng trên các không gian làm việc cụ thể, tức là một hàm có chữ ký loại String -> workSpaceId -> X ()có sử dụng ví dụ sẽ là một cái gì đó như:

spawnToWorkspace "emacs" "2:code"

Câu trả lời:


9

Chính xác hơn (và hiện đại; tôi không nghĩ SpawnOn đã có trong XMonad được phát hành hồi đó, rất nhiều thứ hay ho chỉ có ở darcs) để làm điều này là

import XMonad.Actions.SpawnOn

và sau đó sử dụng hành động

spawnOn "2:code" "emacs"

Xem http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-SpawnOn.html để biết chi tiết.


6
Điều này vẫn còn hoạt động? Tôi đang sử dụng xmonad 0.10 và đang sử dụng spawnOn dường như vẫn chỉ sinh ra ứng dụng trên không gian làm việc hiện tại ...
bhh1988

5

Được rồi, nó thực sự dễ dàng hơn tôi nghĩ:

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

1
Đây là giải pháp duy nhất có vẻ hiệu quả, có vẻ như spawnOntừ XMonad-Contrib đã bị hỏng với các phiên bản mới hơn của XMonad.
eazar001
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.