Override xmonad Fade inativo por uma janela

0

Eu uso o Fade Inactive e xcompmgr da Xmonad-contrib para tornar as janelas desfocadas transparentes.

Ocasionalmente, gostaria de ter uma janela inativa totalmente opaca, como quando estou assistindo a um vídeo.

Alguém tem uma estratégia para ter várias janelas opacas usando o Fade Inactive?

    
por Zaki Manian 20.03.2011 / 19:44

2 respostas

0

Eu descobri uma solução com a ajuda dos exemplos do Xmonad.hs

link

Você pode criar uma lista de janelas que não estão desbotadas via FadeIf

um exemplo xmonad.hs ficaria assim

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
  ]
    
por 31.03.2011 / 00:55
0

Estou trabalhando nisso. :) Se você está rodando xmonad de darcs, tente link . (Note que uma coisa que você estará testando é se tem mais dependências do que as que estão incluídas no tarball; ainda é um trabalho em andamento.) Isso requer um patch recente no núcleo xmonad, que eu não tenho certeza se foi aplicado a montante ainda.

Este arquivo deve ser descompactado no seu ~/.xmonad e colocará dois arquivos de origem do Haskell em ~/.xmonad/lib/XMonad/Hooks . (Sinta-se à vontade para descompactar em outro local e verificar antes de copiá-los para o local correto.) Documentação é a marcação Haddock em lib/XMonad/Hooks/FadeWindows.hs . Observe especialmente como verificar o patch necessário do ManageHook.

    
por 20.03.2011 / 20:03

Tags