मैं dynamicLogWithPP
XMonad.Hooks.DynamicLog
से xmonad के तहत स्टेटस बार के रूप में dzen2 के साथ उपयोग कर रहा हूं। बार में प्रदर्शित होने वाली चीजों में से एक यह है कि वर्तमान में अजीब (यदि कोई हो) में चल रहे ट्रैक में शेष समय है। इस जानकारी प्राप्त करना आसान है:xmonad का लॉगआउट लेआउट घटनाओं (केवल) प्रतिक्रिया के बजाय सेट अंतराल पर चलाया जा सकता है?
audStatus :: Player -> X (Maybe String)
audStatus p = do
info <- liftIO $ tryS $ withPlayer p $ do
ispaused <- paused
md <- getMetadataString
timeleftmillis <- (-) <$> (getCurrentTrack >>= songFrames) <*> time
let artist = md ! "artist"
title = md ! "title"
timeleft = timeleftmillis `quot` 1000
(minutes, seconds) = timeleft `quotRem` 60
disp = artist ++ " - " ++ title ++ " (-"++(show minutes)++":"++(show seconds)++")" -- will be wrong if seconds < 10
audcolor False = dzenColor base0 base03
audcolor True = dzenColor base1 base02
return $ wrap "^ca(1, pms p)" "^ca()" (audcolor ispaused disp)
return $ either (const Nothing) Just info
तो मुझे लगता है कि छड़ी कर सकते हैं ppExtras
में है और यह ठीक काम करता है — यह केवल जब logHook
चलाने हो जाता है चलाने हो जाता है, और कहा कि केवल जब एक उपयुक्त घटना पाइक नीचे आता है क्या होता है सिवाय । तो प्रदर्शन लंबे समय तक संभावित रूप से स्थिर है, जब तक कि मैं (उदा।) वर्कस्पेस स्विच नहीं करता।
ऐसा लगता है कि कुछ लोग सिर्फ दो डेजन बार चलाते हैं, जिसमें एक शेल स्क्रिप्ट से आउटपुट पाइप हो जाता है। क्या नियमित अपडेट करने का यही एकमात्र तरीका है? या यह xmonad के भीतर से किया जा सकता है (बिना पागल/हैकी प्राप्त किए बिना)?
ईटीए: मैं इस कोशिश की है, जो लगता के रूप में अगर यह बेहतर काम करना चाहिए की तुलना में यह करता है:
- XMonad से अद्यतन के लिए एक Tchan बनाते हैं, और एक समारोह मतदान दुस्साहसिक से अद्यतन के लिए एक और;
PP
फ़ील्डDynamicLog
से पहले टीसीएचएन को लिखने के लिएppOutput
फ़ील्ड सेट करें;- ऑडियस-मतदान समारोह कांटा और इसे दूसरे टीसीएचएन में लिखा है;
- दोनों टीचन्स से पढ़ने के लिए एक फ़ंक्शन फोर्क (यह जांचना कि वे खाली नहीं हैं, पहले), और आउटपुट को संयोजित करते हैं।
अपडेट चैनल से पढ़ा जाता है और एक समय पर फैशन में संसाधित किया, परन्तु दुस्साहसिक से नई जानकारी शायद ही हर पांच या तो सेकंड में सबसे अच्छा सभी — पर पंजीकृत हैं। ऐसा लगता है जैसे इन लाइनों के साथ कुछ दृष्टिकोण काम करना चाहिए, हालांकि।
मैंने अपने उत्तर को 'प्रस्तावित' टीसीएचएन समाधान - और दूसरों को एकाधिक धागे रखने के आधार पर कुछ स्पष्टीकरण के साथ अपडेट किया है - ठीक से काम नहीं करता है। –
अद्यतन के लिए धन्यवाद। –