xmobarमैं प्रवेश करने के तुरंत बाद एक अजीब व्यवहार का अनुभव कर रहा हूं xmonad। जब मैं xmonad(से .xinitrc, मैं एक्सडीएम का उपयोग करता हूं) मेरी xmobarप्रकट होती है, लेकिन यह या तो विंडो स्टैक के ऊपर या नीचे नहीं है । एक बार जब मैं एक एप्लिकेशन शुरू करता हूं (उदाहरण के लिए दबाकर टर्मिनल एमुलेटर Mod + Shift + Return) तो एप्लिकेशन पूरी स्क्रीन का उपयोग करता है, जैसे xmobarकि नीचे था। फिर मैं दबाता हूं Mod + Bऔर कुछ भी नहीं होता है, एक बार जब मैं Mod + Bदूसरी बार दबाता हूं xmobarतो एप्लिकेशन विंडो का आकार कम करके शीर्ष पर पहुंच जाता है।
उसके बाद Mod + Bशेष xmonadसत्र के लिए सही तरीके से काम करता है , अर्थात यह कम (उठाता / दिखाता है) करता है xmobar।
मुझे भरोसा है कि मैंने कुछ गलत किया है। मेरी xmonad.hsतरह दिखता है:
import XMonad
import XMonad.Hooks.SetWMName
import XMonad.Hooks.DynamicLog
main = do
xmonad =<< statusBar "xmobar" myPP toggleStrutsKey defaultConfig
{ terminal = "urxvt"
, focusFollowsMouse = True
, clickJustFocuses = False
, borderWidth = 1
, modMask = mod4Mask
, workspaces = myworkspaces
, normalBorderColor = "#dddddd"
, focusedBorderColor = "#00dd00"
, manageHook = mymanager
, startupHook = setWMName "LG3D"
}
myPP = xmobarPP { ppOutput = putStrLn
, ppCurrent = xmobarColor "#336433" "" . wrap "[" "]"
--, ppHiddenNoWindows = xmobarColor "grey" ""
, ppTitle = xmobarColor "darkgreen" "" . shorten 20
, ppLayout = shorten 6
--, ppVisible = wrap "(" ")"
, ppUrgent = xmobarColor "red" "yellow"
}
toggleStrutsKey XConfig { XMonad.modMask = modMask } = (modMask, xK_b)
myworkspaces = [ "code"
, "web"
, "media"
, "irc"
, "random"
, "mail"
, "docs"
, "music"
, "root"
]
mymanager = composeAll
[ className =? "gimp" --> doFloat
, className =? "vlc" --> doFloat
]
जबकि मेरे .xmobarrcरूप की शुरुआत इस प्रकार है:
Config {
-- appearance
font = "xft:Bitstream Vera Sans Mono:size=9:bold:antialias=true"
, bgColor = "black"
, fgColor = "#646464"
, position = Top
, border = BottomB
, borderColor = "#646464"
-- layout
, sepChar = "%" -- delineator between plugin names and straight text
, alignSep = "}{" -- separator between left-right alignment
, template = "%battery% | %multicpu% | %coretemp% | %memory% | %dynnetwork% | %StdinReader% }{ %date% || %kbd% "
-- general behavior
, lowerOnStart = False -- send to bottom of window stack on start
, hideOnStart = False -- start with window unmapped (hidden)
, allDesktops = True -- show on all desktops
, overrideRedirect = True -- set the Override Redirect flag (Xlib)
, pickBroadest = False -- choose widest display (multi-monitor)
, persistent = True -- enable/disable hiding (True = disabled)
-- plugins (i do not use any)
, commands = [ -- actually several commands are in here
]
}
मैंने कई संयोजनों की कोशिश की:
, lowerOnStart =
, hideOnStart =
(सच / सच, सच / गलत, गलत / सच्चा और गलत / गलत जैसा अब दिखाया गया है)। लेकिन इससे पहले कि मैं Mod + Bदो बार प्रेस करता हूं व्यवहार नहीं बदलता है। मेरा मानना है कि मैंने xmonadकिसी तरह गलतफहमी की है , xmobarलेकिन यह सिर्फ एक अनुमान है।
मेरी .xinitrcमदद हो सकती है:
#!/bin/sh
if test -d /etc/X11/xinit/xinitrc.d
then
# /etc/X11/xinit/xinitrc.d is actually empty
for f in /etc/X11/xinit/xinitrc.d/*
do
[ -x "$f" ] && source "$f"
done
unset f
fi
# uk keyboard
setxkbmap gb
xrdb .Xresources
xscreensaver -no-splash &
# java behaves badly in non-reparenting window managers (e.g. xmonad)
export _JAVA_AWT_WM_NONREPARENTING=1
# set the background (again, because qiv uses a different buffer)
/usr/bin/feh --bg-scale --no-fehbg -z /usr/share/archlinux/wallpaper/a*.jpg
# pulse audio for alsa
then
/usr/bin/start-pulseaudio-x11
fi
exec xmonad
statusBarऔर बस ओवरराइट कर सकते हैंhandleEventHook = handleEventHook defaultConfig <+> docksEventHook।