เริ่มแอปพลิเคชันบนพื้นที่ทำงานเฉพาะใน xmonad


13

ฉันรู้วิธีเชื่อมโยงแอปพลิเคชันเฉพาะกับพื้นที่ทำงานเฉพาะโดยใช้ ManageHook และ composeAll สิ่งที่ฉันกำลังมองหาคือวิธีที่จะวางไข่แอปพลิเคชันบนพื้นที่ทำงานเฉพาะเช่นฟังก์ชั่นที่มีลายเซ็นประเภทString -> workSpaceId -> X ()ซึ่งตัวอย่างการใช้จะเป็นดังนี้:

spawnToWorkspace "emacs" "2:code"

คำตอบ:


9

ยิ่งถูกต้อง (และทันสมัยกว่าฉันไม่คิดว่า SpawnOn จะอยู่ใน XMonad ที่วางจำหน่ายในตอนนั้นสิ่งที่น่ากลัวมากมายเป็นเพียงใน darcs) วิธีการทำเช่นนี้คือ

import XMonad.Actions.SpawnOn

จากนั้นใช้การดำเนินการ

spawnOn "2:code" "emacs"

ดูhttp://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-SpawnOn.htmlเพื่อดูรายละเอียด


6
ยังใช้งานได้หรือไม่ ฉัน xmonad 0.10 และการใช้ spawnOn ยังดูเหมือนว่าจะเพียงแค่วางไข่โปรแกรมประยุกต์บนพื้นที่ทำงานปัจจุบัน ...
bhh1988

5

โอเคจริง ๆ แล้วง่ายกว่าที่ฉันคิด:

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

1
นี่เป็นทางออกเดียวที่ดูเหมือนว่าใช้งานได้ดูเหมือนว่าspawnOnจาก XMonad-Contrib จะถูกทำลายด้วย XMonad รุ่นใหม่กว่า
eazar001
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.