我将xmonad与KDE一起使用,并希望使用它的弹出通知。默认情况下,第一个弹出窗口显示正确,但在它消失后,下一个弹出窗口将不会显示。如果我添加一个新的“通知”小部件 - 它可以再显示一个弹出窗口,但之后会出现相同的情况。 如果将这些行添加到xmonad config(我不太明白,它是如何工作的),弹出窗口会按预期开始工作:
, manageHook = ((className =? "krunner" <||> className =? "Plasma-desktop") >>= return .
not --> manageHook kde4Config) <+>
(kdeOverride --> doFloat) <+> myManageHook
一般来说,和
[ className =? "Plasma-desktop" --> doFloat <+> doF W.focusDown ]
在myManageHook中。
但是现在,因为'className =? “等离子桌面”过于笼统,开始时会发生很奇怪的事情。如果在加载KDE后将此行添加到配置中,一切正常。 有没有办法找到确切的通知窗口,或只在完全加载KDE后使用这一行,或者,可能是,任何更好的方式使通知工作?
谢谢你,对不好的英语感到抱歉。
答案 0 :(得分: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
...