XMonad के कंट्रीब पैकेज को देखकर , आप पाएंगे XMonad.Actions.WindowGo
, जो निम्नलिखित फ़ंक्शन का निर्यात करता है :
runOrRaiseMaster :: String -> Query Bool -> X ()
जो प्रोग्राम को चलाने के लिए एक स्ट्रिंग तर्क लेता है , जैसे "फ़ायरफ़ॉक्स"; और एक बूलियन क्वेरी जिसका उपयोग यह पता लगाने के लिए किया जाता है कि यह पहले से ही चल रहा है , X11 गुणों के माध्यम से, उदाहरण के लिए (className =? "Firefox")
( XMonad.Actions.WindowGo
पृष्ठ के शीर्ष देखें )।
इसलिए, आपको केवल runOrRaiseMaster "firefox" (className =? "Firefox")
उस कुंजी को बांधना है जिसे आप चाहते हैं, जैसा कि इसकेXMonad.Doc.Extending
माध्यम से समझाया गया है
((modMask, xK_f ), runOrRaiseMaster "firefox" (className =? "Firefox"))
Data.Map
आपके कॉन्फ़िगरेशन के प्रमुख बाइंडिंग के भाग के रूप में (विवरण आपकी सेटिंग के इस तरीके से भिन्न होते हैं, अर्थात, आपके संपूर्ण xmonad.hs
, Keybindings जोड़ना देखें )।
ध्यान दें कि XMonad में एक विंडो को अधिकतम करने में कोई वास्तविक अर्थ नहीं है । जब आप चीजों को समझाते हैं, तो आपके पास Mod4+ fकार्य इस प्रकार होंगे:
- यदि "फ़ायरफ़ॉक्स" से मेल खाने वाले क्लासनाम के साथ एक विंडो है, तो इसे ध्यान केंद्रित किया जाएगा और मास्टर पर सेट किया जाएगा , अर्थात, आपके हाल के लेआउट के आधार पर , बड़ी विंडो होगी
- अगर कोई विंडो मैच नहीं करती है, तो फ़ायरफ़ॉक्स को स्पॉन किया जाएगा और मास्टर में सेट किया जाएगा ।
Full
कॉलिंग के बाद लेआउट का चयन करके अधिकतमकरण का अनुकरण किया जा सकता है runOrRaiseMaster
, जैसा कि यहां वर्णित है :
("M-<F1>", sendMessage $ JumpToLayout "Full")
(ध्यान दें कि यह उदाहरण XMonad.Util.EZConfig
आसान कीबाइंडिंग परिभाषाओं को अनुमति देता है)
इन दोनों चीजों का संयोजन भी संभव है। दोनों प्रकार के हैं X ()
, अर्थात, वे एक्स मोनाड में हैं । का उपयोग करना >>
, जो प्रकार का है (साथ :t (>>)
में जांचें ghci
)
(>>) :: Monad m => m a -> m b -> m b
हमारे पास (runOrRaiseMaster "firefox" (className =? "Firefox")) >> (sendMessage $ JumpToLayout "Full")
दो X ()
प्रकारों के संयोजन के रूप में X ()
भी है, और यह एक कुंजी के लिए बाध्य हो सकता है।
EDIT )
कोड लाइन में गुम है>>
EDIT2 modm
-> modMask
।
Edit3 यह xmonad.hs
उम्मीद है कि काम करता है।
( आप अच्छे के लिए हास्केल क्यों नहीं सीखते? )