Estoy experimentando un comportamiento extraño xmobar
justo después de entrar xmonad
. Cuando aparece xmonad
(desde .xinitrc
, uso XDM) mi xmobar
pero no está en la parte superior o inferior de la pila de la ventana . Una vez que inicio una aplicación (p. Ej., Emulador de terminal presionando Mod + Shift + Return
), la aplicación usa toda la pantalla, como si xmobar
estuviera en la parte inferior. Luego presiono Mod + B
y no pasa nada, una Mod + B
vez xmobar
que presiono se levanta por segunda vez y se reduce el tamaño de la ventana de la aplicación.
Después de eso Mod + B
funciona correctamente durante el resto de la xmonad
sesión, es decir, baja / sube (oculta / muestra) el xmobar
.
Estoy seguro de que configuré mal algo. Mi se xmonad.hs
parece a:
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
]
Mientras que el comienzo de mi .xmobarrc
apariencia es la siguiente:
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
]
}
Probé varias combinaciones de:
, lowerOnStart =
, hideOnStart =
(Verdadero / verdadero, verdadero / falso, falso / verdadero y falso / falso como se muestra ahora). Pero el comportamiento antes de presionar Mod + B
dos veces no cambia. Creo que he configurado mal xmonad
de alguna manera, xmobar
pero eso es solo una suposición.
Mi .xinitrc
podría ser de ayuda:
#!/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
y sobrescribirhandleEventHook = handleEventHook defaultConfig <+> docksEventHook
hasta que se repare el paquete DynamicLog.Al comparar su configuración con la más simple, que funciona correctamente a este respecto, veo una diferencia que podría hacer algo:
de todas las
general behaviour
opciones que tienes solo tengoy ni uno solo
hideOnStart
,overrideRedirect
etc.La forma en que agrega xmobar
xmonad.hs
es, hasta donde puedo leer, la misma que la mía.En este caso, trataría con la mayor cantidad de configuraciones predeterminadas posibles, por ejemplo, cambiar el nombre
.xmobarrc
para que no se seleccione, y cambiarxmonad.hs
a, por ejemplo,y ver si funciona. Luego agregue poco a poco y vea cuándo se rompe.
fuente
xmonad.hs
. Eso me hizo encontrar el problema real :)