X-Git-Url: https://code.delx.au/dotfiles/blobdiff_plain/f7f81a77cd15bf4f006f1b56f2223049c78e81ec..a21efa43c917f62d9ea1b15043aa64bf8b8d4ab4:/xmonad-xfce4-session.sh diff --git a/xmonad-xfce4-session.sh b/xmonad-xfce4-session.sh index c450dff..b0d2734 100755 --- a/xmonad-xfce4-session.sh +++ b/xmonad-xfce4-session.sh @@ -1,15 +1,46 @@ #!/bin/bash +function wait_for_xprop_root { + local prop="$1" + + echo "Waiting for: ${prop}" + for i in $(seq 150); do + xprop -root -notype | grep -q "^${prop}\>" && return + sleep 0.1 + done + + echo "Timeout waiting for: ${prop}" +} + +function restart_applet { + local applet="$1" + + if ! pgrep "$applet"; then + return + fi + + while pgrep "$applet"; do + pkill "$applet" || true + sleep 0.1 + done + + "$applet" & +} + xmonad & xfdesktop --disable-wm-check & -sleep 10 - -nm-applet & # start late so that font settings are available -xfdesktop --reload # settings are not loaded on startup for some reason +# settings are not loaded on startup for some reason +wait_for_xprop_root "XFCE_DESKTOP_WINDOW" +xfdesktop --reload -sleep 2 +# ensure the window manager is painted over xfdesktop +wait_for_xprop_root "XFDESKTOP_IMAGE_FILE_0" +xmonad --restart -xmonad --restart # ensure it's painted over xfdesktop +# restart some applets to fix font settings +wait_for_xprop_root "RESOURCE_MANAGER" +restart_applet blueman-applet +restart_applet nm-applet disown