এ খুঁজছি 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
( কেন আপনি খুব ভাল জন্য একটি হাস্কেল শিখেন না? )