#!/bin/bash MYTH_RUN_STATUS="1" . /etc/profile . /etc/systemconfig if [ -e /etc/X11/WINDOWMANAGER ] then . /etc/X11/WINDOWMANAGER fi xhost +local: xhost +127.0.0.1 xset -dpms s off export MALLOC_CHECK_=0 MYTH_ARGS="-d --syslog local6" [ -f /etc/conf.d/mythfrontend ] && . /etc/conf.d/mythfrontend # # Run any scripting that applies to special hardware. These brand-specific commands that run # # after Tweaker will, of course, override generic or hardware-specific settings. # SpecialHardwareCommands() { # special_hardware_file=/myth/.special_hardware_type # special_hardware=`cat $special_hardware_file` # # case $special_hardware in # dragon*) # sudo -E twk_audio.pl --implement digital # sudo -E twk_dragon.pl --implement all # ;; # ausdragon*) # ;; # *) # # there are no brand-specific commands for configuring whatever # # special hardware the user chose # ;; # esac # } # # . /etc/osd_cat.cfg || { # color=yellow # outline=2 # outlinecolour=black # shadow=0 # shadowcolour=black # font="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*" # } # # function delay_osd(){ # if [ x$STARTUP_STYLE = xenhanced ] # then # cmd="ps -ef | grep -v grep | grep -q xmsg.py" # else # cmd="ps -ef | grep -v grep | grep -q osd_cat" # fi # # eval $cmd # # rc=$? # while [ $rc = 0 ] # do # eval $cmd # rc=$? # done # # # } # # function msg_osd(){ # echo -e "$1" | osd_cat --pos=middle --align=center --offset=200 --delay=5 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font # } # # function msg_pyosd(){ # /usr/LH/bin/xmsg.py -m "$1" # } function msg(){ #/usr/LH/bin/lh_message.sh "$1" /usr/LH/bin/msg_client.py --msg "$1" } function unclutter(){ if [ -e /etc/unclutter.cfg ] then . /etc/unclutter.cfg else idle=1 jitter=200 fi /usr/bin/unclutter -root -idle $idle -jitter $jitter -noevents & } function keylaunch(){ if [ -f /usr/bin/keylaunch ] then # MHOME=`cat /etc/passwd | grep "mythtv" | cut -d":" -f6` if [ ! -e $HOME/.keylaunchrc ] then echo "setting symlink for keylaunch" ln -s /etc/keylaunchrc $HOME/.keylaunchrc fi /usr/bin/keylaunch & fi } function fluxbox_settings(){ if [ ! -e $HOME/.fluxbox ] then echo "setting symlink fluxbox" configdir=/usr/share/fluxbox_settings ln -s $configdir /root/.fluxbox fi } function load_nvidia_settings(){ lsmod |cut -f1 -d" " |grep -q nvidia if [ $? = 0 ] then /usr/bin/nvidia-settings --load-config-only fi } function run_tilda(){ if [ -f /usr/bin/tilda ] then if [ ! -e ~/.tilda/config_0 ] then mkdir -p ~/.tilda/ fi width=`/usr/bin/xwininfo -root|grep Width | awk '{ print $2}'` height=`/usr/bin/xwininfo -root|grep Height | awk '{ print $2}'` center=$[width/2] sixtypercent=`echo "scale=0; ( $width*.6) / 1" |bc` quarter_height=`echo "scale=0; ($height*.35) /1" |bc` if [ $sixtypercent -lt 700 ] then sixtypercent=700 fi if [ $quarter_height -lt 350 ] then quarter_height=350 fi startloc=`echo "scale=0 ; (${center}-(${sixtypercent})/2) / 1" |bc` sed -e "s/^max_width.*$/max_width = $sixtypercent/" \ -e "s/^max_height.*$/max_height = $quarter_height/" \ -e "s/^x_pos.*$/x_pos = $startloc/g" /etc/tilda_config > ~/.tilda/config_0 /usr/bin/tilda -h & fi } function mouse_move(){ #move mouse to corner xdotool mousemove 0 0 } function start_screensaver(){ if [ x"$Screensavertype" = "xgscreensaver" ] then gnome-screensaver & elif [ x"$Screensavertype" = "xxscreensaver" ] then xscreensaver -no-splash & fi } function show_help_tip(){ if [ x$ShowTips = "x1" ] then msg "Alt+h for help" fi } function notify_scan(){ if [ -e /tmp/scan_report ] then msg "\nNew storage found. \nRun add_storage.py for details" fi } function auto_start(){ asdir="/etc/X11/autostart" for i in `ls $asdir/*` do if [ -x $i ] then echo "Starting $i" $i & fi done } function update_apple_trailers(){ #update apple trailers if [[ x$RunFrontend = x1 && -f ~/.configure ]] then /usr/bin/php -q /usr/bin/myth_trailers_grabber > /home/mythtv/appletrailer.xml && /usr/bin/fix_aple_url.sh 2>/dev/null & fi } function first_configure(){ if [ x$STARTUP_STYLE = xenhanced ] then first_configure_mv else first_configure_default fi } function first_configure_default(){ if [ ! $SystemType = "Frontend_only" ] then if [ -f ~/.configure ] then # Run Tweaker, which applies generic and hardware-specific settings if [ ! -f ~/.no_meth ] then #remove tweaker cause it's broken and duplicates entries #sudo -E tweaker.pl #/bin/rm /tmp/fps # ??? clean up a temp file that will eventually be obsolete anyway # Run any brand-specific commands, if necessary. SpecialHardwareCommands else rm -f ~/.no_meth fi sudo sv stop mythbackend xterm -fn *18* -e sudo taskset -c 0 /usr/bin/mythtv-setup sudo sv start mythbackend sudo chown -R mythtv.mythtv /home/mythtv nice -n 19 mythfilldatabase --quiet & msg "Guide data is being loaded. \n Until this completes\n some shows will appear as unknown \n in the program guide." rm ~/.configure fi else if [ -f ~/.configure ] then rm -f ~/.configure fi fi } function first_configure_mv(){ if [ ! $SystemType = "Frontend_only" ] then if [ -f ~/.configure ] then msg "This is the first time starting MythTV.\nThe MythTV backend process will be stopped for setup." #for now skip these #autocard.py -g & #MythVantage -b #0 yes #1 yes/autodetech #2 no STATUS=$? if [ ! $STATUS = 2 ] then /usr/MythVantage/bin/backend_control.sh stop BE 127.0.0.1 msg "MythTV setup is starting.\nPlease follow the steps for adding tuners and guide data." run_wmctrl & /usr/bin/taskset -c 0 /usr/bin/mythtv-setup /usr/MythVantage/bin/backend_control.sh start BE 127.0.0.1 fi nice -n 19 mythfilldatabase --quiet & msg "Guide data is being loaded. \nUntil this completes \nsome shows will appear as "unknown" \nin the program guide." rm -f ~/.configure fi else if [ -f ~/.configure ] then rm -f ~/.configure fi fi } function start_myth() { if [ x"$UseMythWelcome" = "x1" ] then STARTCMD="/usr/bin/mythwelcome" else if pacman -Q mythtv | grep -q 0.24 then STARTCMD="/usr/bin/mythfrontend -d -l /var/log/mythtv/mythfrontend.log" else STARTCMD="/usr/bin/mythfrontend $MYTH_ARGS" fi fi echo "=====================================================================" echo "Starting $STARTCMD" if [ "x$bewait" = "x1" ] then #do init check /usr/LH/bin/be_check.py rc=$? while [ $rc -ne 0 ] do msg "Waiting for connection to MythBackend" /usr/LH/bin/be_check.py rc=$? sleep 6 done fi #continue on with starting mythtv if [ x$STARTUP_STYLE = xenhanced ] then start_myth_mv else run_myth fi } function run_wmctrl(){ done="False" for i in `seq 60` do for name in "MythTV Frontend" "MythTV Setup" "mythwelcome" do xwininfo -name "$name" >/dev/null rc=$? if [ $rc = 0 ] then wmctrl -r "$name" -b remove,fullscreen done="True" fi if [ $done = "True" ] then break fi done sleep 5 done } function run_myth(){ if [ -f /tmp/nomfe ] then exit 0 else if [ -f /tmp/debug ] then echo "using gbd/debug" gdb /usr/bin/mythfrontend -x $MV_ROOT/mfegdbcommands.txt mv gdb.txt gdb.txt.mythfrontend sleep 5 else killall -9 irexec /usr/bin/irexec -d if [ x$STARTUP_STYLE = xenhanced ] then run_wmctrl & $STARTCMD 2>&1 else $STARTCMD 2>&1 & fi fi fi } function start_myth_mv(){ while [ x = x ] do run_myth echo "_______________________________________________________" done } function set_background() { echo "Setting the background" } if [ x"$WM" = "xdefault" ] then # fluxbox > /var/log/fluxbox.log 2>&1 WM=fluxbox fi if [ x"$WM" = "x" ] then # fluxbox > /var/log/fluxbox.log 2>&1 WM=fluxbox fi if [ $WM = "fluxbox" ] then fluxbox_settings fi #if using mythvantage style, start the WM right away # this is done so that starting mythtv can loop. $WM & pid=$! mouse_move keylaunch #set_background unclutter load_nvidia_settings run_tilda start_screensaver notify_scan & auto_start & update_apple_trailers first_configure show_help_tip start_myth # wait for the windowmanger #This will make the session wait on the WM to exit. if [ x$STARTUP_STYLE != xenhanced ] then wait $pid fi wmctrl -r "MythTV Frontend" -b remove,fullscreen