]> code.delx.au - dotfiles/blob - xmonad-xfce4-session.sh
bash: reorder initialisation
[dotfiles] / xmonad-xfce4-session.sh
1 #!/bin/bash
2
3 function wait_for_xprop_root {
4 local prop="$1"
5
6 echo "Waiting for: ${prop}"
7 for i in $(seq 150); do
8 xprop -root -notype | grep -q "^${prop}\>" && return
9 sleep 0.1
10 done
11
12 echo "Timeout waiting for: ${prop}"
13 }
14
15 function restart_applet {
16 local applet="$1"
17
18 if ! pgrep "$applet"; then
19 return
20 fi
21
22 while pgrep "$applet"; do
23 pkill "$applet" || true
24 sleep 0.1
25 done
26
27 "$applet" &
28 }
29
30 xmonad &
31 xfdesktop --disable-wm-check &
32
33 # settings are not loaded on startup for some reason
34 wait_for_xprop_root "XFCE_DESKTOP_WINDOW"
35 xfdesktop --reload
36
37 # ensure the window manager is painted over xfdesktop
38 wait_for_xprop_root "XFDESKTOP_IMAGE_FILE_0"
39 xmonad --restart
40
41 # restart some applets to fix font settings
42 wait_for_xprop_root "RESOURCE_MANAGER"
43 restart_applet blueman-applet
44 restart_applet nm-applet
45
46 disown