Are you a spammer

Please note, that the first 3 posts you make, will need to be approved by a forum Administrator or Moderator before they are publicly viewable.
Each application to join this forum is checked at the Stop Forum Spam website. If the email or IP address appears there when checked, you will not be allowed to join this forum.
If you get past this check and post spam on this forum, your posts will be immediately deleted and your account inactivated.You will then be banned and your IP will be submitted to your ISP, notifying them of your spamming. So your spam links will only be seen for an hour or two at most. In other words, don't waste your time and ours.

This forum is for the use and enjoyment of the members and visitors looking to learn about and share information regarding the topics listed. It is not a free-for-all advertising venue. Your time would be better spent pursuing legitimate avenues of promoting your websites.

Ultamatix Exposed...

Source code I have written openly published for your viewing pleasure.


Ultamatix Exposed...

Postby TheeMahn » Wed Jul 23, 2008 2:11 pm

This is going to take me a long... long time to write. (there is nothing short of 200,000 lines of code in its entirity.

I am going to start with the bash / zenity portion (easiest for most to understand):
Code: Select all
function cleanup {
echo "Cleaning up..."
sudo apt-get autoremove --assume-yes --force-yes
}

function dpkg_check {

if   ps -U root -u root u | grep "synaptic" | grep -v grep;
then    
   AX_fatal "Ultamatix WILL NOT run alongside Synaptic.  Please run just one of them at a time. ";

exit 1;
elif    ps -U root -u root u | grep "update-manager" | grep -v grep;
then    
   AX_fatal "Ultamatix WILL NOT run alongside Ubuntu update-manager.  Please run just one of them at a time. ";

exit 1;
elif    ps -U root -u root u | grep "apt-get" | grep -v defunct | grep -v grep;
then    
   AX_fatal "Ultamatix WILL NOT run alongside an independent instance of apt-get.  Please run just one of them at a time.";

elif    ps -U root -u root u | grep "adept" | grep -v defunct | grep -v grep;
then    
   AX_fatal "Ultamatix WILL NOT run alongside Adept.  Please run just one of them at a time.";

exit 1;
elif    ps -U root -u root u | grep "dpkg" | grep -v grep;
then
   AX_fatal "Ultamatix WILL NOT run alongside an independent instance of dpkg.  Please run just one of them at a time.";

exit 1;
fi
#Test O/S 64 or 32 bit...
architecture=`uname -m`
targetarch="x86" #Set 64-bit machines to download 32-bit if no options are set
if [ "$architecture" != "x86_64" ] && [ "$architecture" != "ia64" ]; then
    architecture="x86"
else
    architecture="x86_64"
fi
if [ "$architecture" = "x86_64" ]; then
echo "64 Bit O/S detected."
else
echo "32 Bit O/S detected."
fi
}

function dir_ch {
cd $AXHOME
}

function restrictedextrasandcodecs {
#COMPLETE
dpkg_check
if [ "$architecture" = "x86_64" ]; then
if    echo $KDE_FULL_SESSION | grep "true";
then
   if !    DEBIAN_FRONTEND=kde sudo apt-get install --assume-yes --force-yes ubuntu-restricted-extras kubuntu-restricted-extras xubuntu-restricted-extras gstreamer0.10-fluendo-mp3 gstreamer0.10-fluendo-mpegdemux  gstreamer0.10-gnonlin gstreamer0.10-plugins-farsight gstreamer0.10-schroedinger gstreamer0.10-sdl libvcdinfo0 libxine1 libxine1-plugins libxvidcore4 lame sox ffmpeg mjpegtools vorbis-tools mpg321 faac faad alsa-oss oss-compat gstreamer-tools libdvdnav4 libdvdread3 gstreamer0.10-ffmpeg gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse
   then
      AX_fatal "An apt-based error occurred and installation was unsuccessful";
   fi
else
   if !    DEBIAN_FRONTEND=gnome sudo apt-get install --assume-yes --force-yes ubuntu-restricted-extras kubuntu-restricted-extras xubuntu-restricted-extras gstreamer0.10-fluendo-mp3 gstreamer0.10-fluendo-mpegdemux gstreamer0.10-gnonlin gstreamer0.10-plugins-farsight gstreamer0.10-schroedinger gstreamer0.10-sdl libvcdinfo0 libxine1 libxine1-plugins libxvidcore4 lame sox ffmpeg mjpegtools vorbis-tools mpg321 faac faad alsa-oss oss-compat gstreamer-tools libdvdnav4 libdvdread3 gstreamer0.10-ffmpeg gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse
   then
      AX_fatal "An apt-based error occurred and installation was unsuccessful ";
   fi
fi
rm -rf $AXHOME/.gstreamer-0.10
gst-inspect
sudo gst-inspect
else
if    echo $KDE_FULL_SESSION | grep "true";
then
   if !    DEBIAN_FRONTEND=kde sudo apt-get install --assume-yes --force-yes ubuntu-restricted-extras kubuntu-restricted-extras xubuntu-restricted-extras gstreamer0.10-fluendo-mp3 gstreamer0.10-fluendo-mpegdemux  gstreamer0.10-gnonlin gstreamer0.10-plugins-farsight gstreamer0.10-schroedinger gstreamer0.10-sdl libvcdinfo0 libxine1 libxine1-plugins libxvidcore4 lame sox ffmpeg mjpegtools vorbis-tools mpg321 faac faad alsa-oss oss-compat libk3b2-mp3 gstreamer-tools libdvdnav4 libdvdread3 gstreamer0.10-ffmpeg gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse
   then
      AX_fatal "An apt-based error occurred and installation was unsuccessful";
   fi
else
   if !    DEBIAN_FRONTEND=gnome sudo apt-get install --assume-yes --force-yes ubuntu-restricted-extras kubuntu-restricted-extras xubuntu-restricted-extras gstreamer0.10-fluendo-mp3 gstreamer0.10-fluendo-mpegdemux gstreamer0.10-gnonlin gstreamer0.10-plugins-farsight gstreamer0.10-schroedinger gstreamer0.10-sdl libvcdinfo0 libxine1 libxine1-plugins libxvidcore4 lame sox ffmpeg mjpegtools vorbis-tools mpg321 faac faad alsa-oss oss-compat libk3b2-mp3 gstreamer-tools libdvdnav4 libdvdread3 gstreamer0.10-ffmpeg gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse
   then
      AX_fatal "An apt-based error occurred and installation was unsuccessful ";
   fi
fi
rm -rf $AXHOME/.gstreamer-0.10
gst-inspect
sudo gst-inspect
fi
}

function aa07install {
dpkg_check
if [ "$architecture" = "x86_64" ]; then
echo "Sorry currently no support for x64 architecture."
AX_fatal "An apt-based error occurred and installation was unsuccessful - No support for x64 architecture.";
sleep 1
else
if !    sudo apt-get --assume-yes --force-yes install alien-arena
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
fi
}

function aa07remove {
#needs 64 bit support...
dpkg_check
if !    sudo apt-get --assume-yes --force-yes remove --purge alien-arena alien-arena-data
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function amarok2install {
dpkg_check
echo "Adding Amarok repository"
sudo cp /etc/apt/sources.list /etc/apt/sources.bak
sudo echo "deb http://ppa.launchpad.net/project-neon/ubuntu hardy main" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install --assume-yes --force-yes amarok-nightly amarok-nightly-tools amarok-nightly-taglib
echo "Restoring sources."
sudo cp /etc/apt/sources.bak /etc/apt/sources.list
sudo apt-get update
}

function ama2uninstall {
sudo apt-get remove --purge --assume-yes --force-yes amarok-nightly amarok-nightly-tools amarok-nightly-taglib
cleanup
}

function legendsinstall {
#Legends
dpkg_check
if test -f legends_linux-0.4.1.43.deb
then
sudo dpkg -i legends_linux-0.4.1.43.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/legends.ico --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Legends..."
else
wget -c http://ubuntusoftware.info/software/Games/legends_linux-0.4.1.43.deb 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/legends.ico --width=600 --height=100 --progress --auto-close --title="Downloading Legends..."
sudo chmod +x legends_linux-0.4.1.43.deb
sudo dpkg -i legends_linux-0.4.1.43.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/legends.ico --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Legends..."
fi
sudo /usr/games/legends/update
if [ "$architecture" = "x86_64" ]; then
sudo echo "[Desktop Entry]
Name=Legends 
Comment=Legends
Exec=/usr/games/legends/linux32 runlegends
Icon=/usr/games/legends/legends.ico
Terminal=false
Type=Application
Categories=Application;Game;" >> /usr/share/applications/legends.desktop
else
#create shortcut 32 bit
sudo echo "[Desktop Entry]
Name=Legends 
Comment=Legends
Exec=/usr/games/legends/runlegends
Icon=/usr/games/legends/legends.ico
Terminal=false
Type=Application
Categories=Application;Game;" >> /usr/share/applications/legends.desktop
fi
}

function legendsremove {
#remove it
echo "Removing Legends please wait ..."
sudo apt-get remove --assume-yes --force-yes --purge legends
dir_ch
mkdir .legends/
sudo rm -R $AXHOME/.legends/
sudo rm /usr/share/applications/legends.desktop
echo "Done."
}

function aainstall {
#America's Army
if test -f armyops250linux.run
then
sudo sh ./armyops250linux.run 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/ArmyOps.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Americas Army..."
else
wget -c http://ubuntusoftware.info/software/Games/armyops250linux.run 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/ArmyOps.xpm --width=600 --height=100 --progress --auto-close --title="Downloading Americas Army..."
sudo chmod +x armyops250linux.run
sudo sh ./armyops250linux.run 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/ArmyOps.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Americas Army..."
fi
#create games icon / shortcut
sudo echo "[Desktop Entry]
Name=Americas Army 
Comment=Americas Army
Exec=/usr/local/games/armyops/ops.sh
Icon=/usr/local/games/armyops/ArmyOps.xpm
Terminal=false
Type=Application
Categories=Application;Game;" >> /usr/share/applications/armyops.desktop
#create launcher
echo "cd /usr/local/games/armyops/
./armyops" >> /usr/local/games/armyops/ops.sh
sudo chmod +x /usr/local/games/armyops/ops.sh
}

function aaremove {
#create directory incase they installed it elsewhere no sense in scraping all thier games
sudo mkdir /usr/local/games/armyops 2>/dev/null
#remove it
echo "Removing Americas Army please wait ..."
cd /usr/local/games/
sudo rm -R armyops
#remove shortcut created earlier
sudo rm /usr/share/applications/armyops.desktop
echo "Done."
}

function rtcwinstall {
if test -f et-linux-2.60.x86.run
then
sudo sh ./et-linux-2.60.x86.run 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/ET.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Enemy Territory..."
else
wget -c http://ftp.games.skynet.be/pub/wolfenstein/et-linux-2.60.x86.run 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/ET.xpm --width=600 --height=100 --progress --auto-close --title="Downloading Enemy Territory..."
sudo chmod +x et-linux-2.60.x86.run
sudo sh ./et-linux-2.60.x86.run 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/ET.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Enemy Territory..."
fi
#update
if test -f et-linux-2.60-update.x86.run
then
sudo sh ./et-linux-2.60-update.x86.run 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/ET.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Enemy Territory Update..."
else
wget -c http://ftp.games.skynet.be/pub/wolfenstein/et-linux-2.60-update.x86.run 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/ET.xpm --width=600 --height=100 --progress --auto-close --title="Downloading Enemy Territory Update..."
sudo chmod +x et-linux-2.60-update.x86.run
sudo sh ./et-linux-2.60-update.x86.run 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/ET.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Enemy Territory Update..."
fi
#create shortcut under games
sudo echo "[Desktop Entry]
Name=Enemy Territory: Wolfenstein
Comment=Wolfenstein: Enemy Territory
Exec=et
Icon=/usr/local/games/enemy-territory/ET.xpm
Terminal=false
Type=Application
Categories=Application;Game;" > /usr/share/applications/rtcwet.desktop
}

function rtcwremove {
#create directory incase they installed it elsewhere no sense in scraping all thier games
sudo mkdir /usr/local/games/enemy-territory 2>/dev/null
#remove it
echo "Removing Return to castle wolfenstein: Enemy territory please wait ..."
cd /usr/local/games/
sudo rm -R enemy-territory
#remove shortcut created earlier
sudo rm /usr/share/applications/rtcwet.desktop
echo "Done."
}

function atanksinstall {
dpkg_check
if !    sudo apt-get --assume-yes --force-yes install atanks
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function atanksremove {
dpkg_check
if !    sudo apt-get --assume-yes --force-yes remove --purge atanks
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function ilinux {
#COMPLETE
restrictedextrasandcodecs
AX_installed "script1"
dpkg_check
if !    sudo apt-get --assume-yes --force-yes install f-spot dvgrab kino devede gtkpod-aac ipod gnupod-tools libgpod-common libipod-cil libipoddevice0 libipodui-cil libhfsp0 hfsplus hfsutils libipod0
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}



function acrobatreader {
# COMPLETE
dpkg_check
echo "Adding mediabuntu repository"
sudo cp /etc/apt/sources.list /etc/apt/sources.bak
sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list
sudo apt-get update && sudo apt-get install --assume-yes --force-yes medibuntu-keyring && sudo apt-get update
dpkg_check
if    echo $KDE_FULL_SESSION | grep "true";
then
   if !    DEBIAN_FRONTEND=kde sudo apt-get --assume-yes --force-yes install mozilla-acroread acroread-plugins

   then
      AX_fatal "An apt-based error occurred and installation was unsuccessful";
   fi
else
   if !    DEBIAN_FRONTEND=gnome sudo apt-get --assume-yes --force-yes install mozilla-acroread acroread-plugins

   then
      AX_fatal "An apt-based error occurred and installation was unsuccessful ";
   fi
fi

echo "Restoring sources."
sudo cp /etc/apt/sources.bak /etc/apt/sources.list
dpkg_check
}

function acrobatremove {
dpkg_check
sudo apt-get remove --assume-yes --force-yes --purge acrobat
cleanup
}

function swiftweasel {
#COMPLETE
if   cat /opt/automatix/swiftweasel/swiftweaselversion | grep "2.0.0.8"
then
   if   AX_question "Ultamatix seems to think that Swiftweasel is already installed! If YOU ARE SURE you want to reinstall Swiftweasel then hit YES or else hit NO. If you hit NO, Ultamatix will resume with the rest of the chosen options.";
      then
      swiftweaselinstall
      else
                AX_fatal "You chose not to re-install Swiftweasel";     
        fi
else
   swiftweaselinstall
fi
}

function swiftweaselinstall {
dpkg_check
rm -f $AXHOME/swiftweasel*.tar.gz
sudo mkdir /opt
sudo mkdir /opt/automatix
dir_ch
if    cat /proc/cpuinfo | egrep AMD | egrep K6 && cat /proc/cpuinfo | egrep "cpu family" | egrep "5" && cat /proc/cpuinfo | egrep "model" | egrep "\b(8|13)\b"
then
          dir_ch
   if   wget --tries=2 --timeout=30 http://internap.dl.sourceforge.net/sourceforge/swiftweasel/swiftweasel-p-2.0.0.8_10-21-07_k6.tar.gz
          then
                  sudo rm -rf /opt/automatix/swiftweasel
                  sudo tar zxvf $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_k6.tar.gz -C /opt/automatix
                  sudo cp -f /usr/share/ultamatix/conf/swiftweasel.desktop /usr/share/applications/
                  rm -f $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_k6.tar.gz
          sudo rm -f /opt/automatix/swiftweasel/swiftweaselversion
      sudo cp -f /usr/share/ultamatix/conf/swiftweaselversion /opt/automatix/swiftweasel/swiftweaselversion
         else
                  AX_fatal "Swiftweasel could not be downloaded. Please try again later";
         fi
elif    cat /proc/cpuinfo | egrep AMD && cat /proc/cpuinfo | egrep "cpu family" | egrep "6" && cat /proc/cpuinfo | egrep "model" | egrep "\b(2|3|4|6|7|8|10)\b"
then
          dir_ch
   if   wget --tries=2 --timeout=30 http://internap.dl.sourceforge.net/sourceforge/swiftweasel/swiftweasel-p-2.0.0.8_10-21-07_athlon-xp.tar.gz
          then
                  sudo rm -rf /opt/automatix/swiftweasel
                  sudo tar zxvf $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_athlon-xp.tar.gz -C /opt/automatix
                  sudo cp -f /usr/share/ultamatix/conf/swiftweasel.desktop /usr/share/applications/
                  rm -f $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_athlon-xp.tar.gz
          sudo rm -f /opt/automatix/swiftweasel/swiftweaselversion
      sudo cp -f /usr/share/ultamatix/conf/swiftweaselversion /opt/automatix/swiftweasel/swiftweaselversion
         else
                  AX_fatal "Swiftweasel could not be downloaded. Please try again later";
         fi
elif    cat /proc/cpuinfo | egrep AMD && cat /proc/cpuinfo | egrep "cpu family" | egrep "15"
then
          dir_ch
   if   wget --tries=2 --timeout=30 http://internap.dl.sourceforge.net/sourceforge/swiftweasel/swiftweasel-p-2.0.0.8_10-21-07_k8-32bit.tar.gz
          then
                  sudo rm -rf /opt/automatix/swiftweasel
                  sudo tar zxvf $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_k8-32bit.tar.gz -C /opt/automatix
                  sudo cp -f /usr/share/ultamatix/conf/swiftweasel.desktop /usr/share/applications/
                  rm -f $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_k8-32bit.tar.gz
          sudo rm -f /opt/automatix/swiftweasel/swiftweaselversion
      sudo cp -f /usr/share/ultamatix/conf/swiftweaselversion /opt/automatix/swiftweasel/swiftweaselversion
         else
                  AX_fatal "Swiftweasel could not be downloaded. Please try again later";
         fi
elif    cat /proc/cpuinfo | egrep Intel && cat /proc/cpuinfo | egrep "cpu family" | egrep "6" && cat /proc/cpuinfo | egrep "model" | egrep "\b(7|8|9|10|11)\b"
then
          dir_ch
   if    wget --tries=2 --timeout=30 http://internap.dl.sourceforge.net/sourceforge/swiftweasel/swiftweasel-p-2.0.0.8_10-21-07_pentium-3.tar.gz
          then
                  sudo rm -rf /opt/automatix/swiftweasel
                  sudo tar zxvf $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_pentium-3.tar.gz -C /opt/automatix
                  sudo cp -f /usr/share/ultamatix/conf/swiftweasel.desktop /usr/share/applications/
                  rm -f $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_pentium-3.tar.gz
          sudo rm -f /opt/automatix/swiftweasel/swiftweaselversion
      sudo cp -f /usr/share/ultamatix/conf/swiftweaselversion /opt/automatix/swiftweasel/swiftweaselversion
          else
                  AX_fatal "Swiftweasel could not be downloaded. Please try again later";
         fi
elif    cat /proc/cpuinfo | egrep Intel && cat /proc/cpuinfo | egrep "cpu family" | egrep "15" && cat /proc/cpuinfo | egrep "model" | egrep "\b(0|1|2|3|4|6)\b"
then
          dir_ch
   if    wget --tries=2 --timeout=30 http://internap.dl.sourceforge.net/sourceforge/swiftweasel/swiftweasel-p-2.0.0.8_10-21-07_pentium-4.tar.gz
          then
                  sudo rm -rf /opt/automatix/swiftweasel
                  sudo tar zxvf $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_pentium-4.tar.gz -C /opt/automatix
                  sudo cp -f /usr/share/ultamatix/conf/swiftweasel.desktop /usr/share/applications/
                  rm -f $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_pentium-4.tar.gz
          sudo rm -f /opt/automatix/swiftweasel/swiftweaselversion
      sudo cp -f /usr/share/ultamatix/conf/swiftweaselversion /opt/automatix/swiftweasel/swiftweaselversion
          else
                  AX_fatal "Swiftweasel could not be downloaded. Please try again later";
         fi
elif   cat /proc/cpuinfo | egrep Intel && cat /proc/cpuinfo | egrep "cpu family" | egrep "6" && cat /proc/cpuinfo | egrep "model" | egrep "\b(9|13)"
then
          dir_ch
   if   wget --tries=2 --timeout=30 http://internap.dl.sourceforge.net/sourceforge/swiftweasel/swiftweasel-p-2.0.0.8_10-21-07_pentium-m.tar.gz
          then
                  sudo rm -rf /opt/automatix/swiftweasel
                  sudo tar zxvf $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_pentium-m.tar.gz -C /opt/automatix
                  sudo cp -f /usr/share/ultamatix/conf/swiftweasel.desktop /usr/share/applications/
                  rm -f $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_pentium-m.tar.gz
          sudo rm -f /opt/automatix/swiftweasel/swiftweaselversion
      sudo cp -f /usr/share/ultamatix/conf/swiftweaselversion /opt/automatix/swiftweasel/swiftweaselversion
          else
                  AX_fatal "Swiftweasel could not be downloaded. Please try again later";
         fi
elif   cat /proc/cpuinfo | egrep Intel && cat /proc/cpuinfo | egrep "cpu family" | egrep "6" && cat /proc/cpuinfo | egrep "model" | egrep "\b(14|15)"
then
          dir_ch
   if   wget --tries=2 --timeout=30 http://internap.dl.sourceforge.net/sourceforge/swiftweasel/swiftweasel-p-2.0.0.8_10-21-07_pentium-m.tar.gz
          then
                  sudo rm -rf /opt/automatix/swiftweasel
                  sudo tar zxvf $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_pentium-m.tar.gz -C /opt/automatix
                  sudo cp -f /usr/share/ultamatix/conf/swiftweasel.desktop /usr/share/applications/
                  rm -f $AXHOME/swiftweasel-p-2.0.0.8_10-21-07_pentium-m.tar.gz
          sudo rm -f /opt/automatix/swiftweasel/swiftweaselversion
      sudo cp -f /usr/share/ultamatix/conf/swiftweaselversion /opt/automatix/swiftweasel/swiftweaselversion
          else
                  AX_fatal "Swiftweasel could not be downloaded. Please try again later";
         fi
else
       AX_fatal "Swiftweasel is not available for your CPU architecture.";
fi
}


function swiftdove {
#COMPLETE
if   cat /opt/automatix/swiftdove/swiftdoveversion | grep "2.0.0.7"
then
   if   AX_question "Ultamatix seems to think that Swiftdove is already installed! If YOU ARE SURE you want to reinstall Swiftdove then hit YES or else hit NO. If you hit NO, Ultamatix will resume with the rest of the chosen options.";
      then
      swiftdoveinstall
      else
                AX_fatal "You chose not to re-install Swiftdove";     
        fi
else
   swiftdoveinstall
fi
}

function swiftdoveinstall {
dpkg_check
rm -f $AXHOME/swiftdove*.tar.gz
sudo mkdir /opt
sudo mkdir /opt/automatix
dir_ch
if    cat /proc/cpuinfo | egrep AMD && cat /proc/cpuinfo | egrep "cpu family" | egrep "6" && cat /proc/cpuinfo | egrep "model" | egrep "\b(2|3|4|6|7|8|10)\b"
then
          dir_ch
   if   wget --tries=2 --timeout=30 http://internap.dl.sourceforge.net/sourceforge/swiftweasel/swiftdove-2.0.0.7-2_09-29-07_athlon-xp.tar.gz
          then
                  sudo rm -rf /opt/automatix/swiftdove
                  sudo tar zxvf $AXHOME/swiftdove-2.0.0.7-2_09-29-07_athlon-xp.tar.gz -C /opt/automatix
                  sudo cp -f /usr/share/ultamatix/conf/swiftdove.desktop /usr/share/applications/
                  rm -f $AXHOME/swiftdove-2.0.0.7-2_09-29-07_athlon-xp.tar.gz
          sudo rm -f /opt/automatix/swiftdove/swiftdoveversion
      sudo cp -f /usr/share/ultamatix/conf/swiftdoveversion /opt/automatix/swiftdove/swiftdoveversion
         else
                  AX_fatal "Swiftdove could not be downloaded. Please try again later";
         fi
elif    cat /proc/cpuinfo | egrep AMD && cat /proc/cpuinfo | egrep "cpu family" | egrep "15"
then
          dir_ch
   if   wget --tries=2 --timeout=30 http://internap.dl.sourceforge.net/sourceforge/swiftweasel/swiftdove-2.0.0.7-2_09-29-07_athlon-xp.tar.gz
          then
                  sudo rm -rf /opt/automatix/swiftdove
                  sudo tar zxvf $AXHOME/swiftdove-2.0.0.7-2_09-29-07_athlon-xp.tar.gz -C /opt/automatix
                  sudo cp -f /usr/share/ultamatix/conf/swiftdove.desktop /usr/share/applications/
                  rm -f $AXHOME/swiftdove-2.0.0.7-2_09-29-07_athlon-xp.tar.gz
          sudo rm -f /opt/automatix/swiftdove/swiftdoveversion
      sudo cp -f /usr/share/ultamatix/conf/swiftdoveversion /opt/automatix/swiftdove/swiftdoveversion
         else
                  AX_fatal "Swiftdove could not be downloaded. Please try again later";
         fi
elif    cat /proc/cpuinfo | egrep Intel && cat /proc/cpuinfo | egrep "cpu family" | egrep "15" && cat /proc/cpuinfo | egrep "model" | egrep "\b(0|1|2|3|4|6)\b"
then
          dir_ch
   if    wget --tries=2 --timeout=30 http://internap.dl.sourceforge.net/sourceforge/swiftweasel/swiftdove-2.0.0.7-2_09-29-07_pentium-4.tar.gz
          then
                  sudo rm -rf /opt/automatix/swiftdove
                  sudo tar zxvf $AXHOME/swiftdove-2.0.0.7-2_09-29-07_pentium-4.tar.gz -C /opt/automatix
                  sudo cp -f /usr/share/ultamatix/conf/swiftdove.desktop /usr/share/applications/
                  rm -f $AXHOME/swiftdove-2.0.0.7-2_09-29-07_pentium-4.tar.gz
          sudo rm -f /opt/automatix/swiftdove/swiftdoveversion
      sudo cp -f /usr/share/ultamatix/conf/swiftdoveversion /opt/automatix/swiftdove/swiftdoveversion
          else
                  AX_fatal "Swiftdove could not be downloaded. Please try again later";
         fi
elif   cat /proc/cpuinfo | egrep Intel && cat /proc/cpuinfo | egrep "cpu family" | egrep "6" && cat /proc/cpuinfo | egrep "model" | egrep "\b(9|13)"
then
          dir_ch
   if   wget --tries=2 --timeout=30 http://internap.dl.sourceforge.net/sourceforge/swiftweasel/swiftdove-2.0.0.7-2_09-29-07_prescott.tar.gz
          then
                  sudo rm -rf /opt/automatix/swiftdove
                  sudo tar zxvf $AXHOME/swiftdove-2.0.0.7-2_09-29-07_prescott.tar.gz -C /opt/automatix
                  sudo cp -f /usr/share/ultamatix/conf/swiftdove.desktop /usr/share/applications/
                  rm -f $AXHOME/swiftdove-2.0.0.7-2_09-29-07_prescott.tar.gz
          sudo rm -f /opt/automatix/swiftdove/swiftdoveversion
      sudo cp -f /usr/share/ultamatix/conf/swiftdoveversion /opt/automatix/swiftdove/swiftdoveversion
          else
                  AX_fatal "Swiftdove could not be downloaded. Please try again later";
         fi
elif   cat /proc/cpuinfo | egrep Intel && cat /proc/cpuinfo | egrep "cpu family" | egrep "6" && cat /proc/cpuinfo | egrep "model" | egrep "\b(14|15)"
then
          dir_ch
   if   wget --tries=2 --timeout=30 http://internap.dl.sourceforge.net/sourceforge/swiftweasel/swiftdove-2.0.0.7-2_09-29-07_prescott.tar.gz
          then
                  sudo rm -rf /opt/automatix/swiftdove
                  sudo tar zxvf $AXHOME/swiftdove-2.0.0.7-2_09-29-07_prescott.tar.gz -C /opt/automatix
                  sudo cp -f /usr/share/ultamatix/conf/swiftdove.desktop /usr/share/applications/
                  rm -f $AXHOME/swiftdove-2.0.0.7-2_09-29-07_prescott.tar.gz
          sudo rm -f /opt/automatix/swiftdove/swiftdoveversion
      sudo cp -f /usr/share/ultamatix/conf/swiftdoveversion /opt/automatix/swiftdove/swiftdoveversion
          else
                  AX_fatal "Swiftdove could not be downloaded. Please try again later";
         fi
else
       AX_fatal "Swiftdove is not available for your CPU architecture.";
fi
}


function extrafonts {
# COMPLETE
dpkg_check
if !    sudo apt-get --assume-yes --force-yes install msttcorefonts gsfonts-other t1-xfree86-nonfree ttf-dustin ttf-f500 ttf-isabella ttf-larabie-deco ttf-larabie-straight ttf-larabie-uncommon ttf-staypuft ttf-summersby ttf-ubuntu-title ttf-xfree86-nonfree xfonts-artwiz xfonts-intl-european gsfonts-x11 gsfonts ttf-georgewilliams ttf-sjfonts ttf-dejavu ttf-essays1743 ttf-fifthhorseman-dkg-handwriting ttf-inconsolata ttf-tuffy ttf-liberation
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}


function compress {
# COMPLETE
dpkg_check
if !    sudo apt-get --assume-yes --force-yes install rar unace unrar p7zip p7zip-full arj unzoo lha libarchive1 libarchive-tar-perl libarchive-zip-perl dpkg-dev alien cabextract
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function skype {
# COMPLETE
dpkg_check
echo "Adding mediabuntu repository"
sudo cp /etc/apt/sources.list /etc/apt/sources.bak
sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list
sudo apt-get update && sudo apt-get install --assume-yes --force-yes medibuntu-keyring && sudo apt-get update
dpkg_check
if    echo $KDE_FULL_SESSION | grep "true";
then
   if !    DEBIAN_FRONTEND=kde sudo apt-get --assume-yes --force-yes install skype

   then
      AX_fatal "An apt-based error occurred and installation was unsuccessful";
   fi
else
   if !    DEBIAN_FRONTEND=gnome sudo apt-get --assume-yes --force-yes install skype skype-gnome

   then
      AX_fatal "An apt-based error occurred and installation was unsuccessful ";
   fi
fi
echo "Restoring sources list"
sudo cp /etc/apt/sources.bak /etc/apt/sources.list
}

function skyremove {
dpkg_check
sudo apt-get --assume-yes --force-yes --purge remove skype
cleanup
}

function googleearth {
# COMPLETE
dpkg_check
echo "Adding mediabuntu repository"
sudo cp /etc/apt/sources.list /etc/apt/sources.bak
sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list
sudo apt-get update && sudo apt-get install --assume-yes --force-yes medibuntu-keyring && sudo apt-get update
sudo apt-get --assume-yes --force-yes install googleearth
echo "Restoring sources."
sudo cp /etc/apt/sources.bak /etc/apt/sources.list
}

function gearthremove {
dpkg_check
echo "Removing Google Earth"
sudo apt-get remove --assume-yes --force-yes --purge googleearth googleearth-*
cleanup
}

function ripping {
# COMPLETE
dpkg_check
if !    sudo apt-get --assume-yes install dvdrip vcdimager cdrdao xcdroast subtitleripper ogmtools xvid4conf rar unrar mjpegtools
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
sudo ln -fs /usr/bin/rar /usr/bin/rar-2.80
}

function firefoxicedteaplugin {
# COMPLETE
dpkg_check
if    echo $KDE_FULL_SESSION | grep "true"
then
   if !    DEBIAN_FRONTEND=kde sudo apt-get --assume-yes install sun-java6-jre sun-java6-bin
   then
      AX_fatal "An apt-based error occured and installation was unsuccessful";
   fi
else
   if !    DEBIAN_FRONTEND=gnome sudo apt-get --assume-yes install sun-java6-jre sun-java6-bin
   then
      AX_fatal "An apt-based error occured and installation was unsuccessful";
   fi
fi
sudo update-alternatives --set java /usr/lib/jvm/java-6-sun/jre/bin/java
dpkg_check
if    echo $KDE_FULL_SESSION | grep "true"
then
   if !    DEBIAN_FRONTEND=kde sudo apt-get --assume-yes install icedtea-java7-jre icedtea-java7-bin icedtea-java7-plugin
   then
      AX_fatal "An apt-based error occured and installation was unsuccessful";
   fi
else
   if !    DEBIAN_FRONTEND=gnome sudo apt-get --assume-yes install icedtea-java7-jre icedtea-java7-bin icedtea-java7-plugin
   then
      AX_fatal "An apt-based error occured and installation was unsuccessful";
   fi
fi
sudo update-alternatives --set java /usr/lib/jvm/java-6-sun/jre/bin/java
}



function totemxine {
# COMPLETE
dpkg_check
if !    sudo apt-get --assume-yes install totem-xine
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function googlepicasa {
# COMPLETE
dpkg_check
if [ "$architecture" = "x86_64" ]; then
if test -f picasa_2.7.3736-15_amd64.deb
then
sudo dpkg -i picasa_2.7.3736-15_amd64.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/picasa.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Picasa..."
else
wget -c http://dl.google.com/linux/deb/pool/non-free/p/picasa/picasa_2.7.3736-15_amd64.deb 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/picasa.xpm --width=600 --height=100 --progress --auto-close --title="Downloading Picasa..."
sudo chmod +x picasa_2.7.3736-15_amd64.deb
sudo dpkg -i picasa_2.7.3736-15_amd64.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/picasa.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Picasa..."
fi
else
if test -f picasa_2.7.3736-15_i386.deb
then
sudo dpkg -i picasa_2.7.3736-15_i386.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/picasa.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Picasa..."
else
wget -c http://dl.google.com/linux/deb/pool/non-free/p/picasa/picasa_2.7.3736-15_i386.deb 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/picasa.xpm --width=600 --height=100 --progress --auto-close --title="Downloading Picasa..."
sudo chmod +x picasa_2.7.3736-15_i386.deb
sudo dpkg -i picasa_2.7.3736-15_i386.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/picasa.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Picasa..."
fi
fi
}

function googlepremove {
dpkg_check
echo "Removing Google Picasa"
sudo apt-get remove --assume-yes --force-yes --purge picasa
cleanup
}

function wine {
# COMPLETE
dpkg_check
if !    sudo apt-get --assume-yes --force-yes install wine wine-doors
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function w32dvdcodecsremove {
dpkg_check
if [ "$architecture" = "x86_64" ]; then
if !    sudo apt-get remove --purge --assume-yes --force-yes w64codecs
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
else
if !    sudo apt-get remove --purge --assume-yes --force-yes w32codecs
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
fi
cleanup
}

function w32dvdcodecsinstall {
# COMPLETE
dpkg_check
if [ "$architecture" = "x86_64" ]; then
echo "Adding mediabuntu repository"
sudo cp /etc/apt/sources.list /etc/apt/sources.bak
sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list
sudo apt-get update && sudo apt-get install --assume-yes --force-yes medibuntu-keyring && sudo apt-get update
if !    sudo apt-get --assume-yes --force-yes install w64codecs libdvdread3 libdvdnav4 libxvidcore4
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
echo "64 bit codecs installed"
else
dpkg_check
echo "Adding mediabuntu repository"
sudo cp /etc/apt/sources.list /etc/apt/sources.bak
sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list
sudo apt-get update && sudo apt-get install --assume-yes --force-yes medibuntu-keyring && sudo apt-get update
dpkg_check
if !    sudo apt-get --assume-yes --force-yes install w32codecs libdvdread3 libdvdnav4 libxvidcore4
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
fi
}


function nautilusscripts {
# COMPLETE
cp -f /usr/share/ultamatix/conf/gedit-root $AXHOME/.gnome2/nautilus-scripts/
cp -f /usr/share/ultamatix/conf/root-nautilus-here $AXHOME/.gnome2/nautilus-scripts/
cp -f /usr/share/ultamatix/conf/search-here $AXHOME/.gnome2/nautilus-scripts/
cp -f /usr/share/ultamatix/conf/MakeUsplash $AXHOME/.gnome2/nautilus-scripts/
cp -f /usr/share/ultamatix/conf/MakeGDM $AXHOME/.gnome2/nautilus-scripts/
cp -f /usr/share/ultamatix/conf/MountISO $AXHOME/.gnome2/nautilus-scripts/
cp -f /usr/share/ultamatix/conf/Auto_Thumbnail $AXHOME/.gnome2/nautilus-scripts/
cp -f /usr/share/ultamatix/conf/Terminal-Here $AXHOME/.gnome2/nautilus-scripts/
}

function nscriptsremove {
rm $AXHOME/.gnome2/nautilus-scripts/gedit-root
rm $AXHOME/.gnome2/nautilus-scripts/root-nautilus-here
rm $AXHOME/.gnome2/nautilus-scripts/search-here
rm $AXHOME/.gnome2/nautilus-scripts/MakeUsplash
rm $AXHOME/.gnome2/nautilus-scripts/MakeGDM
rm $AXHOME/.gnome2/nautilus-scripts/MountISO
rm $AXHOME/.gnome2/nautilus-scripts/Auto_Thumbnail
rm $AXHOME/.gnome2/nautilus-scripts/Terminal-Here
}

function sunjavaJREJDK {
# COMPLETE
dpkg_check
if    echo $KDE_FULL_SESSION | grep "true"
then
   if !    DEBIAN_FRONTEND=kde sudo apt-get --assume-yes install sun-java6-jre sun-java6-bin sun-java6-jdk sun-java6-demo sun-java6-javadb
   then
      AX_fatal "An apt-based error occured and installation was unsuccessful";
   fi
else
   if !    DEBIAN_FRONTEND=gnome sudo apt-get --assume-yes install sun-java6-jre sun-java6-bin sun-java6-jdk sun-java6-demo sun-java6-javadb
   then
      AX_fatal "An apt-based error occured and installation was unsuccessful";
   fi
fi
sudo update-alternatives --set java /usr/lib/jvm/java-6-sun/jre/bin/java
}


function frostwireinstall {
# COMPLETE
dpkg_check
if    echo $KDE_FULL_SESSION | grep "true"
then
   if !    DEBIAN_FRONTEND=kde sudo apt-get --assume-yes install sun-java6-jre sun-java6-bin
   then
      AX_fatal "An apt-based error occured and installation was unsuccessful";
   fi
else
   if !    DEBIAN_FRONTEND=gnome sudo apt-get --assume-yes install sun-java6-jre sun-java6-bin
   then
      AX_fatal "An apt-based error occured and installation was unsuccessful";
   fi
fi
sudo update-alternatives --set java /usr/lib/jvm/java-6-sun/jre/bin/java
if test -f frostwire-4.17.0.i586.deb
then
dpkg_check
sudo dpkg -i frostwire-4.17.0.i586.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/frostwire.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Frostwire..."
else
wget -c http://hermes.frostwire.com/frostwire/4.17.0/frostwire-4.17.0.i586.deb 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/frostwire.png --width=600 --height=100 --progress --auto-close --title="Downloading Frostwire..."
sudo dpkg -i frostwire-4.17.0.i586.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/frostwire.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Frostwire..."
fi
}

function frostremove {
dpkg_check
echo "Removing Frostwire"
sudo apt-get remove --assume-yes --force-yes --purge frostwire
cleanup
}

function googlepremove {
dpkg_check
echo "Removing Google Picasa"
sudo apt-get remove --assume-yes --force-yes --purge picasa
cleanup
}


function clipart {
# COMPLETE
dpkg_check
if !    sudo apt-get --assume-yes install openclipart openclipart-openoffice.org openclipart-png openclipart-svg
then
       AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function clipartremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge openclipart openclipart-openoffice.org openclipart-png openclipart-svg
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function gmailchecker {
# COMPLETE
dpkg_check
if !    sudo apt-get --assume-yes install checkgmail libcrypt-simple-perl
then
        AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function gmailcheckerremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge checkgmail libcrypt-simple-perl
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function xdvdshrink {
# COMPLETE
dpkg_check
if !    ((dpkg -s dvdshrink | grep "Version: 2.6.1-11") && (dpkg -s dvdshrink | grep "Status: install ok installed"))
then   
   dpkg_check
   rm -f $AXHOME/dvdshrink-2.6.1-10mdk.noarch.rpm
   rm -f $AXHOME/dvdshrink_2.6.1-11_all.deb
   if !    sudo apt-get --assume-yes install libatk1.0-0 libc6 libcairo2 libfontconfig1 libglib2.0-0 libgtk2.0-0 libpango1.0-0 libx11-6 libxcursor1 libxext6 libxfixes3 libxi6 libxinerama1 xterm dvdauthor libxrandr2 libxrender1 alien subtitleripper
   then
      AX_fatal "An apt-based error occurred and installation was unsuccessful";
   fi
   if    wget --tries=2 --timeout=30 http://superb-east.dl.sourceforge.net/sourceforge/dvdshrink/dvdshrink-2.6.1-10mdk.noarch.rpm
   then
      dir_ch
      
      dpkg_check
      dir_ch
      sudo alien $AXHOME/dvdshrink-2.6.1-10mdk.noarch.rpm
      dir_ch
      sudo dpkg -i $AXHOME/dvdshrink_2.6.1-11_all.deb
      sudo cp -f /usr/share/ultamatix/conf/dvdshrink.desktop /usr/share/applications/
      sudo rm -f $AXHOME/dvdshrink-2.6.1-10mdk.noarch.rpm $AXHOME/dvdshrink_2.6.1-11_all.deb
   else
      AX_fatal "The installation failed because the DVDshrink package could not be downloaded";
   fi
else
   AX_fatal "Ultamatix has detected an installed version of DVDshrink same as the one Ultamatix would have installed. You should manually remove the DVDshrink package before attempting to install it with Ultamatix.";
fi
}

function songbird {
dpkg_check
if [ "$architecture" = "x86_64" ]; then
if test -f songbird_0.6.1-0~getdeb1_amd64.deb
then
sudo dpkg -i songbird_0.6.1-0~getdeb1_amd64.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/songbird.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Songbird..."
else
wget -c http://ubuntusoftware.info/songbird_0.6.1-0~getdeb1_amd64.deb 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/songbird.xpm --width=600 --height=100 --progress --auto-close --title="Downloading Songbird..."
sudo chmod +x songbird_0.6.1-0~getdeb1_amd64.deb
sudo dpkg -i songbird_0.6.1-0~getdeb1_amd64.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/songbird.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Songbird..."
fi
else
if test -f songbird_0.6.1-0~getdeb1_i386.deb
then
sudo dpkg -i songbird_0.6.1-0~getdeb1_i386.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/songbird.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Songbird..."
else
wget -c http://ubuntusoftware.info/songbird_0.6.1-0~getdeb1_i386.deb 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/songbird.xpm --width=600 --height=100 --progress --auto-close --title="Downloading Songbird..."
sudo chmod +x songbird_0.6.1-0~getdeb1_i386.deb
sudo dpkg -i songbird_0.6.1-0~getdeb1_i386.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/songbird.xpm --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Songbird..."
fi
fi
}

function sbremove {
dpkg_check
echo "Removing songbird"
sudo apt-get remove --purge --assume-yes --force-yes songbird
cleanup
}

function cxstandard {
# COMPLETE
if    AX_question "CrossOver Office Standard 6.1.0 makes it possible to use Windows applications such as Microsoft Office, Quicken, and Lotus Notes on Linux. However, this software will only remain fully functional for thirty days, after which, you need to purchase a license from Codeweavers (the manufacturers of this software) for USD 39.95 to continue using it. Do you want to proceed?";
then
   dpkg_check
       
       if !    sudo apt-get --assume-yes --force-yes install crossover-technalign
       then
               AX_fatal "An apt-based error occurred and installation was unsuccessful"
       fi
else
       AX_fatal "You chose not to install CrossOver Office Standard 6.1.0"
fi
}

function cxpro {
# COMPLETE
if    AX_question "CrossOver Office Professional 6.1.0 makes it possible to use Windows applications such as Microsoft Office, Quicken, and Lotus Notes on Linux. However, this software will only remain fully functional for thirty days, after which, you need to purchase a license from Codeweavers (the manufacturers of this software) for USD 69.95 to continue using it. Do you want to proceed?";
then
   dpkg_check
       
       if !    sudo apt-get --assume-yes --force-yes install crossoverpro-technalign
       then
               AX_fatal "An apt-based error occurred and installation was unsuccessful"
       fi
else
       AX_fatal "You chose not to install CrossOver Office Professional 6.1.0"
fi
}


function devessentials {
# COMPLETE
dpkg_check
if !    sudo apt-get --assume-yes --force-yes install build-essential devscripts dh-buildinfo dpkg-dev alien ubuntu-dev-tools
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}


function vmwareserver {
# COMPLETE
dpkg_check
if   dpkg -s vmware-player | grep "Status: install ok installed"
then
   if   AX_question "VMware Server cannot be installed if VMware Player is currently installed. If you want to remove VMware Player and install VMware Server then hit YES or else hit NO. If you hit NO, Ultamatix will resume with the rest of the chosen options.";
      then           
      
      dpkg_check
      if !    sudo apt-get --assume-yes --force-yes --purge remove vmware-player vmware-player-kernel-modules
      then
         AX_info "An apt-based error occurred and uninstallation was unsuccessful";
      fi
      sleep 3
      dpkg_check
      if    echo $KDE_FULL_SESSION | grep "true";
      then
         if !    DEBIAN_FRONTEND=kde sudo apt-get --assume-yes --force-yes install vmware-server vmware-server-kernel-modules
         then
            AX_fatal "An apt-based error occurred and installation was unsuccessful";
         fi
      else
         if !    DEBIAN_FRONTEND=gnome sudo apt-get --assume-yes --force-yes install vmware-server vmware-server-kernel-modules
         then
            AX_fatal "An apt-based error occurred and installation was unsuccessful ";
         fi
      fi
      
   else
            AX_fatal "You chose to keep VMware Player and not install VMware Server ";   

      fi
else
   dpkg_check
   if    echo $KDE_FULL_SESSION | grep "true";
   then
      if !    DEBIAN_FRONTEND=kde sudo apt-get --assume-yes --force-yes install vmware-server vmware-server-kernel-modules
      then
         AX_fatal "An apt-based error occurred and installation was unsuccessful";
      fi
   else
      if !    DEBIAN_FRONTEND=gnome sudo apt-get --assume-yes --force-yes install vmware-server vmware-server-kernel-modules
      then
         AX_fatal "An apt-based error occurred and installation was unsuccessful ";
      fi
   fi
fi
}


function virtualbox {
# COMPLETE
dpkg_check
if    echo $KDE_FULL_SESSION | grep "true"
then       
   if !    DEBIAN_FRONTEND=kde sudo apt-get --assume-yes  --force-yesinstall virtualbox
   then
      AX_fatal "An apt-based error occured and installation was unsuccessful";
   fi
else
   if !    DEBIAN_FRONTEND=gnome sudo apt-get --assume-yes --force-yes install virtualbox
   then
      AX_fatal "An apt-based error occured and installation was unsuccessful";
   fi
fi
}


function ooxmltranslator {
# COMPLETE
dpkg_check
if !    sudo apt-get --assume-yes --force-yes install odf-converter
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function assaultcubeinstall {
dpkg_check
if !    sudo apt-get --assume-yes --force-yes install assaultcube
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function assaultcuberemove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes assaultcube
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function amobaxinstall {
dpkg_check
if !    sudo apt-get --assume-yes --force-yes install amoebax
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function amobaxremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes amoebax
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi

cleanup
}

function sourinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes sauerbraten
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function sourremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge sauerbraten
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function nexuizinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes nexuiz
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function nexuizremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge nexuiz
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function glestinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes glest
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function glestremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge glest
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi

cleanup
}

function tremulousinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes tremulous
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function tremulousremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge tremulous
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function wesnothinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes wesnoth
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function wesnothremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge wesnoth
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function gftpinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes gftp
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function gftpremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge gftp
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function warsowinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes warsow
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function warsowremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge warsow
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function boswarsinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes boswars
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi

}

function boswarsremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge boswars
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function vdriftinstall {

dpkg_check
if !    sudo apt-get install --assume-yes --force-yes vdrift-full
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function vdriftremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge vdrift-full
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function bzflaginstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes bzflag
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi

}

function bzflagremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge bzflag
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function screenletsinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes screenlets
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function screenletsremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge screenlets
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function gdeskletsinstall {

dpkg_check
if !    sudo apt-get install --assume-yes --force-yes gdesklets
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi

}

function gdeskletsremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge gdesklets
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function utweakinstall {
dpkg_check
if test -f ubuntu-tweak_0.3.4-1~ppa1_all.deb
then
sudo dpkg -i ubuntu-tweak_0.3.4-1~ppa1_all.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/tweak.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Ubuntu Tweak..."
else
wget -c http://ubuntu-tweak.googlecode.com/files/ubuntu-tweak_0.3.4-1~ppa1_all.deb 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/tweak.png --width=600 --height=100 --progress --auto-close --title="Downloading Ubuntu Tweak..."
sudo chmod +x ubuntu-tweak_0.3.4-1~ppa1_all.deb
sudo dpkg -i ubuntu-tweak_0.3.4-1~ppa1_all.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/tweak.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Ubuntu Tweak..."
fi
}

function utweakremove {
dpkg_check
if !    sudo apt-get remove --assume-yes --force-yes --purge ubuntu-tweak
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function flashinstall {
dpkg_check
if [ "$architecture" = "x86_64" ]; then
sudo apt-get remove --assume-yes --force-yes --purge nspluginwrapper flashplugin-nonfree gnash gnash-common gnash-tools
sudo rm -rfd /usr/lib/nspluginwrapper
sudo rm -f /usr/lib/firefox-addons/plugins/libflashplayer.so
sudo apt-get install -y --force-yes --assume-yes nspluginwrapper flashplugin-nonfree lib32nss-mdns
sudo apt-get autoremove --assume-yes --force-yes
sudo ln -sf /usr/lib/nspluginwrapper/plugins/npwrapper.libflashplayer.so /usr/lib/firefox-addons/plugins/
sudo ln -sf /usr/lib/nspluginwrapper/plugins/npwrapper.libflashplayer.so /usr/lib/firefox-3.0/plugins/
else
if !    sudo apt-get install --assume-yes --force-yes flashplugin-nonfree
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
fi
}

function flashremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes flashplugin-nonfree
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function glob2install {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes glob2
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function glob2remove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes glob2
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function freecolinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes freecol
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function freecolremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes freecol
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function flightgearinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes flightgear
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function flightgearremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes flightgear
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function frozeninstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes frozen-bubble
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function frozenremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes frozen-bubble
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function wopinstall {
#make sure no other package manager is running
dpkg_check
#see if it has already been downloaded
if test -f worldofpadman.run
then
#if it has install as requested
./worldofpadman.run 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/wop.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing World Of Padman..."
else
#download it
wget -c http://thilo.kickchat.com/download/worldofpadman.run 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/wop.png --width=600 --height=100 --progress --auto-close --title="Downloading World Of Padman..."
#set permissions to install
sudo chmod +x worldofpadman.run
#install it
./worldofpadman.run 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/wop.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing World Of Padman..."
fi
#create Icon since they cant seem to do it right
#since we have root we need to discover normal username so we can create the shortcut & set proper permissions
NU=$(cat /etc/passwd | grep 1000 | cut -d: -f1)
#set proper permissions
sudo chown -R $NU:$NU "/usr/local/games/WoP/"
if [ "$architecture" = "x86_64" ]; then
#64 bit icon creation
sudo echo "[Desktop Entry]
Name=World Of Padman 
Comment=World of padman
Exec=/usr/local/games/WoP/wop-engine.x86_64
Icon=/usr/local/games/WoP/wop.png
Terminal=false
Type=Application
Categories=Application;Game;" >> /usr/share/applications/worldofpadman.desktop
else
#32 bit icon creation
sudo echo "[Desktop Entry]
Name=World Of Padman 
Comment=World of padman
Exec=/usr/local/games/WoP/wop-engine.i386
Icon=/usr/local/games/WoP/wop.png
Terminal=false
Type=Application
Categories=Application;Game;" >> /usr/share/applications/worldofpadman.desktop
fi
}

function wopremove {
#created custom uninstaller since thiers does not work.  kicks back "Could not find a usable uninstall program. Aborting."
#find username it installed under
NU=$(cat /etc/passwd | grep 1000 | cut -d: -f1)
#create directory incase they installed it elsewhere, no sense in scraping all thier games
sudo mkdir /usr/local/games/WoP/ 2>/dev/null
sudo mkdir /home/$NU/WoP 2>/dev/null
#remove it
echo "Removing World Of Padman please wait ..."
sudo rm -R /home/$NU/WoP 2>/dev/null
sudo rm -R /usr/local/games/WoP/ 2>/dev/null
#remove shortcut created earlier
sudo rm /usr/share/applications/worldofpadman.desktop
echo "Done."
}

function wormuxinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes wormux
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function wormuxremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes wormux
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function fooinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes foobillard
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function fooremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes foobillard
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function scorched3dinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes scorched3d
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function scorched3dremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes scorched3d
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function tileinstall {
dpkg_check
if [ "$architecture" = "x86_64" ]; then
if test -f TileRacer0.702_Setup.sh
then
linux32 ./TileRacer0.702_Setup.sh 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/wop.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Tile Racer..."
else
wget -c http://ubuntusoftware.info/software/Games/TileRacer0.702_Setup.sh 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/wop.png --width=600 --height=100 --progress --auto-close --title="Downloading Tile Racer..."
sudo chmod +x TileRacer0.702_Setup.sh
linux32 ./TileRacer0.702_Setup.sh 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/wop.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Tile Racer..."
fi
else
if test -f TileRacer0.702_Setup.sh
then
./TileRacer0.702_Setup.sh 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/tileracer.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Tile Racer..."
else
wget -c http://ubuntusoftware.info/software/Games/TileRacer0.702_Setup.sh 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/tileracer.png --width=600 --height=100 --progress --auto-close --title="Downloading Tile Racer..."
sudo chmod +x TileRacer0.702_Setup.sh
./TileRacer0.702_Setup.sh 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/tileracer.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Tile Racer..."
fi
fi

#create Icon since they cant seem to do it right
since we have root we need to discover normal username so we can create the shortcut
NU=$(cat /etc/passwd | grep 1000 | cut -d: -f1)
sudo echo "[Desktop Entry]
Name=Tile Racer 
Comment=Tile Racer
Exec=/usr/local/games/TileRacer/TileRacer.sh
Icon=/usr/local/games/TileRacer/TileRacer128.png
Terminal=false
Type=Application
Categories=Application;Game;" >> /usr/share/applications/tileracer.desktop
}

function tileremove {
sudo mkdir /usr/local/games/TileRacer 2>/dev/null
#remove it
echo "Removing Tile Racer please wait ..."
sudo rm -R /usr/local/games/TileRacer
#remove shortcut created earlier
sudo rm /usr/share/applications/tileracer.desktop
echo "Done."
}

function urbaninstall {
dpkg_check
if test -f UrbanTerror_41_FULL.zip
then
unzip -o UrbanTerror_41_FULL.zip 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/q3ut.ico --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Urban Terror..."
else
wget -c http://mirror.kickassctf.com/UrbanTerror_41_FULL.zip 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/q3ut.ico --width=600 --height=100 --progress --auto-close --title="Downloading Urban Terror..."
unzip -o UrbanTerror_41_FULL.zip 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/q3ut.ico --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Urban Terror..."
fi
#get user home
NU=$(cat /etc/passwd | grep 1000 | cut -d: -f1)
#set executable 64bit & 32
cd UrbanTerror
sudo chmod +x ioUrbanTerror.x86_64
sudo chmod +x ioUrbanTerror.i386
if [ "$architecture" = "x86_64" ]; then
echo "Creating shortcut for 64 bit users"
sudo echo "[Desktop Entry]
Name=Urban Terror 
Comment=Urban Terror
Exec=/home/$NU/UrbanTerror/ioUrbanTerror.x86_64
Icon=/home/$NU/UrbanTerror/q3ut4/q3ut.ico
Terminal=false
Type=Application
Categories=Application;Game;" >> /usr/share/applications/urbanterror.desktop
else
echo "Creating shortcut for 32 bit users"
sudo echo "[Desktop Entry]
Name=Urban Terror 
Comment=Urban Terror
Exec=/home/$NU/UrbanTerror/ioUrbanTerror.i386
Icon=/home/$NU/UrbanTerror/q3ut4/q3ut.ico
Terminal=false
Type=Application
Categories=Application;Game;" >> /usr/share/applications/urbanterror.desktop
fi
}

function urbanremove {
NU=$(cat /etc/passwd | grep 1000 | cut -d: -f1)
#create directory incase they installed it elsewhere no sense in scraping all thier games
sudo mkdir /home/$NU/UrbanTerror 2>/dev/null
#remove it
echo "Removing Urban Terror please wait ..."
sudo rm -R /home/$NU/UrbanTerror
#remove shortcut created earlier
sudo rm /usr/share/applications/urbanterror.desktop
echo "Done."
}

function vegainstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes vegastrike
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function vegaremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes vegastrike
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function neverballinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes neverball
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function neverballremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes neverball
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function sniperinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes orbital-eunuchs-sniper
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function sniperremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes orbital-eunuchs-sniper
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function chessinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes 3dchess brutalchess dreamchess gnome-chess gtkboard knights
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

#add here down to changelog

function chessremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes 3dchess brutalchess dreamchess gnome-chess gtkboard knights
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function pingusinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes pingus
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function pingusremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes pingus
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function ufoaiinstall {
dpkg_check
if [ "$architecture" = "x86_64" ]; then
echo "Sorry currently no x64 support"
AX_fatal "An apt-based error occurred and installation was unsuccessful - No support for x64 architecture.";
sleep 1
else
if !    sudo apt-get install --assume-yes --force-yes ufoai
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
fi
}

function ufoairemove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes ufoai
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function warzoneinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes warzone2100
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function warzoneremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes warzone2100
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function darkinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes dark-oberon
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function darkremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes dark-oberon
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function firefoxmplayerplugin {
# COMPLETE
dpkg_check
if [ "$architecture" = "x86_64" ]; then
#64 bit
if test -f libdirectfb-0.9-25_0.9.25.1-5ubuntu2_amd64.deb
then
dpkg -i libdirectfb-0.9-25_0.9.25.1-5ubuntu2_amd64.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/ultimate_icon.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Required Library..."
else
wget -c http://mirrors.kernel.org/ubuntu/pool/main/d/directfb/libdirectfb-0.9-25_0.9.25.1-5ubuntu2_amd64.deb 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/ultimate_icon.png --width=600 --height=100 --progress --auto-close --title="Downloading Required Library..."
dpkg -i libdirectfb-0.9-25_0.9.25.1-5ubuntu2_amd64.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/ultimate_icon.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Required Library..."
fi
else
#32 bit
if test -f libdirectfb-0.9-25_0.9.25.1-5ubuntu2_i386.deb
then
dpkg -i libdirectfb-0.9-25_0.9.25.1-5ubuntu2_i386.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/ultimate_icon.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Required Library..."
else
wget -c http://mirrors.kernel.org/ubuntu/pool/main/d/directfb/libdirectfb-0.9-25_0.9.25.1-5ubuntu2_i386.deb 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/ultimate_icon.png --width=600 --height=100 --progress --auto-close --title="Downloading Required Library..."
dpkg -i libdirectfb-0.9-25_0.9.25.1-5ubuntu2_i386.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/ultimate_icon.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Required Library..."
fi
fi

if !    sudo apt-get install --assume-yes --force-yes mplayer mplayer-fonts mozilla-mplayer
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
#remove totem-plugin
dpkg_check
sudo apt-get remove --purge --assume-yes --force-yes totem-mozilla
}

function firefoxmplayerpluginremove {
dpkg_check
if !    sudo apt-get --assume-yes remove mozilla-mplayer
then
        AX_fatal "An apt-based error occured and installation was unsuccessful";
fi
}

function fusionbuild {
dpkg_check
#grab build tools first
if !    sudo apt-get install --assume-yes --force-yes build-essential libxcomposite-dev libpng12-dev libsm-dev libxrandr-dev libxdamage-dev libxinerama-dev libstartup-notification0-dev libgconf2-dev libgl1-mesa-dev libglu1-mesa-dev libmetacity-dev librsvg2-dev libdbus-1-dev libdbus-glib-1-dev libgnome-desktop-dev libgnome-window-settings-dev gitweb curl autoconf automake automake1.9 libtool intltool libxslt1-dev xsltproc libwnck-dev python-dev python-pyrex fusion-icon
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
if   AX_question "This is a very experimental script!!! You risk having to possibly re-install your O/S or break compiz.  If YOU ARE SURE you want to install Compiz fusion (git built) then hit YES or else hit NO. If you hit NO, Ultamatix will resume with the rest of the chosen options.";
      then
#retrieve username
NU=$(cat /etc/passwd | grep 1000 | cut -d: -f1)
#Create location to build in
mkdir /home/$NU/compiz-scripts/ 2>/dev/null
cd /home/$NU/compiz-scripts/ 2>/dev/null

#Detect and fully utilize the processor(s)
CORES=1
CORES=$(cat /proc/cpuinfo | grep processor | wc -l)
echo "$CORES CPU Core(s) detected and utilized."

SUPRESS="true" ## set to false to display compile-stuff.

# Needed for premerge plugins
ITEMS="fusion/libraries/bcop"
# The beryl plugins, ported to compiz
ITEMS="$ITEMS fusion/plugins-main fusion/plugins-extra"
# Emerald window decorator
ITEMS="$ITEMS fusion/decorators/emerald fusion/decorators/emerald-themes"

### CCS
# (formerly libbs), you can safly comment out this and use ini or gconf
ITEMS="$ITEMS fusion/compizconfig/libcompizconfig"
ITEMS="$ITEMS fusion/compizconfig/compizconfig-python"
ITEMS="$ITEMS fusion/compizconfig/ccsm"
REPO="git://anongit.opencompositing.org/"
# For developers, you may have to add your username.
#REPO="git+ssh://git.opencompositing.org/git/"

# Compiz repo. "compiz" is appended.
COMPIZ="git://git.freedesktop.org/git/xorg/app/"

# Arguments for compiz' autogen.sh.  You shouldn't need this. I do.
COMPIZARGS="--enable-librsvg --enable-gtk --enable-metacity"

GENERICARGS=""
DEFPREFIX="/usr/local"
MYPREFIX=${PREFIX:-$DEFPREFIX}

# Check for git
if [ -z "$(which git-clone)" ]; then
   echo "You must have GIT installed to use this script. Install the git-core package."
   exit 1;
fi
if [ -z "$(which git-pull)" ]; then
   echo "You must have GIT installed to use this script. Install the git-core package."
   exit 1;
fi

function get_repo
{
echo "Downloading latest / greatest compiz fusion please wait..."
   b=`echo $1 | sed 's/.*\///g'`
   here=$PWD
   if [ -d $b ]; then
      cd $b
      echo "Updating $b";
      if [ $SUPRESS = "true" ]; then
         git-pull > /dev/null
      else
         git-pull
      fi
      cd $here
   else
      echo "Cloning $b";
      git-clone $2$1
   fi
}

# Get compiz
get_repo "compiz" $COMPIZ

# Get everything else
for a in $ITEMS ; do
   get_repo $a $REPO
done
for a in $ITEMS_NON_SUDO ; do
   get_repo $a $REPO
done

# Builds $1 if autogen.sh exist.
function build
{
echo "Begining build process, this will take a long time please wait..."
   if [ ! -f $1/autogen.sh -a ! -f $1/Makefile ]; then
      echo "Don't know how to build $1 (no autogen.sh or Makefile). Skipping.";
      return;
   fi
   if [ ! -d $1 ]; then
      echo "$1 isn't a directory. Bailing out.";
      return 1;
   fi
   OLDPWD=$PWD
   cd $1
   if [ -f autogen.sh ]; then
       echo "Building $1: ./autogen.sh $2"
       if [ $SUPRESS = "true" ]; then
         ./autogen.sh $2 > /dev/null
       else
           ./autogen.sh $2
       fi
       if [ $? -ne 0 ]; then
         echo "$1's autogen.sh reports errors. Bailing.";
         cd $OLDPWD
         return 1
       fi
   fi

   echo "Building $1: make"
   if [ $SUPRESS = "true" ]; then
      make -j$CORES> /dev/null
   else
      make -j$CORES
   fi
   if [ $? -ne 0 ]; then
      echo "$1's make returned errors. Bailing.";
      cd $OLDPWD
      return 1
   fi

   echo "Building $1: $3 make install"
   if [ $SUPRESS = "true" ]; then
      $3 make install > /dev/null
   else
      $3 make install
   fi
   if [ $? -ne 0 ]; then
      echo "$1's sudo make install returned an error and might not work.";
      cd $OLDPWD
      return 1
   fi
   cd $OLDPWD
}

# Build compiz first, and no need to continue if it fails.
if ! build compiz "$COMPIZARGS --prefix=$MYPREFIX" "sudo"; then
   echo "Failed to build compiz. No reason to continue.";
   exit 2;
fi

# Build everything else now.
for a in $ITEMS; do
   b=`echo $a | sed 's/.*\///g'`
   if ! build $b "$GENERICARGS --prefix=$MYPREFIX" "sudo"; then
      bail_ask "Failed to build $b !"
   fi
done
for a in $ITEMS_NON_SUDO; do
   b=`echo $a | sed 's/.*\///g'`
   if ! build $b "$GENERICARGS --prefix=$MYPREFIX" ""; then
      bail_ask "Failed to build $b !"
   fi
done

      else
                AX_fatal "You chose not to install Compiz Fusion (git built)";     
        fi


}

function fusionremove {
dpkg_check
sudo rm -rf /etc/compiz* > /dev/null 2>&1
   sudo rm -rf /etc/xdg/compiz* > /dev/null 2>&1
   sudo rm -rf /home/*/.compiz* > /dev/null 2>&1
   sudo rm -rf /home/*/.gconf/apps/compiz* > /dev/null 2>&1
   sudo rm -rf /root/.compiz* > /dev/null 2>&1
   sudo rm -rf /usr/bin/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/bin/bcop > /dev/null 2>&1
   sudo rm -rf /usr/bin/ccsm > /dev/null 2>&1
   sudo rm -rf /usr/bin/emerald* > /dev/null 2>&1
   sudo rm -rf /usr/bin/fusion-icon > /dev/null 2>&1
   sudo rm -rf /usr/bin/gtk-window-decorator > /dev/null 2>&1
   sudo rm -rf /usr/etc/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/etc/gconf/schemas/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/include/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/lib/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/lib/emerald* > /dev/null 2>&1
   sudo rm -rf /usr/lib/libcompiz* > /dev/null 2>&1
   sudo rm -rf /usr/lib/libdecoration* > /dev/null 2>&1
   sudo rm -rf /usr/lib/libemerald* > /dev/null 2>&1
   sudo rm -rf /usr/lib/libcompiz* > /dev/null 2>&1
   sudo rm -rf /usr/lib/pkgconfig/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/lib/pkgconfig/emerald* > /dev/null 2>&1
   sudo rm -rf /usr/lib/pkgconfig/libcompiz* > /dev/null 2>&1
   sudo rm -rf /usr/lib/pkgconfig/libdecoration* > /dev/null 2>&1
   sudo rm -rf /usr/lib/pkgconfig/libemerald* > /dev/null 2>&1
   sudo rm -rf /usr/share/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/share/bcop* > /dev/null 2>&1
   sudo rm -rf /usr/share/ccsm* > /dev/null 2>&1
   sudo rm -rf /usr/share/emerald* > /dev/null 2>&1
   sudo rm -rf /usr/share/pkgconfig/bcop.pc > /dev/null 2>&1
   sudo rm -rf /usr/local/bin/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/local/bin/bcop > /dev/null 2>&1
   sudo rm -rf /usr/local/bin/ccsm > /dev/null 2>&1
   sudo rm -rf /usr/local/bin/emerald* > /dev/null 2>&1
   sudo rm -rf /usr/local/bin/fusion-icon > /dev/null 2>&1
   sudo rm -rf /usr/local/bin/gtk-window-decorator > /dev/null 2>&1
   sudo rm -rf /usr/local/etc/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/local/etc/gconf/schemas/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/local/include/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/local/lib/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/local/lib/emerald* > /dev/null 2>&1
   sudo rm -rf /usr/local/lib/libcompiz* > /dev/null 2>&1
   sudo rm -rf /usr/local/lib/libdecoration* > /dev/null 2>&1
   sudo rm -rf /usr/local/lib/libemerald* > /dev/null 2>&1
   sudo rm -rf /usr/local/lib/pkgconfig/emerald* > /dev/null 2>&1
   sudo rm -rf /usr/local/lib/pkgconfig/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/local/lib/pkgconfig/libcompiz* > /dev/null 2>&1
   sudo rm -rf /usr/local/lib/pkgconfig/libdecoration* > /dev/null 2>&1
   sudo rm -rf /usr/local/lib/pkgconfig/libemerald* > /dev/null 2>&1
   sudo rm -rf /usr/local/share/compiz* > /dev/null 2>&1
   sudo rm -rf /usr/local/share/bcop* > /dev/null 2>&1
   sudo rm -rf /usr/local/share/ccsm* > /dev/null 2>&1
   sudo rm -rf /usr/local/share/emerald* > /dev/null 2>&1
   sudo rm -rf /usr/local/share/pkgconfig/bcop.pc > /dev/null 2>&1
   sudo rm /usr/local/share/locale/*/LC_MESSAGES/*compiz*.mo > /dev/null 2>&1
   sudo rm /usr/share/locale-langpack/*/LC_MESSAGES/compiz* > /dev/null 2>&1
   sudo rm /usr/lib/window-manager-settings/libcompiz.so > /dev/null 2>&1
   sudo rm /usr/lib/window-manager-settings/libcompiz.a > /dev/null 2>&1
   sudo rm /usr/lib/window-manager-settings/libcompiz.la > /dev/null 2>&1
   sudo rm /usr/local/lib/python2.5/site-packages/compiz* > /dev/null 2>&1
cleanup
}

function ntfsinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes ntfs-config
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function ntfsremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes ntfs-config
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function k9copyinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes k9copy
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function k9copyremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes k9copy
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function amsninstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes amsn
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function amsnremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes amsn
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function pidgininstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes pidgin pidgin-guifications pidgin-plugin-pack pidgin-themes pidgin-data
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function pidginremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes pidgin pidgin-guifications pidgin-plugin-pack pidgin-themes pidgin-data
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function kvircinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes kvirc
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function kvircremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes kvirc
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function themesinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes gnome-art blubuntu-look comixcursors crystalcursors edgy-gdm-themes gcursor gdm-themes metacity-themes peace-look tropic-look gdm-themes gnome-themes-extras industrialtango-theme peace-look metacity-themes gnome-icon-theme-* ubuntu-artwork outdoors-theme gtk-theme-switch gtk-theme-switch gtk-clearlooks-* enlightenment-theme-* gtk-engines-* gtk2-engines-* ttf-bitstream-vera ttf-freefont ttf-arphic-bkai00mp gsfonts-x11 ttf-devanagari-fonts ttf-farsiweb ttf-sjfonts ttf-punjabi-fonts ttf-indic-fonts ttf-kochi-gothic-naga10 ttf-thai-tlwg ttf-kochi-mincho ttf-bangla-fonts ttf-bengali-fonts ttf-mgopen ttf-nafees ttf-kannada-fonts ttf-xfree86-nonfree-syriac ttf-unfonts ttf-bpg-georgian-fonts ttf-uralic t1-xfree86-nonfree ttf-fossfonts ttf-f500 ttf-isabella ttf-larabie-deco ttf-larabie-straight ttf-larabie-uncommon ttf-staypuft ttf-summersby ttf-ubuntu-title xfonts-artwiz xfonts-intl-european ttf-dustin startupmanager
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful installing standard apps / themes";
fi

}

function uethemesinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes kvirc
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function uethemesremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes kvirc
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function chromiuminstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes chromium
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function chromiumremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes chromium
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function dragoninstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes dragonplayer
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function dragonremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes dragonplayer
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function kubuntuinstall {
dpkg_check
if   AX_question "This is a very experimental script!!! You risk having to possibly re-install your O/S, this also can not be undone.  If YOU ARE SURE you want to install KUbuntu Desktop Environment then hit YES or else hit NO. If you hit NO, Ultamatix will resume with the rest of the chosen options.";
      then
if !    sudo apt-get install --assume-yes --force-yes kubuntu-desktop && sudo apt-get remove --purge --assume-yes --force-yes kubuntu-docs
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
else
   AX_fatal "You chose not to install KDE Environment";
fi
}

function kubunturemove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes kubuntu-desktop
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function xubuntuinstall {
dpkg_check
if   AX_question "This is a very experimental script!!! You risk having to possibly re-install your O/S, this also can not be undone.  If YOU ARE SURE you want to install XUbuntu Desktop Environment then hit YES or else hit NO. If you hit NO, Ultamatix will resume with the rest of the chosen options.";
      then
if !    sudo apt-get install --assume-yes --force-yes xubuntu-desktop
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
else
   AX_fatal "You chose not to install XUbuntu Environment";
fi
}

function xubunturemove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes xubuntu-desktop
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function eubuntuinstall {
dpkg_check
if   AX_question "This is a very experimental script!!! You risk having to possibly re-install your O/S, this also can not be undone.  If YOU ARE SURE you want to install EDUbuntu Desktop Environment then hit YES or else hit NO. If you hit NO, Ultamatix will resume with the rest of the chosen options.";
      then
if !    sudo apt-get install --assume-yes --force-yes edubuntu-desktop
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
else
   AX_fatal "You chose not to install EDUbuntu Environment";
fi
}

function eubunturemove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes edubuntu-desktop
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function amarokinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes amarok
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function amarokremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes amarok
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function transmissioninstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes transmission-gtk
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function transmissionremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes transmission-gtk
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function vlcinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes vlc
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function vlcremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes vlc
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function clamavinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes clamav
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function clamavremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes clamav
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function firestarterinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes firestarter
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function firestarterremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes firestarter
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function snortinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes snort
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function snortremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes snort
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function gridwarsinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes gridwars
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function gridwarsremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes gridwars
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function acetoneinstall {
dpkg_check
if [ "$architecture" = "x86_64" ]; then
echo "Sorry currently no support for x64 architecture."
AX_fatal "An apt-based error occurred and installation was unsuccessful - No support for x64 architecture.";
sleep 1
else
if !    sudo apt-get install --assume-yes --force-yes AcetoneISO2
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
fi
}

function acetoneremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes acetoneiso2
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function actioncubeinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes actioncube
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function actioncuberemove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes actioncube
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function gourmetinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes gourmet
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function gourmetremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes gourmet
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function avantinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes avant-window-navigator
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function avantremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes avant-window-navigator
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function livesinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes lives
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function livesremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes lives
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function startupinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes startupmanager
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function startupremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes startupmanager
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function buminstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes bum
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function bumremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes bum
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function bootchartinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes bootchart
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function bootchartremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes bootchart
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function bluefishinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes bluefish tidy
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function bluefishremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes bluefish
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function screeminstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes screem tidy
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function screemremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes screem
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function anjutainstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes anjuta
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function anjutaremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes anjuta
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function gladeinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes glade-3 glade-gnome-3
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function gladeremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes glade-3 glade-gnome-3
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function quantainstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes quanta kompare kimagemapeditor cervisia
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function quantaremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes quanta
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function dvdstylerinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes dvdstyler
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function dvdstylerremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes dvdstyler
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function mandvdinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes mandvd
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function mandvdremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes mandvd
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function sysinfoinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes sysinfo
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function sysinforemove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes sysinfo
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function hardinfoinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes hardinfo hwinfo
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function hardinforemove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes hardinfo hwinfo
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function bansheeinstall {
dpkg_check
if !    sudo apt-get install --assume-yes --force-yes banshee
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
}

function bansheeremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes banshee
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}

function ueinstall {
# COMPLETE
dpkg_check
if [ "$architecture" = "x86_64" ]; then
#64bit support
if test -f ultimate-edition-themes-.0.0.1_amd64.deb
then
sudo dpkg -i ultimate-edition-themes-.0.0.1_amd64.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/os.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Ultimate Edition Themes..."
else
wget -c http://ultamatix.com/download/ultimate-edition-themes-.0.0.1_amd64.deb 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/os.png --width=600 --height=100 --progress --auto-close --title="Downloading Ultimate Edition Themes..."
sudo chmod +x ultimate-edition-themes-.0.0.1_amd64.deb
sudo dpkg -i ultimate-edition-themes-.0.0.1_amd64.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/os.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Ultimate Edition Themes..."
fi
else
#32 bit support
if test -f ultimate-edition-themes-.0.0.1_i386.deb
then
sudo dpkg -i ultimate-edition-themes-.0.0.1_i386.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/os.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Ultimate Edition Themes..."
else
wget -c http://ultamatix.com/download/ultimate-edition-themes-.0.0.1_i386.deb 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/' | zenity --window-icon=/usr/share/ultamatix/pixmaps/os.png --width=600 --height=100 --progress --auto-close --title="Downloading Ultimate Edition Themes..."
sudo chmod +x ultimate-edition-themes-.0.0.1_i386.deb
sudo dpkg -i ultimate-edition-themes-.0.0.1_i386.deb 2>&1 | zenity --window-icon=/usr/share/ultamatix/pixmaps/os.png --width=600 --height=100 --progress --pulsate --auto-close --title "Installing Ultimate Edition Themes..."
fi
fi
}

function ueremove {
dpkg_check
if !    sudo apt-get remove --purge --assume-yes --force-yes ultimate-edition-themes
then
   AX_fatal "An apt-based error occurred and installation was unsuccessful";
fi
cleanup
}
Attachments
gutsy.autoscript.tar.gz
(11.61 KiB) Downloaded 287 times
Home of Ultimate Edition. Got a question? Please review the F.A.Q. Browse the How to section.

Main O/S: Builder of O/S Guess.
Mainboard: ASUS Hero VI (AM4)
CPU: AMD 1700X water cooled (Deepcool Captain Genome Cooling tower)
Ram: 16 GB GSkill Trident RGB Series Dual Channel DDR4 3200
Video: MSI RX470 8GB Gaming card.
Hard Disks: MASSIVE on the network.(10 Gigabit, 48 port, multiple servers)
Monitors: Dual 4K 43" LG, 4K Samsung 28"
750 Watt modular PSU (Rosswell)
1100 Watt Amp & 4 X 600 Watt speakers

Servers in the basement.
User avatar
TheeMahn
Site Admin
 
Posts: 4201
Joined: Fri Oct 12, 2007 10:02 am
Location: U.S.A.
Age: 53
Operating System: Ultimate Edition Developer



Re: Ultamatix Exposed...

Postby TheeMahn » Wed Jul 23, 2008 2:13 pm

and continue onto the Python portion...
Code: Select all
from copy import *
from resin_config import *
from resin_ui import *
from distro_helpers import *
from extra_functions import *
from resin_controllers import *
#added via TheeMahn
# display an animated GIF image file using wxPython
#import wx
#import wx.animate     # ..\wx\animate.py

#class MyPanel(wx.Panel):
#    """ class MyPanel creates a panel, inherits wx.Panel """
#    def __init__(self, parent, id):
#        # default pos and size creates a panel that fills the frame
#        wx.Panel.__init__(self, parent, id)
#        self.SetBackgroundColour("white")
#        # pick the filename of an animated GIF file you have ...
#        # give it the full path and file name!
#        ag_fname = "/usr/share/ultamatix/pixmaps/buzz.gif"
#        ag = wx.animate.GIFAnimationCtrl(self, id, ag_fname, pos=(10, 10))
#        # clears the background
#        ag.GetPlayer().UseBackgroundColour(True)
#        # continuously loop through the frames of the gif file (default)
#        ag.Play()


#app = wx.PySimpleApp()
#create a window/frame, no parent, -1 is default ID
# give it a size so the image will fit ...
#frame = wx.Frame(None, -1, "wx.animate.GIFAnimationCtrl()", size = (110, 86))
# call the derived class, -1 is default ID
#MyPanel(frame, -1)
# show the frame
#frame.Show(True)
# start the event loop
#app.MainLoop()
#end addition

#class AnimatedGif(wx.Panel):
#    """class to show an animated gif image on a panel"""
#    def __init__(self, parent, id):
#        wx.Panel.__init__(self, parent, id)
#        #self.SetBackgroundColour("black")
#        # pick an animated GIF filename you have in the working folder
#        ag_fname = "/usr/share/ultamatix/pixmaps/buzz.gif"
#        try:
#            ag = wx.animate.GIFAnimationCtrl(self, id, ag_fname, pos=(10, 10))
#            parent.SetTitle(ag_fname)
#        except:
#            pass
#        ag.GetPlayer().UseBackgroundColour(True)
#        ag.Play()


class main_ui:
   def __init__(self):
      self.build_interface()
   def build_interface(self):
      self.saved_cat = ['0','0']
      self.current_cat = None
      self.saved_page = None
      self.type_state = 0
      self.menu_options = []
      self.main_window = main_interface()
      usage = axUser.get_usage_log()
      self.main_window.menu_restore.connect("activate",self.restore_sources)
      self.main_window.menu_about.connect("activate",self.main_window.show_about)
      self.main_window.menu_licence.connect("activate",self.licence_info)
      self.main_window.menu_credits.connect("activate",self.credits_info)
      self.main_window.menu_errors_and_information.connect("activate",self.show_errorbox)
      self.main_window.window.connect("destroy",exit_routine)
      self.main_window.window.connect("delete-event",no_destroy)
      self.main_window.menu_quit.connect("activate",exit_routine)
      self.main_window.window.set_icon_from_file(axConf.images['windowIcon'])
      set_title(self.main_window.window)
      if usage[0] == '0':
         axUser.set_first_use()
         self.main_window.about.window.show()
         snd = os.popen2('python /usr/share/ultamatix/conf/pp.py')
         #self.textviewer.set_text(open('/usr/share/doc/ultamatix/README','r').read())
         #self.textviewer.window.show_all()
      else:
         self.main_window.about.window.hide()

      self.generate_menu_columns()
      self.generate_catalog_columns()      
      self.main_window.start_button.connect("clicked",self.start_exec)
      self.main_window.toggle_apps.connect("clicked",self.do_toggle_apps)
      self.main_window.catalog_tree.connect("cursor-changed",self.catalog_change)
      self.main_window.catalog_tree_page2.connect("cursor-changed",self.catalog_change)
      self.switch_handler = self.main_window.notebook.connect("switch-page",self.switch_type_page)
      conf.need_generate = 1
      self.generate_menus()
      self.check_notebook()
      update_ui()
      self.error_box = error_report()
      self.textviewer = textviewer()
      """self.main.window.menu_keep_debs.connect("activate",self.keep_debs)##added"""
      self.main_window.menu_view_help.connect("activate",self.view_help)##added
      self.main_window.menu_view_activity_log1.connect("activate",self.show_activity)
      self.main_window.menu_view_sources.connect("activate",self.show_sources)
      self.main_window.menu_view_changelog.connect("activate",self.show_changelog)
      self.app_switch = 0;
      self.write_info_html("<h1>Welcome to Ultamatix 1.8.0</h1>")
   def do_toggle_apps(self,signal):
      if (self.app_switch == 0):
         conf.desktop += [conf.other_desktop]
         self.app_switch = 1;
         self.main_window.toggle_icon.set_from_file(conf.toggle_icons[1])
         self.main_window.toggle_apps.set_label("Hide %s apps"%conf.other_desktop);
      else:
         conf.desktop = conf.desktop[0:-1];
         self.main_window.toggle_icon.set_from_file(conf.toggle_icons[0])
         self.main_window.toggle_apps.set_label("Show %s apps"%conf.other_desktop);
         self.app_switch = 0;
      buildScripts()
      self.generate_menus()
      self.check_notebook()
      self.set_menu(self.menu_options[0])
      try:
         self.set_menu(self.current_catagory)
      except:
         pass
      update_ui()
      #self.main_window.window.show_all()
   def show_errorbox(self,signal):
      self.error_box.window.show()
   def show_activity(self,signal):
      self.textviewer.set_text(axUser.get_activity())
      self.textviewer.window.show_all()
      #added via theemahn
   def view_help(self,signal):
      self.textviewer.set_text(open('/usr/share/doc/ultamatix/README','r').read())
      self.textviewer.window.show_all()
   def show_changelog(self,signal):
      self.textviewer.set_text(axUser.get_changelog())
      self.textviewer.window.show_all()
   def show_sources(self,signal):
      self.textviewer.set_text(open('/etc/apt/sources.list','r').read())
      self.textviewer.window.show_all()
   def licence_info(self,widget):
      qu = ask_info_question(axConf.version['licence'].strip(),"",None,True)
      qu[1].window.hide()
   def credits_info(self,widget):
      qu = ask_info_question(axConf.version['credits'].strip(),"",None,True)
      qu[1].window.hide()
   def write_info_html(self,info):
      doc = self.main_window.document
      doc.open_stream('text/html')
      doc.write_stream("<html><head><style>body{background:#fff url(/usr/share/ultamatix/pixmaps/background1.jpg) scroll repeat-x top left;}</style></head><body>%s</body></html>"%info)
      doc.close_stream()
   def restore_sources(self,item):
      quest = ask_question("Would you like to remove Ultimate Edition repositiories from your source list?")
      if quest[0]:
         axUser.restore_sources()
         quest[1].window.hide()
         self.main_window.window.hide()
         axUser.update_apt()
         conf.trayIcon.destroy()
         alert("<b>Your sources have been updated.</b> \nUltamatix will now exit",sys.exit)
      else:
         quest[1].window.hide()      
   def generate_menus(self):
      if conf.need_generate:
         buildScripts()
         conf.need_generate = 0
      self.generate_catalog_model()
      self.main_window.catalog_tree.set_model(self.catalog_model)
      self.main_window.catalog_tree_page2.set_model(self.catalog_model)
      if self.current_cat:
         pass
      else:
         try:
            self.set_menu(self.menu_options[0])
         except:
            pass
   def check_notebook(self):
      if len(axUser.get_installed()) == 0:
         self.main_window.notebook.set_current_page(0)
         if self.saved_page == None:
            self.saved_page = self.main_window.notebook.get_nth_page(1)
         self.main_window.notebook.remove_page(1)
         update_ui()
      else:
         if self.saved_page != None:
            self.main_window.notebook.append_page(self.saved_page,gtk.Label("Uninstall"))
            self.saved_page = None
            self.main_window.notebook.set_current_page(0)
            return True
         self.main_window.page2_label.set_text("Uninstall")
         self.uni_mode = 1
         update_ui()
   def catalog_change(self,tree):
      model = tree.get_model()
      row = tree.get_cursor()[0][0]
      self.current_cat = row
      row = model.get_iter_from_string("%s"%row)
      catagory = model.get(row,0)[0]
      self.current_catagory = catagory;
      self.set_menu(catagory)
   def   switch_type_page(self,button,page,number):
      prestate = self.type_state
      tmp = self.current_cat
      if self.type_state == 0 and axUser.get_installed() != []:
         self.type_state = 1
         tree = self.main_window.catalog_tree_page2
      else:
         self.type_state = 0
         tree = self.main_window.catalog_tree
      if self.main_window.notebook.get_current_page() == 1:
         self.type_state = 0
         tree = self.main_window.catalog_tree
      self.generate_menus()
      tree.set_cursor(self.saved_cat[self.type_state] )
      self.saved_cat[prestate] = tmp
      update_ui()
   def cancel_term(self,button):
      self.stop = True
      alert2 = deepcopy(alert)
      note = alert2("<b>Cancelling...</b>\nPlease wait one moment while Ultamatix finishes the current script",None,self.term.terminal.window)
      del alert2
      try:
         self.term.thread.run = 1
      except:
         pass
   def keep_debs(self,item):
      alert("<b>This feature has not yet been implemented.</b>",None,self.main_window.window)   
   def start_exec(self,button):
      #check for conflicts before running installs...
      conflicts = checkConflicts();
      #report conflicts if any...
      if conflicts:
         alert("<b>Ultamatix cannot continue because %s is running.</b> \nPlease shutdown %s and try again."%(conflicts[0],conflicts[0]))
         return False
      self.stop = False
      if len(conf.selected_scripts) == 0:
         alert("<b>No scripts have been selected</b>",None,self.main_window.window)
         return False
      ##############################################################################
      #create a terminal window to run in...
      try:
         if self.term:
            pass
         else:
            self.term = activity_terminal()
            self.term.terminal.cancel.connect("clicked",self.cancel_term)
      except:
            self.term = activity_terminal()
            self.term.terminal.cancel.connect("clicked",self.cancel_term)
      conf.trayIcon.set_window(self.term.terminal.window)
      #create some pipes to read and write to...
      axUser.create_pipes()
      #hide the main window...
      self.main_window.window.hide()
      #show the terminal window...
      self.term.terminal.window.show()
      pre = self.term.terminal.label.get_label()
      c = 1.0000000
      #clear deselectors...
      conf.deselector = []
      deselect = []
      #gather selected...
      selected = conf.selected_scripts
      uninstall = []
      install = []
      #divide up selected scripts...
      for sc in selected:
         if sc in axUser.get_installed():
            uninstall += [sc]
         else:
            install += [sc]
      selected = uninstall + install
      #okay now we run them...
      for sc in selected:
         if sc not in conf.deselector:
            #get the information on the script
            s_data = get_script(sc)
            #set what script is being run in conf
            conf.current_executing = sc
            #setup watch man...
            watchman = watch_pipe()
            watchman.function = alert
            watchman.window = self.main_window.window
            watchman.start()
            #create percent done info for info area...
            curr = c/len(conf.selected_scripts)
            self.term.terminal.progress.set_fraction(curr)
            c+=1
            #okay now determine what exec script should be run (install or uninstall)
            if sc in uninstall and sc not in conf.dep_uninstalled:
               state = "Uninstalling "
               if s_data.uninstall:
                  exe = s_data.uninstall
               else:
                  exe = "echo 'Does not have an uninstall routine'\nAX_warning 'Does not have an uninstall routine, please remove manually'\n "
            elif sc in install and sc not in conf.dep_installed:
               state = "Installing "
               exe = s_data.exe
            update_ui()
            self.term.terminal.progress.set_text(state+s_data.title)
            conf.trayIcon.set_label(state+s_data.title)
            #now we put it all together and send it to bash...
            send = "#!/bin/bash\n%s\n%s\necho 'Finished'\nsleep 1\n"%(axConf.masterInit,exe)
            auto = axUser.conf_folder+"/ax.autoscript"
            open(axUser.conf_folder+"/ax.autoscript","w").write(send)
            os.chmod(auto,777)
            self.term.connect_pipe(auto)
            #finished now we cancel the watchman
            watchman.watch = False
            open(axUser.ax_in,"w").write("die")
            #and delete the script we made
            os.unlink(auto)
            del watchman
            #log the output of that script
            axUser.log("!!SCRIPT OUTPUT START!!\n%s\n!!SCRIPT OUTPUT END!!"%self.term.logged)   
            #determine if the install failed...
            fail = 0
            for fi in conf.failed:
               if fi == sc:
                  fail=1
                  break
            #do stuff if we didn't fail
            if fail != 1:
               deselect += [sc]
               curscript = get_script(sc)         
               if sc in uninstall:
                  axUser.remove_installed(sc)
                  if curscript.post_info:
                     conf.script_errors += [[2,curscript.id,curscript.post_info]]
               else:
                  axUser.add_installed(sc)
                  if curscript.pre_info:
                     conf.script_errors += [[2,curscript.id,curscript.pre_info]]
                  #I think this part is deprecated...
                  """
                  if curscript.depends:
                     depends = []
                     if "," in curscript.depends:
                        tmp = curscript.depends.split(",")
                        for t in tmp:
                           depends += [t.strip()]
                     else:
                        depends += [curscript.depends.strip()]
                     for d in depends:
                        if d not in axUser.get_installed():
                           axUser.add_installed(d)
                        dep = get_script(d)
                        if dep.pre_info:
                           conf.script_errors += [[2,dep.id,dep.pre_info]]
                  """
            if conf.dep_installed:
               for d in conf.dep_installed:
                  if d not in axUser.get_installed():
                     axUser.add_installed(d)
                  dep = get_script(d)
                  if dep.pre_info:
                     conf.script_errors += [[2,dep.id,dep.pre_info]]
               conf.dep_installed=[]
            if conf.dep_uninstalled:
               for d in conf.dep_uninstalled:
                  if d in axUser.get_installed():
                     axUser.remove_installed(d)
                  dep = get_script(d)
                  if dep.post_info:
                     conf.script_errors += [[2,dep.id,dep.pre_info]]
               conf.dep_uninstalled=[]   
            if self.stop == True:
               break
         else:
            deselect += [sc]
      for d in deselect:
         k = 0
         for select in conf.selected_scripts:
            if d == select:
               del conf.selected_scripts[k]
            k+=1
      conf.need_generate = 1
      if axUser.get_installed() == []:
         self.type_state = 0
      conf.failed = []
      self.generate_menus()
      self.check_notebook()
      self.term.terminal.window.hide()
      self.set_menu(self.menu_options[0])
      self.main_window.window.show()
      conf.trayIcon.set_window(self.main_window.window)
      conf.trayIcon.set_label("Ultamatix")
      update_ui()
      # now do some error roeporting
      if conf.script_errors:
         print "ERRORS OR WARNINGS WHERE REPORTED"
         axUser.log("ERRORS OR WARNINGS WHERE REPORTED")
         print "-"*50
         print "-"*50
         for e in conf.script_errors:
            print "%s - %s"%(e[0],e[2])
            print "-"*35
            es = get_script(e[1])
            sc_name = es.title
            errors = ('WARNING','FATAL','INFO')
            axUser.log("%s - %s - %s"%(errors[int(e[0])],sc_name,e[2].strip()))
         self.error_box.generate_model(conf.script_errors)
         self.error_box.window.show()
      conf.script_errors = []
      axUser.delete_pipes()
      #self.activity_log.set_text(axUser.get_activity())
   def generate_catalog_model(self):
      self.catalog_model = gtk.ListStore(
               gobject.TYPE_STRING,gobject.TYPE_INT,gtk.gdk.Pixbuf,gobject.TYPE_STRING            
               );
      for list in conf.script_list:
         icon= gtk.gdk.pixbuf_new_from_file(list.icon)
         if self.type_state == 0:
            check = list.scripts
         else:
            check = list.scripts_uninstall
         if len(check) > 0:
            self.menu_options += [list.type]
            new = self.catalog_model.append()
            self.catalog_model.set(new,
                  0,list.type,
                  1,12,
                  2,icon,
                  3,"<b>%s</b>"%list.type
                  )
   def generate_catalog_columns(self):
      tree = self.main_window.catalog_tree
      column = gtk.TreeViewColumn(None, gtk.CellRendererPixbuf(),
                           pixbuf=2)
      tree.append_column(column)
      column = gtk.TreeViewColumn(None, gtk.CellRendererText(),markup=3)
      tree.append_column(column)
      tree = self.main_window.catalog_tree_page2
      column = gtk.TreeViewColumn(None, gtk.CellRendererPixbuf(),
                           pixbuf=2)
      tree.append_column(column)
      column = gtk.TreeViewColumn(None, gtk.CellRendererText(),markup=3)
      tree.append_column(column)
   def generate_menu_columns(self):
      tree = self.main_window.menu_tree
      model = tree.get_model()
      renderer = gtk.CellRendererToggle()
      renderer.connect('toggled', self.fixed_toggled)
      column = gtk.TreeViewColumn(None, renderer, active=0)
      tree.append_column(column)
      cellrend = gtk.CellRendererText()
      column = gtk.TreeViewColumn(None,cellrend ,markup=1,foreground=4)
      tree.append_column(column)
      tree = self.main_window.menu_tree_page2
      model = tree.get_model()
      renderer = gtk.CellRendererToggle()
      renderer.connect('toggled', self.fixed_toggled)
      column = gtk.TreeViewColumn(None, renderer, active=0)
      tree.append_column(column)
      column = gtk.TreeViewColumn(None, gtk.CellRendererText(),markup=1,foreground=4)
      tree.append_column(column)
   def set_menu(self,catagory):
      for list in conf.script_list:
         if list.type == catagory:
            self.main_window.status_bar.push(214324,"(%s installed / %s available)"%(len(list.scripts_uninstall),len(list.scripts)+len(list.scripts_uninstall)))
            new_model = list.generate_model(self.type_state)
            self.main_window.menu_tree.set_model(new_model)
            self.main_window.menu_tree_page2.set_model(new_model)
            self.main_window.menu_tree.connect("cursor-changed",self.updateScriptInfo)
            self.main_window.menu_tree_page2.connect("cursor-changed",self.updateScriptInfo)
            self.write_info_html("<h1>%s</h1>"%catagory);
   def updateScriptInfo(self,tree):
      model = tree.get_model()
      row = tree.get_cursor()[0][0]
      row = model.get_iter_from_string("%s"%row)
      script = model.get(row,3)[0]
      script = get_script(script)
      if (script.info):
         info = script.info
      else:
         info = script.description
      if (script.version):
         ver = "<h3><i>Version: %s</i></h3>"%script.version
      else:
         ver = ""
      self.write_info_html("<h2>%s</h2>%s<p>%s</p>"%(script.title,ver,info))
   def fixed_toggled(self, cell, path):
      models = [self.main_window.menu_tree.get_model(), self.main_window.menu_tree_page2.get_model()]
      model = models[self.main_window.notebook.get_current_page()]
      it = model.get_iter(path)
      if conf.restricted == 0:
         script = get_script(model.get_value(it,3))
         if script.restricted == "True":
            return False
      # get toggled iter
      iter = model.get_iter((int(path),))
      fixed = model.get_value(iter, 0)
      # do something with the value
      fixed = not fixed
      # set new value
      model.set(iter, 0, fixed)
      if model.get_value(it,0):
         conf.selected_scripts += [model.get_value(it,3)]
      else:
         c = 0
         for ss in conf.selected_scripts:
            if ss == model.get_value(it,3):
               del conf.selected_scripts[c]
               break
            c+=1
class watch_pipe( threading.Thread ):
   def new_winder(self,question):
      gladeUI = conf.gladeUI #get glade interface
      gladeUI.signal_autoconnect(self)
      self.window = gladeUI.get_widget("watch_question")
      label = gladeUI.get_widget("question_label")
      label.set_markup(question)
      yes = gladeUI.get_widget("q_yes")
      no = gladeUI.get_widget("q_no")
      self.window.connect("delete-event",self.no_delete)
      yes.connect("clicked",self.button_no_clicked)
      no.connect("clicked",self.button_yes_clicked)
      set_title(self.window,"Question")
      self.window.set_icon_from_file(axConf.images["windowIcon"])
      self.window.show_all()
   def no_delete(self,window,event):
      return True
   def button_yes_clicked(self,button):
      self.window.hide()
      self.quest_answer = 0
      self.answer = False
   def button_no_clicked(self,button):
      self.window.hide()
      self.quest_answer = 1
      self.answer = False
   def run( self ):
      self.alert = alert
      self.watch = True
      while self.watch == True:
         check = open(axUser.ax_in,"r")
         check = check.read()
         if "QUESTION::" in check:
            check = check[len("QUESTION::"):len(check)]
            self.new_winder("<b>%s</b>"%check)
            self.answer = True
            while self.answer:
               update_ui()
            test = self.quest_answer
            open(axUser.ax_out,"w").write("%s"%test)
         if "ALERT::" in check:
            check = check[len("ALERT::"):len(check)]
            alert("<b>%s</b>"%check)
            open(axUser.ax_out,"w").write("Finished")
         if "WARNING::" in check:
            print "%s reported the warning: %s"%(conf.current_executing,check[len("WARNING::"):len(check)])
            conf.script_errors += [[0,conf.current_executing,check[len("WARNING::"):len(check)]]]
            open(axUser.ax_out,"w").write("received \n")
         if "INFORMATION::" in check:
            print "%s reported the info: %s"%(conf.current_executing,check[len("INFORMATION::"):len(check)])
            conf.script_errors += [[2,conf.current_executing,check[len("INFORMATION::"):len(check)]]]
            open(axUser.ax_out,"w").write("received \n")
         if "FATAL::" in check:
            print "%s died fataly: %s"%(conf.current_executing,check[len("FATAL::"):len(check)])
            conf.failed += [conf.current_executing]
            conf.script_errors += [[1,conf.current_executing,check[len("FATAL::"):len(check)]]]
            open(axUser.ax_out,"w").write("received \n")
         #this part still needs work...   
         if "ADDREPO::" in check:
            repo = check[len("ADDREPO::"):len(check)]
            if ("\n" in repo):
               r = repo.split("\n")
               repo = r[0]
            current = repo_proc("/etc/apt/sources.list")
            if repo.strip() not in open("/etc/apt/sources.list").read():
               current.add_repo(repo.strip())
            open(axUser.ax_out,"w").write("received \n")                     
         if "INSTALLED::" in check:
            info = check[len("INSTALLED::"):len(check)].strip()
            print "%s reported the install of script: %s"%(conf.current_executing,check[len("INSTALLED::"):len(check)])
            if "," in info:
               info = info.split(",")
               conf.dep_installed += info
               conf.deselector += info
               for i in info:
                  axUser.add_installed(info)
            else:
               conf.dep_installed += [info]
               conf.deselector += [info]
               axUser.add_installed(info)
            open(axUser.ax_out,"w").write("received \n")
         if "REMOVE::" in check:
            info = check[len("REMOVE::"):len(check)].strip()
            print "%s reported the uninstall of script: %s"%(conf.current_executing,check[len("REMOVE::"):len(check)])
            if "," in info:
               info = info.split(",")
               conf.dep_uninstalled += info
               conf.deselector = info
               for i in info:
                  axUser.remove_installed(i)
            else:
               conf.dep_uninstalled += [info]
               conf.deselector += [info]
               axUser.remove_installed(info)
            open(axUser.ax_out,"w").write("received \n")
         if "DROPDOWN::" in check:
            print check
            title = check[len("DROPDOWN::"):check.find("OPTIONS::")]
            options = check[check.find("OPTIONS::")+len("OPTIONS::"):]
            options = options.split(",")
            drop = dropdown_window()
            drop.set_options(options)
            drop.label.set_markup("<b>%s</b>"%title)
            drop.window.show_all()
            while drop.up:
               update_ui()
            drop.window.hide()
            if (drop.leaf):
               active = drop.menu.get_active()
               val = drop.model[active][0]
               open(axUser.ax_out,"w").write(val)
            else:
               open(axUser.ax_out,"w").write("AX:FALSE")
Home of Ultimate Edition. Got a question? Please review the F.A.Q. Browse the How to section.

Main O/S: Builder of O/S Guess.
Mainboard: ASUS Hero VI (AM4)
CPU: AMD 1700X water cooled (Deepcool Captain Genome Cooling tower)
Ram: 16 GB GSkill Trident RGB Series Dual Channel DDR4 3200
Video: MSI RX470 8GB Gaming card.
Hard Disks: MASSIVE on the network.(10 Gigabit, 48 port, multiple servers)
Monitors: Dual 4K 43" LG, 4K Samsung 28"
750 Watt modular PSU (Rosswell)
1100 Watt Amp & 4 X 600 Watt speakers

Servers in the basement.
User avatar
TheeMahn
Site Admin
 
Posts: 4201
Joined: Fri Oct 12, 2007 10:02 am
Location: U.S.A.
Age: 53
Operating System: Ultimate Edition Developer



Re: Ultamatix Exposed...

Postby TheeMahn » Wed Jul 23, 2008 2:15 pm

Glade:
Code: Select all
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
<!--*- mode: xml -*-->
<glade-interface>
  <widget class="GtkWindow" id="splash">
    <property name="width_request">402</property>
    <property name="height_request">326</property>
    <property name="type">GTK_WINDOW_POPUP</property>
    <property name="title" translatable="yes">window1</property>
    <property name="window_position">GTK_WIN_POS_CENTER_ALWAYS</property>
    <property name="type_hint">GDK_WINDOW_TYPE_HINT_SPLASHSCREEN</property>
    <child>
      <widget class="GtkVBox" id="splash_vbox">
        <property name="visible">True</property>
        <child>
          <widget class="GtkVBox" id="image_holder">
            <property name="width_request">402</property>
            <property name="height_request">302</property>
            <property name="visible">True</property>
            <child>
              <placeholder/>
            </child>
          </widget>
        </child>
        <child>
          <widget class="GtkVBox" id="prog_holder">
            <property name="height_request">24</property>
            <property name="visible">True</property>
            <child>
              <placeholder/>
            </child>
          </widget>
          <packing>
            <property name="position">1</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
  <widget class="GtkWindow" id="alert">
    <property name="width_request">400</property>
    <property name="height_request">160</property>
    <property name="title" translatable="yes">window1</property>
    <property name="window_position">GTK_WIN_POS_CENTER</property>
    <property name="icon_name">gtk-dialog-warning</property>
    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
    <child>
      <widget class="GtkVBox" id="alert_vbox">
        <property name="visible">True</property>
        <child>
          <widget class="GtkHBox" id="hbox1">
            <property name="visible">True</property>
            <child>
              <widget class="GtkImage" id="image1">
                <property name="visible">True</property>
                <property name="stock">gtk-dialog-warning</property>
                <property name="icon_size">6</property>
              </widget>
            </child>
            <child>
              <widget class="GtkLabel" id="alert_label">
                <property name="width_request">300</property>
                <property name="height_request">76</property>
                <property name="visible">True</property>
                <property name="xalign">0</property>
                <property name="yalign">0.25</property>
                <property name="label" translatable="yes">&lt;b&gt;This is a general error!&lt;/b&gt;
Your program if fixing to die, sorry :(</property>
                <property name="use_markup">True</property>
                <property name="wrap">True</property>
              </widget>
              <packing>
                <property name="expand">False</property>
                <property name="fill">False</property>
                <property name="position">1</property>
              </packing>
            </child>
          </widget>
        </child>
        <child>
          <widget class="GtkHButtonBox" id="hbuttonbox1">
            <property name="height_request">10</property>
            <property name="visible">True</property>
            <child>
              <widget class="GtkButton" id="die_button">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="can_default">True</property>
                <property name="label">gtk-ok</property>
                <property name="use_stock">True</property>
                <property name="response_id">0</property>
                <signal name="clicked" handler="on_die_button_clicked"/>
              </widget>
            </child>
          </widget>
          <packing>
            <property name="position">1</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
  <widget class="GtkWindow" id="quick_terminal">
    <property name="width_request">655</property>
    <property name="height_request">400</property>
    <property name="title" translatable="yes">window1</property>
    <property name="resizable">False</property>
    <property name="window_position">GTK_WIN_POS_CENTER_ALWAYS</property>
    <child>
      <widget class="GtkVBox" id="quick_term_vbox">
        <property name="visible">True</property>
        <child>
          <placeholder/>
        </child>
        <child>
          <placeholder/>
        </child>
      </widget>
    </child>
  </widget>
  <widget class="GtkWindow" id="main_interface">
    <property name="width_request">800</property>
    <property name="height_request">550</property>
    <property name="border_width">1</property>
    <property name="title" translatable="yes"> Ultamatix 1.8</property>
    <property name="modal">True</property>
    <property name="window_position">GTK_WIN_POS_CENTER</property>
    <property name="default_width">700</property>
    <property name="default_height">500</property>
    <child>
      <widget class="GtkVBox" id="vbox7">
        <property name="visible">True</property>
        <child>
          <widget class="GtkMenuBar" id="menubar1">
            <property name="visible">True</property>
            <child>
              <widget class="GtkMenuItem" id="file1">
                <property name="visible">True</property>
                <property name="label" translatable="yes">_File</property>
                <property name="use_underline">True</property>
                <child>
                  <widget class="GtkMenu" id="file1_menu">
                    <child>
                      <widget class="GtkImageMenuItem" id="restore_sources">
                        <property name="visible">True</property>
                        <property name="tooltip" translatable="yes">Restore your sources to there orginal state.</property>
                        <property name="label" translatable="yes">_Remove U.E. Repo</property>
                        <property name="use_underline">True</property>
                        <signal name="activate" handler="on_restore_sources_activate"/>
                        <child internal-child="image">
                          <widget class="GtkImage" id="image25">
                            <property name="visible">True</property>
                            <property name="stock">gtk-undo</property>
                            <property name="icon_size">1</property>
                          </widget>
                        </child>
                      </widget>
                    </child>
<child>
                      <widget class="GtkCheckMenuItem" id="keep_debs">
                        <property name="visible">True</property>
                        <property name="tooltip" translatable="yes">Keep downloaded files.</property>
                        <property name="label" translatable="yes">Keep Debs</property>
                        <property name="use_underline">True</property>
                        <child internal-child="image">
                          <widget class="GtkImage" id="menu_keep_debs">
                            <property name="visible">True</property>
                            <property name="tooltip" translatable="yes">Keep deb files</property>
                            <property name="stock">gtk-help</property>
                          </widget>
                        </child>
                      </widget>
                    </child>
                    <child>
                      <widget class="GtkImageMenuItem" id="quit1">
                        <property name="visible">True</property>
                        <property name="tooltip" translatable="yes">Exit Ultamatix</property>
                        <property name="label">gtk-quit</property>
                        <property name="use_underline">True</property>
                        <property name="use_stock">True</property>
                        <signal name="activate" handler="on_quit1_activate"/>
                      </widget>
                    </child>
                  </widget>
                </child>
              </widget>
            </child>
            <child>
              <widget class="GtkMenuItem" id="view1">
                <property name="visible">True</property>
                <property name="label" translatable="yes">_View</property>
                <property name="use_underline">True</property>
                <signal name="activate" handler="on_view1_activate"/>
                <child>
                  <widget class="GtkMenu" id="view1_menu">
                    <child>
                      <widget class="GtkImageMenuItem" id="view_activity_log1">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">Activity Log</property>
                        <property name="use_underline">True</property>
                        <child internal-child="image">
                          <widget class="GtkImage" id="menu-item-image3">
                            <property name="stock">gtk-file</property>
                          </widget>
                        </child>
                      </widget>
                    </child>
                    <child>
                      <widget class="GtkImageMenuItem" id="change_log">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">Change Log</property>
                        <property name="use_underline">True</property>
                        <child internal-child="image">
                          <widget class="GtkImage" id="menu-item-image4">
                            <property name="stock">gtk-about</property>
                          </widget>
                        </child>
                      </widget>
                    </child>
                    <child>
                      <widget class="GtkImageMenuItem" id="errors_and_information1">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">Errors and Information</property>
                        <property name="use_underline">True</property>
                        <child internal-child="image">
                          <widget class="GtkImage" id="menu-item-image5">
                            <property name="stock">gtk-dialog-error</property>
                          </widget>
                        </child>
                      </widget>
                    </child>
                    <child>
                      <widget class="GtkImageMenuItem" id="sources">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">Source List</property>
                        <property name="use_underline">True</property>
                        <child internal-child="image">
                          <widget class="GtkImage" id="menu-item-image6">
                            <property name="stock">gtk-print-preview</property>
                          </widget>
                        </child>
                      </widget>
                    </child>
                  </widget>
                </child>
              </widget>
            </child>
            <child>
              <widget class="GtkMenuItem" id="help1">
                <property name="visible">True</property>
                <property name="label" translatable="yes">_Help</property>
                <property name="use_underline">True</property>
                <child>
                  <widget class="GtkMenu" id="help1_menu">
                    <child>
                      <widget class="GtkImageMenuItem" id="about_automatix2">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">_About Ultamatix</property>
                        <property name="use_underline">True</property>
                        <signal name="activate" handler="on_about_automatix2_activate"/>
                        <child internal-child="image">
                          <widget class="GtkImage" id="image26">
                            <property name="visible">True</property>
                            <property name="stock">gtk-dialog-info</property>
                            <property name="icon_size">3</property>
                          </widget>
                        </child>
                      </widget>
                    </child>
                    <child>
                      <widget class="GtkImageMenuItem" id="licence_info">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">_Licence Info</property>
                        <property name="use_underline">True</property>
                        <signal name="activate" handler="on_licence_info_activate"/>
                        <child internal-child="image">
                          <widget class="GtkImage" id="menu-item-image8">
                            <property name="stock">gtk-file</property>
                          </widget>
                        </child>
                      </widget>
                    </child>
                    <child>
                      <widget class="GtkImageMenuItem" id="menu_credits">
                        <property name="visible">True</property>
                        <property name="label" translatable="yes">Credits</property>
                        <property name="use_underline">True</property>
                        <child internal-child="image">
                          <widget class="GtkImage" id="menu-item-image9">
                            <property name="visible">True</property>
                            <property name="stock">gtk-info</property>
                          </widget>
                        </child>
                      </widget>
                    </child>
                    <child>
                      <widget class="GtkImageMenuItem" id="view_help">
                        <property name="visible">True</property>
                        <property name="tooltip" translatable="yes">Read the help file</property>
                        <property name="label" translatable="yes">Help</property>
                        <property name="use_underline">True</property>
                        <child internal-child="image">
                          <widget class="GtkImage" id="menu_view_help">
                            <property name="visible">True</property>
                            <property name="tooltip" translatable="yes">View Help File</property>
                            <property name="stock">gtk-help</property>
                            <accelerator key="F1" modifiers="" signal="show-help"/>
                          </widget>
                        </child>
                      </widget>
                    </child>
                  </widget>
                </child>
              </widget>
            </child>
          </widget>
          <packing>
            <property name="expand">False</property>
            <property name="fill">False</property>
          </packing>
        </child>
        <child>
          <widget class="GtkToolbar" id="toolbar1">
            <property name="visible">True</property>
            <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
            <property name="show_arrow">False</property>
            <child>
              <widget class="GtkToolButton" id="start_scripts">
                <property name="width_request">76</property>
                <property name="visible">True</property>
                <property name="is_important">True</property>
                <property name="label">Start</property>
                <property name="use_underline">True</property>
                <property name="stock_id">gtk-go-forward</property>
              </widget>
              <packing>
                <property name="expand">False</property>
              </packing>
            </child>
            <child>
              <widget class="GtkSeparatorToolItem" id="separatortoolitem1">
                <property name="visible">True</property>
              </widget>
              <packing>
                <property name="expand">False</property>
                <property name="homogeneous">False</property>
              </packing>
            </child>
            <child>
              <widget class="GtkToolButton" id="toggle-apps">
                <property name="visible">True</property>
                <property name="is_important">True</property>
                <property name="label">Kde Apps</property>
                <property name="use_underline">True</property>
                <property name="stock_id">gtk-add</property>
              </widget>
              <packing>
                <property name="expand">False</property>
              </packing>
            </child>
            <child>
              <widget class="GtkMenuToolButton" id="showButton">
                <property name="visible">True</property>
                <property name="label">Show</property>
                <property name="use_underline">True</property>
                <property name="stock_id">gtk-execute</property>
              </widget>
              <packing>
                <property name="expand">False</property>
                <property name="homogeneous">False</property>
              </packing>
            </child>
          </widget>
          <packing>
            <property name="expand">False</property>
            <property name="fill">False</property>
            <property name="position">1</property>
          </packing>
        </child>
        <child>
          <widget class="GtkVPaned" id="vpaned1">
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="position">290</property>
            <child>
              <widget class="GtkNotebook" id="notebook1">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <child>
                  <widget class="GtkHPaned" id="hpaned2">
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="position">250</property>
                    <child>
                      <widget class="GtkVBox" id="vbox9">
                        <property name="visible">True</property>
                        <child>
                          <widget class="GtkScrolledWindow" id="scrolledwindow5">
                            <property name="width_request">200</property>
                            <property name="visible">True</property>
                            <property name="can_focus">True</property>
                            <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                            <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                            <property name="shadow_type">GTK_SHADOW_IN</property>
                            <child>
                              <widget class="GtkTreeView" id="catalog_tree">
                                <property name="height_request">457</property>
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="headers_visible">False</property>
                              </widget>
                            </child>
                          </widget>
                        </child>
                        <child>
                          <placeholder/>
                        </child>
                      </widget>
                      <packing>
                        <property name="resize">False</property>
                        <property name="shrink">True</property>
                      </packing>
                    </child>
                    <child>
                      <widget class="GtkScrolledWindow" id="scrolledwindow6">
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
                        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                        <property name="shadow_type">GTK_SHADOW_IN</property>
                        <child>
                          <widget class="GtkTreeView" id="menu_tree">
                            <property name="height_request">250</property>
                            <property name="visible">True</property>
                            <property name="can_focus">True</property>
                            <property name="headers_visible">False</property>
                          </widget>
                        </child>
                      </widget>
                      <packing>
                        <property name="resize">True</property>
                        <property name="shrink">True</property>
                      </packing>
                    </child>
                  </widget>
                </child>
                <child>
                  <widget class="GtkLabel" id="label1">
                    <property name="visible">True</property>
                    <property name="label" translatable="yes">Install</property>
                  </widget>
                  <packing>
                    <property name="type">tab</property>
                    <property name="tab_fill">False</property>
                  </packing>
                </child>
                <child>
                  <widget class="GtkHPaned" id="hpaned3">
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="position">250</property>
                    <child>
                      <widget class="GtkVBox" id="vbox10">
                        <property name="visible">True</property>
                        <child>
                          <widget class="GtkScrolledWindow" id="scrolledwindow11">
                            <property name="width_request">200</property>
                            <property name="visible">True</property>
                            <property name="can_focus">True</property>
                            <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                            <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                            <property name="shadow_type">GTK_SHADOW_IN</property>
                            <child>
                              <widget class="GtkTreeView" id="catalog_tree_page2">
                                <property name="height_request">457</property>
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="headers_visible">False</property>
                              </widget>
                            </child>
                          </widget>
                        </child>
                        <child>
                          <placeholder/>
                        </child>
                      </widget>
                      <packing>
                        <property name="resize">False</property>
                        <property name="shrink">True</property>
                      </packing>
                    </child>
                    <child>
                      <widget class="GtkScrolledWindow" id="scrolledwindow12">
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                        <property name="shadow_type">GTK_SHADOW_IN</property>
                        <child>
                          <widget class="GtkTreeView" id="menu_tree_page2">
                            <property name="height_request">370</property>
                            <property name="visible">True</property>
                            <property name="can_focus">True</property>
                            <property name="headers_visible">False</property>
                          </widget>
                        </child>
                      </widget>
                      <packing>
                        <property name="resize">True</property>
                        <property name="shrink">True</property>
                      </packing>
                    </child>
                  </widget>
                  <packing>
                    <property name="position">1</property>
                  </packing>
                </child>
                <child>
                  <widget class="GtkLabel" id="page2_label">
                    <property name="visible">True</property>
                    <property name="label" translatable="yes">Uninstall</property>
                    <property name="use_markup">True</property>
                  </widget>
                  <packing>
                    <property name="type">tab</property>
                    <property name="position">1</property>
                    <property name="tab_fill">False</property>
                  </packing>
                </child>
              </widget>
              <packing>
                <property name="resize">False</property>
                <property name="shrink">True</property>
              </packing>
            </child>
            <child>
              <widget class="GtkScrolledWindow" id="infoholder">
                <property name="height_request">155</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
                <property name="shadow_type">GTK_SHADOW_IN</property>
                <child>
                  <placeholder/>
                </child>
              </widget>
              <packing>
                <property name="resize">True</property>
                <property name="shrink">True</property>
              </packing>
            </child>
          </widget>
          <packing>
            <property name="position">2</property>
          </packing>
        </child>
        <child>
          <placeholder/>
        </child>
        <child>
          <placeholder/>
        </child>
        <child>
          <widget class="GtkStatusbar" id="statusbar1">
            <property name="visible">True</property>
          </widget>
          <packing>
            <property name="expand">False</property>
            <property name="fill">False</property>
            <property name="position">5</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
  <widget class="GtkWindow" id="AX_about">
    <property name="width_request">575</property>
    <property name="height_request">405</property>
    <property name="title" translatable="yes">Ultamatix 1.8 : About</property>
    <property name="resizable">False</property>
    <property name="modal">True</property>
    <property name="window_position">GTK_WIN_POS_CENTER</property>
    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
    <child>
      <widget class="GtkHBox" id="hbox3">
        <property name="visible">True</property>
        <child>
          <widget class="GtkImage" id="AX_image">
            <property name="width_request">256</property>
            <property name="height_request">400</property>
            <property name="visible">True</property>
            <property name="xalign">0</property>
            <property name="yalign">0</property>
            <property name="stock">gtk-missing-image</property>
          </widget>
        </child>
        <child>
          <widget class="GtkVBox" id="vbox8">
            <property name="visible">True</property>
            <child>
              <widget class="GtkLabel" id="about_label">
                <property name="width_request">315</property>
                <property name="visible">True</property>
                <property name="xalign">0</property>
                <property name="yalign">0</property>
                <property name="xpad">5</property>
                <property name="ypad">10</property>
                <property name="label" translatable="yes">Ultamatix</property>
                <property name="use_markup">True</property>
                <property name="wrap">True</property>
                <property name="mnemonic_widget">AX_about_ok_button</property>
              </widget>
            </child>
            <child>
              <widget class="GtkHButtonBox" id="hbuttonbox2">
                <property name="visible">True</property>
                <child>
                  <widget class="GtkButton" id="AX_about_ok_button">
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="can_default">True</property>
                    <property name="label">gtk-ok</property>
                    <property name="use_stock">True</property>
                    <property name="response_id">0</property>
                  </widget>
                </child>
              </widget>
              <packing>
                <property name="expand">False</property>
                <property name="fill">False</property>
                <property name="padding">10</property>
                <property name="position">1</property>
              </packing>
            </child>
          </widget>
          <packing>
            <property name="position">1</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
  <widget class="GtkWindow" id="term_status">
    <property name="width_request">700</property>
    <property name="height_request">500</property>
    <property name="title" translatable="yes">window1</property>
    <property name="resizable">False</property>
    <property name="window_position">GTK_WIN_POS_CENTER_ALWAYS</property>
    <child>
      <widget class="GtkVBox" id="ts_main_vbox">
        <property name="visible">True</property>
        <child>
          <widget class="GtkHBox" id="hbox2">
            <property name="visible">True</property>
            <child>
              <widget class="GtkLabel" id="ts_label">
                <property name="width_request">520</property>
                <property name="visible">True</property>
                <property name="xalign">0.10000000149011612</property>
                <property name="xpad">10</property>
                <property name="label" translatable="yes">label1</property>
              </widget>
              <packing>
                <property name="expand">False</property>
                <property name="fill">False</property>
              </packing>
            </child>
            <child>
              <widget class="GtkHButtonBox" id="hbuttonbox6">
                <property name="width_request">48</property>
                <property name="height_request">48</property>
                <property name="visible">True</property>
                <child>
                  <widget class="GtkButton" id="term_cancel">
                    <property name="height_request">32</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="label">gtk-cancel</property>
                    <property name="use_stock">True</property>
                    <property name="response_id">0</property>
                  </widget>
                </child>
              </widget>
              <packing>
                <property name="position">1</property>
              </packing>
            </child>
          </widget>
          <packing>
            <property name="padding">13</property>
          </packing>
        </child>
        <child>
          <widget class="GtkVBox" id="term_holder">
            <property name="height_request">385</property>
            <property name="visible">True</property>
            <child>
              <widget class="GtkVBox" id="term_prog_holder">
                <property name="height_request">24</property>
                <property name="visible">True</property>
                <child>
                  <placeholder/>
                </child>
              </widget>
            </child>
            <child>
              <placeholder/>
            </child>
          </widget>
          <packing>
            <property name="expand">False</property>
            <property name="fill">False</property>
            <property name="position">1</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
  <widget class="GtkWindow" id="watch_question">
    <property name="width_request">411</property>
    <property name="height_request">192</property>
    <property name="title" translatable="yes">window1</property>
    <property name="resizable">False</property>
    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
    <child>
      <widget class="GtkVBox" id="vbox11">
        <property name="width_request">350</property>
        <property name="height_request">200</property>
        <property name="visible">True</property>
        <child>
          <widget class="GtkHBox" id="hbox4">
            <property name="visible">True</property>
            <child>
              <widget class="GtkImage" id="image6">
                <property name="visible">True</property>
                <property name="stock">gtk-help</property>
                <property name="icon_size">6</property>
              </widget>
              <packing>
                <property name="expand">False</property>
                <property name="padding">15</property>
              </packing>
            </child>
            <child>
              <widget class="GtkLabel" id="question_label">
                <property name="width_request">332</property>
                <property name="visible">True</property>
                <property name="label" translatable="yes">overwritten</property>
                <property name="use_markup">True</property>
                <property name="wrap">True</property>
              </widget>
              <packing>
                <property name="expand">False</property>
                <property name="fill">False</property>
                <property name="position">1</property>
              </packing>
            </child>
          </widget>
        </child>
        <child>
          <widget class="GtkHButtonBox" id="hbuttonbox3">
            <property name="visible">True</property>
            <property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
            <child>
              <widget class="GtkButton" id="q_yes">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="can_default">True</property>
                <property name="response_id">0</property>
                <child>
                  <widget class="GtkAlignment" id="alignment5">
                    <property name="visible">True</property>
                    <property name="xscale">0</property>
                    <property name="yscale">0</property>
                    <child>
                      <widget class="GtkHBox" id="hbox9">
                        <property name="visible">True</property>
                        <property name="spacing">2</property>
                        <child>
                          <widget class="GtkImage" id="image11">
                            <property name="visible">True</property>
                            <property name="stock">gtk-go-forward</property>
                          </widget>
                          <packing>
                            <property name="expand">False</property>
                            <property name="fill">False</property>
                          </packing>
                        </child>
                        <child>
                          <widget class="GtkLabel" id="label7">
                            <property name="visible">True</property>
                            <property name="label" translatable="yes">Yes</property>
                            <property name="use_underline">True</property>
                          </widget>
                          <packing>
                            <property name="expand">False</property>
                            <property name="fill">False</property>
                            <property name="position">1</property>
                          </packing>
                        </child>
                      </widget>
                    </child>
                  </widget>
                </child>
              </widget>
            </child>
            <child>
              <widget class="GtkButton" id="q_no">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="can_default">True</property>
                <property name="response_id">0</property>
                <child>
                  <widget class="GtkAlignment" id="alignment4">
                    <property name="visible">True</property>
                    <property name="xscale">0</property>
                    <property name="yscale">0</property>
                    <child>
                      <widget class="GtkHBox" id="hbox8">
                        <property name="visible">True</property>
                        <property name="spacing">2</property>
                        <child>
                          <widget class="GtkImage" id="image10">
                            <property name="visible">True</property>
                            <property name="stock">gtk-delete</property>
                          </widget>
                          <packing>
                            <property name="expand">False</property>
                            <property name="fill">False</property>
                          </packing>
                        </child>
                        <child>
                          <widget class="GtkLabel" id="label6">
                            <property name="visible">True</property>
                            <property name="label" translatable="yes">No</property>
                            <property name="use_underline">True</property>
                          </widget>
                          <packing>
                            <property name="expand">False</property>
                            <property name="fill">False</property>
                            <property name="position">1</property>
                          </packing>
                        </child>
                      </widget>
                    </child>
                  </widget>
                </child>
              </widget>
              <packing>
                <property name="position">1</property>
              </packing>
            </child>
          </widget>
          <packing>
            <property name="position">1</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
  <widget class="GtkWindow" id="info_box">
    <property name="width_request">400</property>
    <property name="height_request">500</property>
    <property name="title" translatable="yes">window1</property>
    <property name="modal">True</property>
    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
    <child>
      <widget class="GtkVBox" id="vbox12">
        <property name="visible">True</property>
        <child>
          <widget class="GtkScrolledWindow" id="info_scroll">
            <property name="height_request">350</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
            <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
            <property name="shadow_type">GTK_SHADOW_IN</property>
            <child>
              <placeholder/>
            </child>
          </widget>
        </child>
        <child>
          <widget class="GtkLabel" id="info_label">
            <property name="visible">True</property>
            <property name="label" translatable="yes">label8</property>
            <property name="use_markup">True</property>
          </widget>
          <packing>
            <property name="expand">False</property>
            <property name="fill">False</property>
            <property name="padding">14</property>
            <property name="position">1</property>
          </packing>
        </child>
        <child>
          <widget class="GtkHButtonBox" id="hbuttonbox4">
            <property name="visible">True</property>
            <property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
            <child>
              <widget class="GtkButton" id="info_yes">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="can_default">True</property>
                <property name="label" translatable="yes">Yes</property>
                <property name="use_underline">True</property>
                <property name="response_id">0</property>
              </widget>
            </child>
            <child>
              <widget class="GtkButton" id="info_no">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="can_default">True</property>
                <property name="label" translatable="yes">No</property>
                <property name="use_underline">True</property>
                <property name="response_id">0</property>
              </widget>
              <packing>
                <property name="position">1</property>
              </packing>
            </child>
          </widget>
          <packing>
            <property name="position">2</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
  <widget class="GtkWindow" id="error_report">
    <property name="width_request">655</property>
    <property name="height_request">505</property>
    <property name="title" translatable="yes">window1</property>
    <property name="modal">True</property>
    <property name="window_position">GTK_WIN_POS_CENTER_ALWAYS</property>
    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
    <child>
      <widget class="GtkVBox" id="vbox13">
        <property name="visible">True</property>
        <child>
          <widget class="GtkLabel" id="error_label">
            <property name="visible">True</property>
            <property name="xalign">0.0099999997764825821</property>
            <property name="xpad">15</property>
            <property name="ypad">15</property>
            <property name="label" translatable="yes">label8</property>
            <property name="use_markup">True</property>
          </widget>
          <packing>
            <property name="expand">False</property>
            <property name="fill">False</property>
          </packing>
        </child>
        <child>
          <widget class="GtkScrolledWindow" id="scrolledwindow14">
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
            <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
            <property name="shadow_type">GTK_SHADOW_IN</property>
            <child>
              <widget class="GtkTreeView" id="error_tree">
                <property name="width_request">655</property>
                <property name="height_request">388</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="headers_visible">False</property>
                <property name="enable_search">False</property>
              </widget>
            </child>
          </widget>
          <packing>
            <property name="position">1</property>
          </packing>
        </child>
        <child>
          <widget class="GtkHButtonBox" id="hbuttonbox5">
            <property name="visible">True</property>
            <property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
            <child>
              <widget class="GtkButton" id="error_close">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="can_default">True</property>
                <property name="response_id">0</property>
                <child>
                  <widget class="GtkAlignment" id="alignment6">
                    <property name="visible">True</property>
                    <property name="xscale">0</property>
                    <property name="yscale">0</property>
                    <child>
                      <widget class="GtkHBox" id="hbox10">
                        <property name="visible">True</property>
                        <property name="spacing">2</property>
                        <child>
                          <widget class="GtkImage" id="image17">
                            <property name="visible">True</property>
                            <property name="stock">gtk-close</property>
                          </widget>
                          <packing>
                            <property name="expand">False</property>
                            <property name="fill">False</property>
                          </packing>
                        </child>
                        <child>
                          <widget class="GtkLabel" id="label9">
                            <property name="visible">True</property>
                            <property name="label" translatable="yes">Close</property>
                            <property name="use_underline">True</property>
                          </widget>
                          <packing>
                            <property name="expand">False</property>
                            <property name="fill">False</property>
                            <property name="position">1</property>
                          </packing>
                        </child>
                      </widget>
                    </child>
                  </widget>
                </child>
              </widget>
            </child>
          </widget>
          <packing>
            <property name="position">2</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
  <widget class="GtkWindow" id="textview">
    <property name="width_request">550</property>
    <property name="height_request">600</property>
    <property name="title" translatable="yes">window1</property>
    <property name="modal">True</property>
    <child>
      <widget class="GtkScrolledWindow" id="scrolledwindow15">
        <property name="visible">True</property>
        <property name="can_focus">True</property>
        <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
        <property name="shadow_type">GTK_SHADOW_IN</property>
        <child>
          <widget class="GtkTextView" id="text_text">
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="left_margin">5</property>
            <property name="right_margin">5</property>
            <property name="text" translatable="yes">blah blah</property>
          </widget>
        </child>
      </widget>
    </child>
  </widget>
  <widget class="GtkWindow" id="dropdown">
    <property name="width_request">400</property>
    <property name="height_request">128</property>
    <property name="title" translatable="yes">window1</property>
    <property name="modal">True</property>
    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
    <property name="icon_name">gtk-dialog-question</property>
    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
    <child>
      <widget class="GtkVBox" id="vbox14">
        <property name="visible">True</property>
        <child>
          <widget class="GtkLabel" id="drop_label">
            <property name="visible">True</property>
            <property name="xalign">0.029999999329447746</property>
            <property name="yalign">0.029999999329447746</property>
            <property name="xpad">5</property>
            <property name="ypad">10</property>
            <property name="label" translatable="yes">label10</property>
            <property name="use_markup">True</property>
          </widget>
          <packing>
            <property name="expand">False</property>
            <property name="fill">False</property>
          </packing>
        </child>
        <child>
          <widget class="GtkVBox" id="vbox15">
            <property name="height_request">32</property>
            <property name="visible">True</property>
            <child>
              <widget class="GtkComboBox" id="dropcombo">
                <property name="height_request">28</property>
                <property name="visible">True</property>
              </widget>
            </child>
          </widget>
          <packing>
            <property name="expand">False</property>
            <property name="position">1</property>
          </packing>
        </child>
        <child>
          <widget class="GtkHButtonBox" id="hbuttonbox7">
            <property name="visible">True</property>
            <property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
            <child>
              <widget class="GtkButton" id="drop_cancel">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="can_default">True</property>
                <property name="label">gtk-cancel</property>
                <property name="use_stock">True</property>
                <property name="response_id">0</property>
              </widget>
            </child>
            <child>
              <widget class="GtkButton" id="drop_ok">
                <property name="height_request">28</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="can_default">True</property>
                <property name="label">gtk-ok</property>
                <property name="use_stock">True</property>
                <property name="response_id">0</property>
              </widget>
              <packing>
                <property name="position">1</property>
              </packing>
            </child>
          </widget>
          <packing>
            <property name="position">2</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
</glade-interface>
Home of Ultimate Edition. Got a question? Please review the F.A.Q. Browse the How to section.

Main O/S: Builder of O/S Guess.
Mainboard: ASUS Hero VI (AM4)
CPU: AMD 1700X water cooled (Deepcool Captain Genome Cooling tower)
Ram: 16 GB GSkill Trident RGB Series Dual Channel DDR4 3200
Video: MSI RX470 8GB Gaming card.
Hard Disks: MASSIVE on the network.(10 Gigabit, 48 port, multiple servers)
Monitors: Dual 4K 43" LG, 4K Samsung 28"
750 Watt modular PSU (Rosswell)
1100 Watt Amp & 4 X 600 Watt speakers

Servers in the basement.
User avatar
TheeMahn
Site Admin
 
Posts: 4201
Joined: Fri Oct 12, 2007 10:02 am
Location: U.S.A.
Age: 53
Operating System: Ultimate Edition Developer


Return to Programming

Who is online

Users browsing this forum: No registered users and 13 guests