2012-08-24 16 views
6

Io uso xmonad con KDE e voglio usare le sue notifiche popup. Per impostazione predefinita, il primo popup mostra a destra, ma dopo scompare, il prossimo popup non verrà visualizzato. Se aggiungo un nuovo widget "Notifiche" - può mostrare un altro popup, ma dopo sarà la stessa situazione. Se aggiungi queste righe a xmonad config (io non capisco, come funziona), popup iniziare il lavoro come previsto:Notifiche popup KDE in xmonad

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

nella parte generale, e

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

in myManageHook.

Ma ora, perché 'className =? "Plasma-desktop" "è una condizione troppo generale, cose molto strane accadono all'inizio. Se aggiungi queste righe alla configurazione dopo il caricamento di KDE, tutto funziona correttamente. C'è un modo per trovare esattamente le finestre di notifica, o usare queste linee solo dopo aver caricato KDE, o, può essere, un modo migliore per far funzionare le notifiche?

Grazie, e mi dispiace per il cattivo inglese.

risposta

2

Uso anche xmonad e kde e il seguente funziona per me.

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 

...