8

I use xmonad with KDE, and want to use it's popup notifications. By default, first popup show right, but after it disappears, next popup will not show. If I add a new "Notifications" widget - it can show one more popup, but after it will be the same situation. If add such lines to xmonad config (I don't quite understand, how does it work), popups start work as expected:

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

in general part, and

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

in myManageHook.

But now, because 'className =? "Plasma-desktop"' is too general condition, very strange things happen on start. If add this lines to config after KDE loading, everything works fine. Is there any way to find exactly notifications windows, or to use this lines only after full KDE loading, or, may be, any better way to make notifications work?

Thanks you, and sorry for bad English.

mihaild
  • 280
  • 3
  • 11

1 Answers1

3

I also use xmonad and kde and the following works for 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

...