Bu Xmonad.hs örnekleri yardımıyla bir çözüm buldum
http://code.google.com/p/xmonad/issues/attachmentText?id=393&aid=4341235945524725336&name=xmonad.hs&token=cc0422d6dd7c329bce14d1f4ca93a3db
FadeIf aracılığıyla solmayan pencerelerin bir listesini oluşturabilirsiniz
bir örnek xmonad.hs böyle görünür
import XMonad
import XMonad.Hooks.FadeInactive
import Control.Monad (filterM,liftM, join)
import Data.IORef
import Data.List
import qualified Data.Set as S
import qualified XMonad.StackSet as W
import XMonad.Util.EZConfig(additionalKeys,removeKeys)
myFadeHook toggleFadeSet = fadeOutLogHook $ fadeIf (testCondition toggleFadeSet) 0.7
doNotFadeOutWindows = title =? "Call with " <||> className =? "xine" <||> className =? "MPlayer"
testCondition :: IORef (S.Set Window) -> Query Bool
testCondition floats =
liftM not doNotFadeOutWindows <&&> isUnfocused
<&&> (join . asks $ \w -> liftX . io $ S.notMember w `fmap` readIORef floats)
toggleFadeOut :: Window -> S.Set Window -> S.Set Window
toggleFadeOut w s | w `S.member` s = S.delete w s
| otherwise = S.insert w s
main = do
toggleFadeSet <- newIORef S.empty
xmonad $ defaultConfig
{
logHook = myFadeHook toggleFadeSet
, modMask = mod4Mask
} `additionalKeys`
[
((mod4Mask, xK_f), withFocused $ io . modifyIORef toggleFadeSet . toggleFadeOut
]
spawn "xprop -set _NET_WINDOW_OPACITY 4294967295"
; Çalıştırdığınızda, imleç artı işaretine dönüşecek, opak yapmak istediğiniz pencereye tıklayın. Odaklanma veya çalışma alanı değiştikten sonra genellikle tekrarlamanız gerekir, bu yüzden bu bir çözüm değil bir hack.