এ খুঁজছি XMonad এর contrib প্যাকেজ , আপনি পাবেন 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 , কীবিন্ডিংগুলি যুক্ত করা দেখুন )।
নোট করুন যে এক্সমোনাদে উইন্ডোটি সর্বাধিক করার কোনও সত্যিকার অর্থে নেই । আপনি যখন বর্ণিত হিসাবে জিনিসগুলি সেট আপ করবেন তখন আপনার Mod4+ fনিচের মত কাজ করবেন:
- যদি "ফায়ারফক্স" এর সাথে ক্লাসের সাথে একটি উইন্ডো মিলছে তবে এটি মনোনিবেশ করা হবে এবং মাস্টার হিসাবে সেট করা হবে, আপনার সাম্প্রতিক লেআউটের উপর নির্ভর করে বড় উইন্ডো হবে
- যদি কোনও উইন্ডো মেলে না, ফায়ারফক্স তৈরি হবে এবং মাস্টার হিসাবে সেট হবে ।
পূর্ণবিস্তার চয়ন করে emulated করা যাবে 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 ()এবং এটি একটি কীতে আবদ্ধ হতে পারে।
এর )সাথে কোড লাইনে ইডিআইটি মিসিং>>
সম্পাদনা 2 modm -> modMask।
এডিট 3 এটি আশাবাদী কাজ করে।xmonad.hs
( কেন আপনি খুব ভাল জন্য একটি হাস্কেল শিখেন না? )