2012-02-06 27 views
6

मैं कीबोर्ड को फ्लोट या सिंक करने के लिए कीबोर्ड का उपयोग करना पसंद करता हूं। दुर्भाग्यवश, जब फ्लोट किया जाता है, तो खिड़कियां स्थानांतरित या आकार में नहीं आती हैं, इसलिए वहां थोड़ा दृश्य संकेत है कि वे अभी भी टाइल नहीं किए गए हैं। आदर्श रूप से, फ्लोट परत में स्थानांतरित होने पर, मैं उन्हें स्क्रीन के केंद्र में ले जाउंगा और/या आकार बदलूंगा।एक्सोनैड: जब खिड़की तैरते हैं, तो इसे स्थानांतरित करें या आकार बदलें

सबसे अच्छा समाधान नीचे दिए गए फ़ंक्शन (या कुछ समान) के साथ मिलकर काम करेगा, जिसे मैं एक कीबाइंड के साथ कॉल करता हूं - मैं सामान्य रूप से सामान्य रूप से काम करने के लिए माउस क्लिक के माध्यम से फ़्लोट करना चाहता हूं।

toggleFloat = withFocused (\windowId -> do 
           { floats <- gets (W.floating . windowset); 
           if windowId `M.member` floats 
           then withFocused $ windows . W.sink 
           else float windowId }) 

(कोड चोरी, मैं अभी भी हास्केल का कोई समझना होता है: ग)

संपादित करें: नीचे संशोधित कोड में keysMoveWindowTo सामान वास्तव में सिर्फ जगह ले सकता है "windowId फ्लोट" है, जो यह ज़रूरत से ज़्यादा बनाता है।

उत्तर

6

मुझे लगता है कि आपके पास xmonad-contrib पैकेज स्थापित है। तो फिर तुम XMonad.Actions.FloatKeys

मुझे लगता है पर एक नज़र संशोधित समारोह हो जाएगा लेना चाहिए:

... 
import XMonad.Actions.FloatKeys 
... 

toggleFloat = withFocused (\windowId -> do 
           { floats <- gets (W.floating . windowset); 
           if windowId `M.member` floats 
           then withFocused $ windows . W.sink 
           else do 
            keysMoveWindowTo (x, y) (gx1, gy1) windowId 
            keysResizeWindow (dx, dy) (gx2, gy2) windowId 
           } 
         ) 

जहां x, y, dx, dy, gx1, gy1, gx2, gy2 अपनी सेटिंग्स हैं।
डॉक्स में उल्लिखित ऑपरेटर %Data.Ratio से है; a % b का मतलब संख्यात्मक a और denominator b के साथ तर्कसंगत संख्या है।

import Data.Ratio ((%)) 
+1

Haha 30 मिनट पहले मैं अपने अकथनीय, masochistic इंकार मेरी xmonad.hs में अभी तक अधिक योगदान सामान जोड़ने पर विचार करने से उबरे, FloatKeys तुरंत मिल गया है, के लिए आसपास fiddled: आप आयात करने के लिए आप इसे उपयोग करना चाहते हैं है एक मिनट और एन/एमएन/एम GUYS कहने के लिए यहां वापस पहुंचे। लेकिन StackOverflow.com – user1191815

+0

पर धन्यवाद कोई सम्मान नहीं होगा ... धन्यवाद हालांकि !! – user1191815

+1

मैं ऐसा करने की कोशिश कर रहा था और पता चला कि जब आप चाबियाँ करते हैं तो विंडोज ऑटो-फ्लोट करते हैं MowWindow या KeyResize विंडो। तो मेरे पास सिर्फ उन लोगों के लिए कीबाइंडिंग है, साथ ही 'sinkFocused = फ़ोकस किए गए $ विंडोज़। फिर से डूबने के लिए W.sink'। – Jeff

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^