Ich erlebe ein seltsames Verhalten, xmobar
gleich nachdem ich eintrete xmonad
. Wenn ich xmonad
(von .xinitrc
, verwende ich XDM), wird mein xmobar
angezeigt, aber es befindet sich weder oben noch unten im Fensterstapel . Sobald ich eine Anwendung starte (z. B. Terminalemulator durch Drücken von Mod + Shift + Return
), verwendet die Anwendung den gesamten Bildschirm, als wäre xmobar
der unten. Dann drücke ich Mod + B
und nichts passiert, sobald ich Mod + B
ein zweites Mal drücke, xmobar
wird es nach oben gehoben, um die Größe des Anwendungsfensters zu verringern.
Danach Mod + B
funktioniert es für den Rest der xmonad
Sitzung korrekt , dh es senkt / erhöht (verbirgt / zeigt) das xmobar
.
Ich bin zuversichtlich, dass ich etwas falsch konfiguriert habe. Meine xmonad.hs
sieht aus wie:
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
]
Dabei .xmobarrc
sieht mein Anfang wie folgt aus:
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
]
}
Ich habe verschiedene Kombinationen ausprobiert:
, lowerOnStart =
, hideOnStart =
(Richtig / Richtig, Richtig / Falsch, Falsch / Richtig und Falsch / Falsch, wie jetzt gezeigt). Aber das Verhalten, bevor ich Mod + B
zweimal drücke, ändert sich nicht. Ich glaube, dass ich irgendwie xmonad
nicht falsch konfiguriert habe , xmobar
aber das ist nur eine Vermutung.
Meine .xinitrc
Hilfe könnte sein:
#!/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
und einfach überschreiben,handleEventHook = handleEventHook defaultConfig <+> docksEventHook
bis das DynamicLog-Paket repariert ist.Wenn ich deine Konfiguration mit meiner einfacheren vergleiche, die in dieser Hinsicht korrekt funktioniert, sehe ich einen Unterschied, der etwas bewirken könnte:
Von all den
general behaviour
Möglichkeiten, die Sie haben, habe ich nurund kein einziger von
hideOnStart
,overrideRedirect
usw.Die Art und Weise, wie Sie xmobar hinzufügen, ist meines Erachtens
xmonad.hs
die gleiche wie meine.In diesem Fall würde ich versuchen, so viele Standardeinstellungen wie möglich zu verwenden, z. B. umzubenennen,
.xmobarrc
damit sie nicht übernommen werden, undxmonad.hs
zu zund sehen, ob es funktioniert. Fügen Sie später Stück für Stück hinzu und sehen Sie, wann es kaputt geht.
quelle
xmonad.hs
. Das hat mich dazu gebracht, das eigentliche Problem zu finden :)