linux-live/Slax/debian/modules/03-desktop/rootcopy/root/.fluxbox/startup

89 lines
2.5 KiB
Bash

#!/bin/sh
#
# fluxbox startup-script:
#
# Lines starting with a '#' are ignored.
# Change your keymap:
xmodmap "/root/.Xmodmap"
# merge xresource settings
xrdb -merge ~/.Xresources
# set background color and big wait mouse cursor
xsetroot -solid '#111111'
xsetroot -xcf /usr/share/icons/breeze_cursors/cursors/watch 37
# volume icon in system tray. Can fail if no soundcard is detected
volumeicon &
# preload compton and fluxbox to cache
(compton --help; fluxbox --help) >/dev/null 2>&1
# Keep black screen for first second while the sound plays.
# This slows startup a little, but it is nicer effect.
SND=/usr/share/sounds/startup.wav
if [ -r $SND ]; then
cat $SND > /dev/null # preload
aplay $SND &
sleep 1 &
SOUNDPID=$!
fi
# Debian-local change:
# - fbautostart has been added with a quick hack to check to see if it
# exists. If it does, we'll start it up by default.
which fbautostart > /dev/null
if [ $? -eq 0 ]; then
fbautostart
fi
# We need to postpone compton after fluxbox starts, else it won't set
# the transparency of toolbar properly... So we check the fehbg file,
# which is created by fluxbox at the phase when it sets background.
# Once the file exist, fluxbox-toolbar is already started
SIGNAL1=~/.fehbg
SIGNAL2=~/.fehbg2
rm -f $SIGNAL1 2>/dev/null
rm -f $SIGNAL2 2>/dev/null
(
while [ ! -e $SIGNAL1 ]; do
sleep 0.1
done
touch $SIGNAL2
exec compton --sw-opti -e 0.9 --fade-exclude 'role*="fluxbox-toolbar"' --opacity-rule '70:role*="fluxbox-toolbar"' --no-fading-destroyed-argb -D 5 -c -f -l -2 -t -2 -r 0 -o 1 -z --shadow-exclude 'bounding_shaped'
) &
# We want to run systrayicon only after the volumeicon is started
# So we have to wait until it is visible to xwinfo
# We also wait after background is set and compton is started
(
while [ ! -e $SIGNAL2 ]; do
sleep 0.1
done
rm -f $SIGNAL2
while ! xwininfo -name volumeicon >/dev/null 2>&1 && pgrep volumeicon >/dev/null 2>&1; do
sleep 0.1
done
exec systrayicon --command fblogout --iconfile /usr/share/icons/locolor/16x16/actions/system-shutdown-symbolic.png
) &
# gen screen resolutions to fluxbox menu
xrandr 2>/dev/null | fgrep x | fgrep . | sort -n | tr -s " " | cut -d " " -f 2 \
| sed -r "s:(.*):[exec] (\\1) {xrandr -s \\1; killall -SIGUSR1 compton}:" > ~/.fluxbox/menu_resolution
# In all cases, wait for the sound sleeper.
# If startup took longer (sound completed already), no extra wait
wait $SOUNDPID
# And last but not least we start fluxbox.
# Because it is the last app you have to run it with ''exec'' before it.
exec fluxbox