Я вирішив рішення за допомогою прикладів Xmonad.hs
http://code.google.com/p/xmonad/isissue/attachmentText?id=393&aid=4341235945524725336&name=xmonad.hs&token=cc0422d6dd7c329bce14d1f4ca93a3db
Ви можете створити список вікон, які не зникають через FadeIf
приклади xmonad.hs виглядали б так
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"
; коли ви запустите його, курсор зміниться на перехрестя, натисніть на вікно, яке ви хочете зробити непрозорим. Зазвичай вам доведеться повторити це після зміни фокусу чи робочої області, тому це злом, а не рішення.