2012-08-24 33 views
6

我使用xmonad与KDE,并且想要使用它的弹出通知。默认情况下,第一个弹出窗口显示正确,但在消失后,下一个弹出窗口不会显示。如果我添加一个新的“通知”窗口小部件 - 它可以再显示一个弹出窗口,但是之后会出现相同的情况。 如果添加这样的行xmonad配置(我不太了解,它是如何工作),符合市场预期弹出窗口开始工作:xmonad中的KDE popup通知

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

,并

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

但现在,因为'className =? “等离子桌面”的状况过于普遍,开始时会发生非常奇怪的事情。如果在KDE加载后添加这行到配置,一切工作正常。 有没有什么方法可以找到确切的通知窗口,或只有在完整的KDE加载后才使用这些行,或者可能是任何更好的方式来使通知工作?

谢谢你,对不起英语不好。

回答

2

我也使用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 

...