Tôi đang trải qua một hành vi kỳ lạ xmobar
ngay sau khi tôi bước vào xmonad
. Khi tôi xmonad
(từ .xinitrc
, tôi sử dụng XDM) xmobar
xuất hiện nhưng nó không ở trên cùng hoặc dưới cùng của ngăn xếp cửa sổ . Khi tôi khởi động một ứng dụng (ví dụ: trình giả lập thiết bị đầu cuối bằng cách nhấn Mod + Shift + Return
), ứng dụng sẽ sử dụng toàn bộ màn hình, như thể xmobar
nó ở phía dưới. Sau đó tôi nhấn Mod + B
và không có gì xảy ra, một khi tôi nhấn Mod + B
lần thứ hai xmobar
được nâng lên trên cùng làm giảm kích thước cửa sổ ứng dụng.
Sau đó, Mod + B
hoạt động chính xác cho phần còn lại của xmonad
phiên, tức là nó giảm / tăng (ẩn / hiển thị) xmobar
.
Tôi tự tin rằng tôi đã cấu hình sai một cái gì đó. Hình của tôi xmonad.hs
như:
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
]
Trong khi bắt đầu .xmobarrc
ngoại hình của tôi như sau:
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
]
}
Tôi đã thử một số kết hợp:
, lowerOnStart =
, hideOnStart =
(Đúng / Đúng, Đúng / Sai, Sai / Đúng và Sai / Sai như hiển thị bây giờ). Nhưng hành vi trước khi tôi nhấn Mod + B
hai lần không thay đổi. Tôi tin rằng tôi đã cấu hình sai xmonad
theo một cách nào đó không xmobar
nhưng đó chỉ là một phỏng đoán.
Tôi .xinitrc
có thể giúp đỡ:
#!/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
và chỉ ghi đè lênhandleEventHook = handleEventHook defaultConfig <+> docksEventHook
cho đến khi gói DynamicLog được sửa.