Я использую Xmonad-contrib Fade Inactive и xcompmgr, чтобы сделать не сфокусированные окна прозрачными.

Иногда мне бы хотелось, чтобы неактивное окно было полностью непрозрачным, например, когда я смотрю видео.

У кого-нибудь есть стратегия использования нескольких непрозрачных окон с помощью Fade Inactive?

2 ответа2

0

Я нашел решение с помощью примеров Xmonad.hs

http://code.google.com/p/xmonad/issues/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
  ]
0

Я работаю над этим. :) Если вы используете xmonad от darcs, попробуйте http://www.ece.cmu.edu/~allbery/FadeWindows.tgz. (Обратите внимание: одна вещь, которую вы будете тестировать, состоит в том, имеет ли она больше зависимостей, чем включено в tarball; это все еще в стадии разработки.) Для этого требуется недавний патч для ядра xmonad, который, я не совсем уверен, был применен в апстриме.

Этот архив должен быть распакован в ~/.xmonad и поместит два исходных файла на Haskell в ~/.xmonad/lib/XMonad/Hooks . (Не стесняйтесь распаковать в другом месте и проверить, прежде чем копировать их в нужное место.) Документация - это разметка Haddock в lib/XMonad/Hooks/FadeWindows.hs . Обратите особое внимание на то, как проверить наличие необходимого патча ManageHook.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .