#!/bin/bash
#
# chkconfig: 345 11 89
# description: Customize Fuduntu on first startup
#
### BEGIN INIT INFO
# Short-Description: Performs desktop configuration after installation
# Description: Performs desktop configuration after installation
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

start()
{

if [ ! -d "/var/fuduntu" ]; then
  mkdir /var/fuduntu
fi

if [ -e "/var/fuduntu/runonce" ]; then
  exit 0
fi

if [ -d "/lib64" ]; then
  if [ -e "/usr/lib/nspluginwrapper/npconfig" ]; then
    /usr/lib/nspluginwrapper/npconfig -i /usr/lib/mozilla/plugins/libflashplayer.so >/dev/null 2>&1 || true
  fi
fi

### Alter logrotate to compensate for syslog changes
sudo sed -i "s#weekly#daily#" /etc/logrotate.conf 
sudo sed -i "s#rotate 4#rotate 1#" /etc/logrotate.conf 
sudo sed -i "s#\#compress#compress#" /etc/logrotate.conf 

### Colorize the bash prompt
cat <<FOE > /etc/profile.d/prompt.sh 2>/dev/null
if [[ \${EUID} == 0 ]] ; then
  PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \\\$\[\033[00m\] '
else
  PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \\\$\[\033[00m\] '
fi
FOE

/etc/init.d/acpid stop >/dev/null 2>&1 || true

if [ -e "/etc/profile.d/prompt.sh" ]; then
  chown root:root /etc/profile.d/prompt.sh
  chmod 755 /etc/profile.d/prompt.sh
fi

# Remove icons from the desktop
# gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/nautilus/desktop/trash_icon_visible false >/dev/null
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/nautilus/desktop/home_icon_visible false >/dev/null

# Turn off PackageKit-command-not-found while uninstalled
sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf

# Fuduntu default wallpaper
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s /desktop/gnome/background/picture_filename /usr/share/backgrounds/images/default-wide.jpg

### Default to 10 point font, let fontscale script lower them for small screens.
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s /desktop/gnome/interface/font_name "Sans 10"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s /apps/nautilus/preferences/desktop_font "Sans 10"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s /desktop/gnome/interface/document_font_name "Sans 10"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s /desktop/gnome/interface/monospace_font_name "Monospace 11"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s /apps/metacity/general/titlebar_font "Sans Bold 10"

### "Best Shapes" in Gnome
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s /desktop/gnome/font_rendering/antialiasing "greyscale"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s /desktop/gnome/font_rendering/hinting "medium"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s /desktop/gnome/font_rendering/rgba_order "rgb"

### Set the default terminal colors
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s /apps/gnome-terminal/profiles/Default/background_color "#000000000000"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t bool -s /apps/gnome-terminal/profiles/Default/use_theme_colors "0"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s /apps/gnome-terminal/profiles/Default/palette "#000000000000:#AAAA00000000:#0000AAAA0000:#AAAA55550000:#00000000AAAA:#AAAA0000AAAA:#0000AAAAAAAA:#AAAAAAAAAAAA:#555555555555:#FFFF55555555:#5555FFFF5555:#FFFFFFFF5555:#55555555FFFF:#FFFF5555FFFF:#5555FFFFFFFF:#FFFFFFFFFFFF"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s /apps/gnome-terminal/profiles/Default/foreground_color "#FFFFFFFFFFFF"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s /apps/gnome-terminal/profiles/Default/background_color "#000000000000"

### Default Theme
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s "/desktop/gnome/interface/gtk_theme" "Fuduntu"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s "/apps/metacity/general/theme" "Fuduntu"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s "/desktop/gnome/interface/icon_theme" "fuduntu"

### Remove / Configure panel applets
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults --set -t list --list-type=string /apps/panel/general/applet_id_list "[clock,systray,window_list,workspace_switcher]"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults --set -t list --list-type=string /apps/panel/general/object_id_list "[menu_bar]"

gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t bool -s "/apps/nautilus/desktop/computer_icon_visible" "0"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t bool -s "/apps/nautilus/desktop/trash_icon_visible" "1"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s "/desktop/gnome/interface/toolbar_style" "icons"

## Enable tap to click and disable while typing
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t bool -s "/desktop/gnome/peripherals/touchpad/tap_to_click" "1"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t bool -s "/desktop/gnome/peripherals/touchpad/disable_while_typing" "1"
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t int -s "/desktop/gnome/peripherals/touchpad/scroll_method" "2"

## Need a 12 hour clock even in live mode
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -t str -s "/apps/panel/applets/clock/prefs/format" "12-hour"

echo "vm.swappiness=10" >>/etc/sysctl.conf
echo "vm.vfs_cache_pressure = 50" >>/etc/sysctl.conf

### Make sure users are added to Jupiter group
cat << FOE >> /etc/rc.local
echo -n "Adding users to Jupiter group: "
  for i in \$(awk -F: '\$6 ~ /\/home/ && \$3 >= 500 {print \$1}' /etc/passwd);
  do
    echo -n \$i" "
    usermod -G jupiter -a \$i 2>/dev/null || true
  done
FOE

## Alter default firefox homepage.
if [ -e "/usr/lib64/firefox-3.6/browserconfig.properties" ]; then
  sed -i "s#http://start.fedoraproject.org/#http://www.fuduntu.org#g" /usr/lib64/firefox-3.6/browserconfig.properties
cat << FOE >> /usr/lib64/firefox-3.6/defaults/preferences/firefox.js
pref("browser.cache.disk.enable", true);
pref("browser.cache.disk.parent_directory", "/tmp");
pref("network.http.pipelining", true);
FOE
fi

if [ -e "/usr/lib/firefox-3.6/browserconfig.properties" ]; then
  sed -i "s#http://start.fedoraproject.org/#http://www.fuduntu.org#g" /usr/lib/firefox-3.6/browserconfig.properties
cat << FOE >> /usr/lib/firefox-3.6/defaults/preferences/firefox.js
pref("browser.cache.disk.enable", true);
pref("browser.cache.disk.parent_directory", "/tmp");
pref("network.http.pipelining", true);
FOE
fi

## Append ACPI_OSI=Linux to GRUB
if [ ! "$(grep acpi_osi /boot/grub/menu.lst)" ]; then
  sed -i "s#rhgb quiet#rhgb quiet acpi_osi=\"Linux\"#" /boot/grub/menu.lst
fi

## Change the IO elevator to deadline
if [ ! "$(grep elevator /boot/grub/menu.lst)" ]; then
  sed -i "s#rhgb quiet#rhgb quiet elevator=deadline#" /boot/grub/menu.lst
fi

touch /var/fuduntu/runonce
/sbin/chkconfig fuduntu-runonce off 2>/dev/null
        return 0
}

stop()
{
        return 0
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  *)
        echo "Usage: $0 {start|stop}"
        exit 3
        ;;
esac

exit $RETVAL

