Я испытываю странное поведение xmobar
сразу после того, как я вхожу xmonad
. Когда я xmonad
(из .xinitrc
, я использую XDM), мое 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 =
(True / True, True / False, False / True и False / False, как показано сейчас). Но поведение, прежде чем я нажму 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
пока пакет DynamicLog не будет исправлен.Сравнивая ваш конфиг с моим более простым, который работает правильно в этом отношении, я вижу одно отличие, которое может что-то сделать:
из всех
general behaviour
имеющихся у меня вариантов есть толькои ни одного из
hideOnStart
иoverrideRedirect
т. д.Способ, которым вы добавляете xmobar
xmonad.hs
, насколько я могу прочитать, такой же, как и мой.В этом случае я бы попытался использовать как можно больше настроек по умолчанию, например, переименовать,
.xmobarrc
чтобы оно не поднялось, и изменитьxmonad.hs
наи посмотреть, если это работает. Позже добавлю понемногу и посмотрим, когда оно сломается.
источник
xmonad.hs
. Это заставило меня найти актуальную проблему :)