J'éprouve un comportement étrange xmobar
juste après mon entrée xmonad
. Lorsque i xmonad
(de .xinitrc
, j'utilise XDM) mon xmobar
apparaît, mais il n'est ni en haut ni en bas de la pile de fenêtres . Une fois que j'ai démarré une application (par exemple, l'émulateur de terminal en appuyant sur Mod + Shift + Return
), l'application utilise tout l'écran, comme si elle xmobar
était en bas. Ensuite, j'appuie sur Mod + B
et rien ne se passe, une fois que j'appuie Mod + B
une deuxième fois xmobar
est levé vers le haut réduisant la taille de la fenêtre d'application.
Après cela Mod + B
fonctionne correctement pour le reste de la xmonad
session, c'est-à-dire qu'il abaisse / soulève (masque / affiche) le xmobar
.
Je suis confiant d'avoir mal configuré quelque chose. Mes xmonad.hs
looks:
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
]
Alors que le début de mes .xmobarrc
looks est le suivant:
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
]
}
J'ai essayé plusieurs combinaisons de:
, lowerOnStart =
, hideOnStart =
(Vrai / Vrai, Vrai / Faux, Faux / Vrai et Faux / Faux comme indiqué maintenant). Mais le comportement avant d'appuyer Mod + B
deux fois ne change pas. Je crois que je me suis mal configuré xmonad
d'une manière ou d'une autre, xmobar
mais ce n'est qu'une supposition.
Mon .xinitrc
pourrait être utile:
#!/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
et simplement remplacer lehandleEventHook = handleEventHook defaultConfig <+> docksEventHook
jusqu'à ce que le package DynamicLog soit corrigé.En comparant votre configuration, à ma plus simple, qui fonctionne correctement à cet égard, je vois une différence qui pourrait faire quelque chose:
de toutes les
general behaviour
options que vous avez, je n'ai queet pas un seul
hideOnStart
,overrideRedirect
etc.La façon dont vous ajoutez xmobar
xmonad.hs
est, autant que je sache , la même que la mienne.Dans ce cas, j'essaierais avec autant de paramètres par défaut que possible, par exemple renommer
.xmobarrc
afin qu'il ne soit pas repris, et changerxmonad.hs
par exempleet voyez si cela fonctionne. Plus tard, ajoutez petit à petit et voyez quand il se casse.
la source
xmonad.hs
. Cela m'a fait trouver le vrai problème :)