2012-08-24 27 views
6

Używam xmonad z KDE i chcę użyć jego wyskakujących powiadomień. Domyślnie pierwsze wyskakujące okienko wyświetla się dobrze, ale po jego zniknięciu kolejne popup nie pojawi się. Jeśli dodaję nowy widżet "Powiadomienia" - może pokazać jeszcze jedno okienko wyskakujące, ale po tym stanie się to samo. Jeśli dodać te linie do xmonad config (ja nie bardzo rozumiem, jak to działa), pop-upy rozpocząć pracę zgodnie z oczekiwaniami:Powiadomienia wyskakujące z KDE w xmonad

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

w części ogólnej i

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

w myManageHook.

Ale teraz, ponieważ "className =? "Plasma-desktop" jest zbyt ogólnym warunkiem, bardzo dziwne rzeczy dzieją się na starcie. Jeśli dodasz ten wiersz do konfiguracji po wczytaniu KDE, wszystko działa poprawnie. Czy istnieje sposób na znalezienie dokładnie okien powiadomień lub użycie tych wierszy dopiero po pełnym załadowaniu KDE lub, być może, lepszym sposobem na to, aby powiadomienia działały?

Dziękuję i przepraszam za zły angielski.

Odpowiedz

2

Używam również xmonad i kde oraz następujących utworów dla mnie.

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 

...