Всплывающие уведомления KDE в xmonad

Я использую xmonad с KDE и хочу использовать его всплывающие уведомления. По умолчанию первое всплывающее окно отображается правильно, но после его исчезновения следующее всплывающее окно не отображается. Если я добавлю новый виджет "Уведомления" - он может показать еще одно всплывающее окно, но после него будет та же ситуация. Если в конфиг xmonad добавить такие строчки (не совсем понимаю, как это работает), то всплывающие окна начинают работать как положено:

, manageHook = ((className =? "krunner" <||> className =? "Plasma-desktop") >>= return .
    not --> manageHook kde4Config) <+>
    (kdeOverride --> doFloat) <+> myManageHook

в общей части и

[ className =? "Plasma-desktop"      --> doFloat <+> doF W.focusDown ]

в моемManageHook.

Но теперь, поскольку 'className =? "Плазменный рабочий стол" - слишком общее состояние, при запуске происходят очень странные вещи. Если добавить эти строки в конфиг после загрузки KDE, все работает нормально. Есть ли способ найти именно окна уведомлений, или использовать эти строки только после полной загрузки KDE, или, может быть, какой-то лучший способ заставить уведомления работать?

Спасибо, и извините за плохой английский.


person mihaild    schedule 24.08.2012    source источник


Ответы (1)


Я также использую xmonad и kde, и у меня работает следующее.

import XMonad  
import XMonad.Config.Desktop
import XMonad.Hooks.EwmhDesktops  
import XMonad.Hooks.ManageDocks -- dock/tray mgmt  
import XMonad.Hooks.DynamicLog -- statusbar  
import XMonad.Actions.CycleWS -- workspace-switching  
import XMonad.Util.EZConfig -- append key/mouse bindings  
import XMonad.Util.Run(spawnPipe)  
import XMonad.Config.Kde  
import XMonad.Layout  
import XMonad.Layout.NoBorders ( noBorders, smartBorders )  
import XMonad.Layout.Spacing  
import System.IO  

myManageHook = composeAll  
  [ className =? "yakuake" --> doFloat  
  , className =? "Yakuake" --> doFloat  
  , className =? "Kmix" --> doFloat  
  , className =? "kmix" --> doFloat  
  , className =? "plasma" --> doFloat  
  , className =? "Plasma" --> doFloat  
  , className =? "plasma-desktop" --> doFloat  
  , className =? "Plasma-desktop" --> doFloat  
  , className =? "krunner" --> doFloat  
  , className =? "ksplashsimple" --> doFloat  
  , className =? "ksplashqml" --> doFloat  
  , className =? "ksplashx" --> doFloat  
  ]  

...
...

main = do  
  xmonad $ ewmh desktopConfig  
    { modMask = mod4Mask  
    , terminal = "konsole"  
    , manageHook = manageDocks <+> myManageHook <+> manageHook desktopConfig  
    , borderWidth = 1
    , normalBorderColor = "#abc123"
    , focusedBorderColor = "#456def"
    , layoutHook = avoidStruts myLayout
    , workspaces = myWorkspaces
    , startupHook = startupHook desktopConfig
    , logHook = logHook' xmproc
    }
    `additionalKeysP` myKeys

...
person Community    schedule 21.11.2013