Linux Lite 8.0 RC1 has been released - Click here


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Lite Tweaks Development
#31

Disk Usage still errors, this time on /home, I'm guessing this will error regardless of which partition is chosen:

[Image: NEULveh.png]

lsb-release is fixed. New code updated on github.

Let's make the Fix Apt feature the last and fix any remaining bugs, then freeze the app. I need to start building LL 2.4 in the next week or so to produce a Beta for mid March. Be good for you to have a code holiday too :)

Download your free copy of Linux Lite today.

Jerry Bezencon
Linux Lite Creator

"Do not correct a fool, or he will hate you; correct a wise man and he will appreciate you."

[Image: X5qGkCg.png]

[Image: 0op1GNe.png] [Image: LgJ2mtP.png] [Image: vLZcFUE.png] [Image: lrUHro3.jpg]
Reply
#32

I'll make that Disk Usage to work and then I'll start working on 'Fix that Apt' feature. :)
I should make a fresh install and see what the problem is.
Reply
#33

(02-28-2015, 10:03 AM)misko_2083 link Wrote:  I should make a fresh install and see what the problem is.

Not a bad idea. I do most of my testing in a VB, and when the software is ready for release, I test it on my personal pc.

Download your free copy of Linux Lite today.

Jerry Bezencon
Linux Lite Creator

"Do not correct a fool, or he will hate you; correct a wise man and he will appreciate you."

[Image: X5qGkCg.png]

[Image: 0op1GNe.png] [Image: LgJ2mtP.png] [Image: vLZcFUE.png] [Image: lrUHro3.jpg]
Reply
#34

Did a fresh install LL 2.2 in a virtual machine. Not updated yet.
It's working here. Added 'Fix Apt'. Also Disk Usage feature shows no problems.
Might need some text changes. :)

Test it just to make sure.

Code:
#! /bin/bash
#--------------------------------------------------------------------------------------------------------
# Name: Lite Tweaks
# Version: 1.0-0210
# Description: A collection of tools to tweak your Linux Lite system.
# Authors: Misko_2083, John Jenkins, Jerry Bezencon
# Date: February 25th, 2015
# Website: https://www.linuxliteos.com
#--------------------------------------------------------------------------------------------------------

# Set functions for non-root execution
# The ones that need root go to the other file: lite-software-super
FIREFOX() {
    echo "#Removing the Firefox cache..."
              rm -rf $HOME/.cache/mozilla/
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nRemoving the Firefox cache!"
                        fi
}

CHROME() {
    echo "#Removing the Google Chrome cache..."
            rm -rf $HOME/.cache/google-chrome/
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nRemoving the Google Chrome cache!"
                        fi
}

CHROMIUM() {
    echo"#Removing the Chromium cache..."
            rm -rf $HOME/.cache/chromium/
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nRemoving the Chromium cache!"
                        fi
}

THUMBNAILS() {
    echo "#Deleting Thumbnail Cache..."
    sleep 1
             rm -rf $HOME/.thumbnails/*
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nDeleting Thumbnail Cache!"
                        fi
}

WHISKER() {
echo "#Cleaning Whisker Menu Recently Used items..."
sleep 1
sed -i 's/^recent=.*$/recent=/g' ~/.config/xfce4/panel/whiskermenu-1.rc

            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nCleaning Whisker Menu Recently Used items!"
                        fi
echo "#Restarting the panel..."
dbus-send --print-reply --dest=org.xfce.Panel /org/xfce/Panel org.xfce.Panel.Terminate boolean:true
sleep 2
}

TRASH() {
    echo "#Emptying the Trash bin..."
    sleep 1
              rm -rf $HOME/.local/share/Trash/files/*
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nEmptying the Trash bin!"
                        fi
}

DU() {
DU_TEXT="Double click on any <b>Partition</b> to open in the file manager.
Click on any Column to sort the information."
DU_TITLE="Disk Usage"
TMP_DU=$(mktemp /tmp/diskusage.XXXXX)

df -h -T| tail -n+2 | while read fs type size used rest target; do
    if [[ $rest ]] ; then
        echo ${fs} ${type} ${size}B ${used}B ${rest}B ${target} |grep /dev/sd |
    awk '{print $1,"\n",$2,"\n",$3,"\n",$4,"\n",$5,"\n",$6}BEGIN{ s = 7; e = 35; }{for (i=s; i<=e; i++) printf("%s%s", $(i), i<e ? OFS : "\n"); }' #Workaround for disk labels that contain whitespaces(number of characters that can be divided by whitespace =e-s)
    fi
done |sed -e 's/[ \t]*$//' $1|  tee $TMP_DU

SEL=$(cat $TMP_DU | zenity --list --width=600 --height=350 --title="${DU_TITLE}" --text="${DU_TEXT}" --column="Device" --column="Filesystem" --column="Size" --column="Used" --column="Free" --column="%Used" --column="Partition" --separator="" --print-column="7")

if [ -z "$SEL" ]; then
rm -f $TMP_DU
return
fi

thunar "$(echo $SEL)"
rm -f $TMP_DU
}

# Set the dialogue window icon
ic="/usr/share/pixmaps/litetweaks.png"

ARRAYS() {
# Invoke arrays
ARRAYA=()       # Array for automatic cleaning tool
ARRAYB=()    # Array for cleaning tools that require root

# Populate arrays
echo $selection | grep "Package Cache" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('APTGETCLEAN')
fi

echo $selection | grep "Autoremove Packages" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('AUTOREMOVE')
fi

echo $selection | grep "Firefox" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('FIREFOX')
fi

echo $selection | grep "Chrome" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('CHROME')
fi

echo $selection | grep "Chromium" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('CHROMIUM')
fi

echo $selection | grep "Display Disk Usage" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('DU')
fi

echo $selection | grep "Thumbnail Cache" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('THUMBNAILS')
fi

echo $selection | grep "Whisker Menu" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('WHISKER')
fi

echo $selection | grep "Trash Bin" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('TRASH')
fi

echo $selection | grep "Default Web Browser" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('DBROWSER')
fi

echo $selection | grep "Locate Large Files" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('FILESIZES')
fi

echo $selection | grep "Kernel Removal" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('REMKERNELS')
fi

echo $selection | grep "Log Archives" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('LOGARCHIVES')
fi

echo $selection | grep "Residual Config Files" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('RESIDCONFIG')
fi

echo $selection | grep "Bootup Fix" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('FIXBOOTUP')
fi

echo $selection | grep "Fix Apt" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('FIXAPT')
fi
}

RUN() {
# Check if ARRAYA is empty
# If it is skip the execution
if [ ${#ARRAYA[@]} -ne 0 ]; then

    x=0
    for k in "${!ARRAYA[@]}"; do  x=$(( $x + 1 )); done  # Get the total number of selected items in array A

    TOTAL_LINES=$x

    printf '%s \n' "${ARRAYA[@]}"|
    while read  line
        do
            $line     # Execute functions one by one
            if [ $? = 1 ]; then
                zenity --error --title="Lite Tweaks" --text="There was an error while performing cleaning:\n ${line}"
                exit 1
            fi   
        let i++
         (( PERCENTAGE = 100 \* ${i} / ${TOTAL_LINES} ))
         echo "$PERCENTAGE"

        if [ "$PERCENTAGE" == "100" ]; then
            echo "#Done"
            sleep 2
        fi
   
    done| zenity --progress  --title="Lite Tweaks" --auto-kill --auto-close --width=300
fi

# Check if ARRAYB is empty
# If it is skip the execution
if [ ${#ARRAYB[@]} -ne 0 ]; then
    gksudo /usr/bin/lite-tweaks-super "${ARRAYB[@]}"      # Open the next file with superuser privileges and pass the array B
fi

if zenity --question --title="Lite Tweaks" --text="Process(s) complete.\nWould you like to continue using Lite-Tweaks?"; then
    return
else
    exit 0
fi
}

CHECK() {
# Check package cache exists
if [ "$(find /var/cache/apt/archives/ -maxdepth 1 -size +100k)" ];  then
    APTCACHESIZE=$(du -sh /var/cache/apt/archives/ | awk '{print $1}' | sed 's/$/B/')
    aptcache=(FALSE "Package Cache" "Clean" "Packages" "Safe" "You can currently remove $APTCACHESIZE worth of files from your package cache" )
else
    aptcache=(FALSE "Package Cache" "Clean" "Packages" "Safe" "You can currently remove 0kB worth of files from your package cache")
fi

# Check if archived /var/log files exist
if [ "$(find /var/log -type f \( -iname \*.gz -o -iname \*.0 -o -iname \*.1 \) -maxdepth 100 -size +1k)" ];  then
    LOGARCHIVESIZE=$(find /var/log -type f \( -iname \*.gz -o -iname \*.0 -o -iname \*.1 \) -exec du -csh '{}' + | tail -1 | awk '{print $1}' | sed 's/$/B/')
    logarchive=(FALSE "Log Archives" "Clean" "System" "Safe" "You can currently remove $LOGARCHIVESIZE worth of archived logs" )
else
    logarchive=(FALSE "Log Archives" "Clean" "System" "Safe" "You can currently remove 0kB worth of archived logs")
fi

# Check if firefox cache exists
if [  -d  "$HOME/.cache/mozilla/" ];then
    FFCACHESIZE=$(du -sh "$HOME/.cache/mozilla/"| awk '{print $1}'| sed 's/$/B/')
    firefox=("FALSE"  "Firefox" "Clean" "Internet" "Safe" "You can currently remove $FFCACHESIZE from your Firefox cache" )
else
        firefox=()
fi

# Check if the google-chrome cache exists
if [ -d  "$HOME/.cache/google-chrome/" ]; then
    GCCACHESIZE=$(du -sh $HOME/.cache/google-chrome/ | awk '{print $1}' | sed 's/$/B/')
    chrome=("FALSE" "Chrome" "Clean" "Internet" "Safe" "You can currently remove $GCCACHESIZE from your Chrome cache" )
    else
        chrome=()
fi

# Check if the chromium cache exists
if [  -d  "$HOME/.cache/chromium/" ]; then
    CHRCACHESIZE=$(du -sh $HOME/.cache/chromium/ | awk '{print $1}' | sed 's/$/B/')
    chromium=("FALSE" "Chromium" "Clean" "Internet" "Safe" "You can currently remove $CHRCACHESIZE from your Chromium cache" )
else
         chromium=() # Main zenity dialogue window
fi

# Check if there are any residual configuration files
if [ ! -z  "$(dpkg -l | grep '^rc')"  ]; then
        RESCONFIGQTY=$(dpkg -l | grep '^rc' | awk '{print $2}'| wc -w)
    resconfig=(FALSE "Residual Config Files" "Clean" "Packages" "Safe" "You currently have $RESCONFIGQTY residual configuration files you can remove" )
else
        resconfig=( FALSE "Residual Config Files" "Clean" "Packages" "Safe" "There are no residual configuration files that can be removed" )
fi

# Check if any thumbnails exist
if [ $(du -sk $HOME/.thumbnails/ | awk '{print $1}')  -gt 100  ]; then
        THUMBCACHESIZE=$(du -sh $HOME/.thumbnails/ | awk '{print $1}' | sed 's/$/B/')
    thumbn=("FALSE" "Thumbnail Cache" "Clean" "Images" "Safe" "You can currently remove $THUMBCACHESIZE from your thumbnail cache" )
else
        thumbn=( "FALSE" "Thumbnail Cache" "Clean" "Images" "Safe" "You can currently remove 0kB from your thumbnail cache" )
fi

# Check if Whisker Menu has Recently Used items
if [ -z "$(cat $HOME/.config/xfce4/panel/whiskermenu-1.rc | grep "^recent=" | cut -d '=' -f2)" ]; then
    whisker_recent=(FALSE "Whisker Menu" "Clean" "Menu" "Safe" "Whisker Menu has no Recently Used items to clean" )
else
    whisker_test=$(cat $HOME/.config/xfce4/panel/whiskermenu-1.rc | grep "^recent=" | cut -d '=' -f2 | sed 's/,/ /g'| wc -w)
    whisker_recent=(FALSE "Whisker Menu" "Clean" "Menu" "Safe" "You can currently remove $whisker_test Recently Used items from your Whisker Menu" )
fi

# Check if the Trash is empty
if [  "$(ls -A $HOME/.local/share/Trash/files/)" ]; then
        TRASHCACHESIZE=$(du -sh $HOME/.local/share/Trash/ | awk '{print $1}' | sed 's/$/B/')
    trash=("FALSE" "Trash Bin" "Clean" "Home" "Safe" "You can currently remove $TRASHCACHESIZE from your Trash bin" )
else
        trash=()
fi

# Check LL version
LL_VERSION=$(awk '{print $3}' /etc/llver)
case $LL_VERSION in
2.0)fixbootup=() ;;
2.2)fixbootup=(FALSE "Bootup Fix" "Fix" "Repair" "Safe" "Fix the bootup" ) ;;
2.4)fixbootup=() ;;
esac
}

#Main loop
while (true); do

CHECK        # first run the checks

# Main zenity dialogue window
selection=$(zenity --window-icon="$ic" --list --checklist --width=880 --height=500 --column="Select" --column="Name" --column="Task" --column="Category" --column="Status" \
--column="Description" --text='Select the task you wish to perform, then click the Begin button. Sort Categories by clicking on the column.\n\nThere are 2 levels of <b>Status</b>:\n<span foreground="green">Safe</span> - Safe to perform, no harm can be done.\n<span foreground="red">Caution</span> - Proceed with caution, read the warning on the proceeding step.\n\nYou can select multiple tasks to perform (password required for some tasks).' --title="Lite Tweaks" --ok-label="Begin" --cancel-label="Quit" \
FALSE "Autoremove Packages" "Clean" "Packages" "Safe" "Remove packages installed for programs that are no longer present" \
"${chrome[@]}" \
"${chromium[@]}" \
FALSE "Default Web Browser" "Preferred" "Browser" "Safe" "Set your default web browser" \
FALSE "Display Disk Usage" "Information" "System" "safe" "Display overall disk usage information" \
"${firefox[@]}" \
FALSE "Fix Apt" "Fix" "Repair" "Caution" "Jerry add some text here" \
"${fixbootup[@]}" \
FALSE "Kernel Removal" "Clean" "System" "Caution" "Remove kernels you no longer wish to boot from" \
FALSE "Locate Large Files" "Information" "System" "Caution" "Find files on your system within a size range" \
"${logarchive[@]}" \
"${aptcache[@]}" \
"${resconfig[@]}" \
"${thumbn[@]}" \
"${trash[@]}" \
"${whisker_recent[@]}" )

# If Quit is clicked then exit
if [ "${PIPESTATUS[0]}" -ne "0" ]; then
      exit 0
fi

# Check if anything is selected
echo $selection | grep '[a-zA-Z0-9]'
if [ "${PIPESTATUS[1]}" -ne "0" ]; then
    zenity --info --title='Lite Tweaks' --text='No option was selected.'
fi

ARRAYS   #Separate selected items into arrays A and array B
RUN
done

exit 0

Code:
#! /bin/bash
#--------------------------------------------------------------------------------------------------------
# Name: Lite Tweaks Super
# Version: 1.0-0210
# Description: A collection of tools to tweak your Linux Lite system.
# Authors: Misko_2083, John Jenkins, Jerry Bezencon
# Date: February 25th, 2015
# Website: https://www.linuxliteos.com
#--------------------------------------------------------------------------------------------------------

# Get input from a previous file
FRM="$@"

# Check if the input is correct and populate array C
echo "$FRM" | grep "APTGETCLEAN" > /dev/null
if [ $? = 0 ];then
ARRAYC+=('CLEAN')
fi

echo $FRM | grep "AUTOREMOVE" > /dev/null
if [ $? = 0 ];then
ARRAYC+=('REMOVE')
fi

echo $FRM | grep "DBROWSER" > /dev/null
if [ $? = 0 ];then
ARRAYC+=('BROWSER')
fi

echo $FRM| grep "FILESIZES" > /dev/null
if [ $? = 0 ];then
ARRAYC+=('FILES')
fi

echo $FRM | grep "REMKERNELS" > /dev/null
if [ $? = 0 ];then
ARRAYC+=('KERNELS')
fi

echo $FRM | grep "LOGARCHIVES" > /dev/null
if [ $? = 0 ];then
ARRAYC+=('LARCHIVES')
fi

echo $FRM | grep "RESIDCONFIG" > /dev/null
if [ $? = 0 ];then
ARRAYC+=('RCONFIG')
fi

echo $FRM | grep "FIXBOOTUP" > /dev/null
if [ $? = 0 ];then
ARRAYC+=('FIXBOOTUP')
fi

echo $FRM | grep "FIXAPT" > /dev/null
if [ $? = 0 ];then
ARRAYC+=('FIXAPT')
fi

CLEAN() {
echo "#Cleaning the package cache..."
sleep 2
    sudo apt-get clean
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error..."
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nCleaning the package cache!"
                        fi
}

LARCHIVES() {
echo "#Deleting archived logs..."
sleep 2
    sudo find /var/log \( -name '*.gz' -o -name '*.0' -o -name '*.1' \) -exec rm -rf {} \;
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error..."
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nDeleting archived logs!"
                        fi
}

REMOVE() {
    echo "#Removing unneeded packages..."
    sleep 2
            sudo apt-get autoremove -y
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error..."
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nRemoving unneeded packages!"
                        fi
}

RCONFIG() {
    echo "#Removing residual configuration files..."
    sleep 1
            sudo dpkg --purge `dpkg -l | grep '^rc' | awk '{print $2}'`
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error..."
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nRemoving residual configuration files!"
                        fi
return
}

BROWSER() {
echo "#Changing the Default Web Browser..."

file="/etc/gnome/defaults.list"
test_1=(` grep "application/xhtml+xml" $file`)
test_2=(` grep "text/html" $file`)
test_3=(`grep "x-scheme-handler/http" $file`)
test_4=(` grep "x-scheme-handler/https" $file`)

hash firefox 2>/dev/null
if [ "${PIPESTATUS[0]}" -eq "0"  ]; then
    if [ "${test_1[0]}" = "application/xhtml+xml=firefox.desktop;" ] && [ "${test_2[0]}" = "text/html=firefox.desktop;" ] && [ "${test_3[0]}" = "x-scheme-handler/http=firefox.desktop;" ] && [ "${test_4[0]}" = "x-scheme-handler/https=firefox.desktop;" ]; then
            firefox=("TRUE" "Firefox" "default" "Firefox is currently your default web browser" )
    else
        firefox=("FALSE" "Firefox" "not default" "Set firefox as the default web browser" )
    fi
else
    firefox=()
fi

hash chromium-browser 2>/dev/null
if [ "${PIPESTATUS[0]}" -eq "0"  ]; then
    if [ "${test_1[0]}" = "application/xhtml+xml=chromium-browser.desktop;firefox.desktop;" ] && [ "${test_2[0]}" = "text/html=chromium-browser.desktop;firefox.desktop;" ] && [ "${test_3[0]}" = "x-scheme-handler/http=chromium-browser.desktop;firefox.desktop;" ] && [ "${test_4[0]}" = "x-scheme-handler/https=chromium-browser.desktop;firefox.desktop;" ]; then
        chromium=("TRUE" "Chromium" "default" "Chromium is currently your default web browser" )
    else
        chromium=("FALSE" "Chromium" "not default" "Set Chromium as the default web browser" )
    fi
else
    chromium=()
fi

hash midori 2>/dev/null
if [ "${PIPESTATUS[0]}" -eq "0"  ]; then
    if [ "${test_1[0]}" = "application/xhtml+xml=midori.desktop;firefox.desktop;" ] && [ "${test_2[0]}" = "text/html=midori.desktop;firefox.desktop;" ] && [ "${test_3[0]}" = "x-scheme-handler/http=midori.desktop;firefox.desktop;" ] && [ "${test_4[0]}" = "x-scheme-handler/https=midori.desktop;firefox.desktop;" ]; then
        midori=("TRUE" "Midori" "default" "Midori is currently your default web browser" )
    else
        midori=("FALSE" "Midori" "not default" "Set Midori as the default web browser" )
    fi
else
    midori=()
fi

hash google-chrome 2>/dev/null
if [ "${PIPESTATUS[0]}" -eq "0"  ]; then
    if [ "${test_1[0]}" = "application/xhtml+xml=google-chrome.desktop;firefox.desktop;" ] && [ "${test_2[0]}" = "text/html=google-chrome.desktop;firefox.desktop;" ] && [ "${test_3[0]}" = "x-scheme-handler/http=google-chrome.desktop;firefox.desktop;" ] && [ "${test_4[0]}" = "x-scheme-handler/https=google-chrome.desktop;firefox.desktop;" ]; then
        googlechrome=("TRUE" "Google Chrome" "default" "Google Chrome is currently your default web browser" )
    else
        googlechrome=("FALSE" "Google Chrome" "not default" "Set Google Chrome as the default web browser" )
    fi
else
    googlechrome=()
fi

        selection=$(zenity --window-icon="$ic" --list --radiolist --width=650 --height=200 --column="Select" --column="Name" --column="Status" \
        --column="Description" --text="Select the web browser you wish to set as default." --title="Choose default browser" --ok-label="Set" --cancel-label="Cancel" \
        "${firefox[@]}" "${googlechrome[@]}" "${chromium[@]}" "${midori[@]}" )
       
        # "The kill switch"
         if [ "${PIPESTATUS[0]}" -ne "0" ]; then
            return
        fi
    case "$selection" in
    "Firefox") `sed -i "s!^"${test_1[0]}"!application/xhtml+xml=firefox.desktop;!g" /etc/gnome/defaults.list `;
           `sed -i "s!^"${test_2[0]}"!text/html=firefox.desktop;!g" /etc/gnome/defaults.list `; \
           `sed -i "s!^"${test_3[0]}"!x-scheme-handler/http=firefox.desktop;!g" /etc/gnome/defaults.list `; \
           `sed -i "s!^"${test_4[0]}"!x-scheme-handler/https=firefox.desktop;!g" /etc/gnome/defaults.list `;;
    "Google Chrome") `sed -i "s!^"${test_1[0]}"!application/xhtml+xml=google-chrome.desktop;firefox.desktop;!g" /etc/gnome/defaults.list `; \
       `sed -i "s!^"${test_2[0]}"!text/html=google-chrome.desktop;firefox.desktop;!g" /etc/gnome/defaults.list `; \
       `sed -i "s!^"${test_3[0]}"!x-scheme-handler/http=google-chrome.desktop;firefox.desktop;!g" /etc/gnome/defaults.list `; \
       `sed -i "s!^"${test_4[0]}"!x-scheme-handler/https=google-chrome.desktop;firefox.desktop;!g" /etc/gnome/defaults.list `;;
    "Chromium") `sed -i "s!^"${test_1[0]}"!application/xhtml+xml=chromium-browser.desktop;firefox.desktop;!g" /etc/gnome/defaults.list `; \
       `sed -i "s!^"${test_2[0]}"!text/html=chromium-browser.desktop;firefox.desktop;!g" /etc/gnome/defaults.list `; \
       `sed -i "s!^"${test_3[0]}"!x-scheme-handler/http=chromium-browser.desktop;firefox.desktop;!g" /etc/gnome/defaults.list `; \
       `sed -i "s!^"${test_4[0]}"!x-scheme-handler/https=chromium-browser.desktop;firefox.desktop;!g" /etc/gnome/defaults.list `;;
    "Midori") `sed -i "s!^"${test_1[0]}"!application/xhtml+xml=midori.desktop;firefox.desktop;!g" /etc/gnome/defaults.list `; \
       `sed -i "s!^"${test_2[0]}"!text/html=midori.desktop;firefox.desktop;!g" /etc/gnome/defaults.list `; \
       `sed -i "s!^"${test_3[0]}"!x-scheme-handler/http=midori.desktop;firefox.desktop;!g" /etc/gnome/defaults.list `; \
       `sed -i "s!^"${test_4[0]}"!x-scheme-handler/https=midori.desktop;firefox.desktop;!g" /etc/gnome/defaults.list `;;
    esac
unset file
}

FILES() {
echo "#Finding Large Files..."

# Main window dialogue
INSTALLER_TITLE="Find files within a range
---------------------------------------------------------------------------------------------------------------------------
This will find and list all files on your system in a range.

<b>Do not remove a file from your system unless you know what you are doing.
This is not a removal tool, it is provided as information only.</b>

When you click on Yes, this window will close and the process will begin.
---------------------------------------------------------------------------------------------------------------------------
Click on Yes to continue or No to cancel the system scan.\nWould you like to continue?"

# Call the zenity window icon location.
INSTALL_ICON="/usr/share/pixmaps/litecleaner.png"
APPNAME="Find files in a range"

      zenity --question --title="$APPNAME" --window-icon="${INSTALL_ICON}" --text="${INSTALLER_TITLE}"
        if [ "$?" -eq "0" ]; then

# Set the file size range
scale_min=$(zenity --title="Select the minimum file size" --scale --text="Select the minimum file size (in MB)" --min-value=25 --max-value=5000 --value=25 --step=25)

if [ "${PIPESTATUS[0]}" -ne "0" ]; then
      return
fi

size_min=$(echo $scale_min | sed "s/.*/+&M/")

scale_max=$(zenity --title="Select the maximum file size" --scale --text="Select the maximum file size (in MB)\nMinimum file size is $size_min\B" --min-value=25 --max-value=5000 --value=51 --step=25)

if [ "${PIPESTATUS[0]}" -ne "0" ]; then
      return
fi

while [ $scale_max -le $scale_min ]; do
      zenity --info --title="$APPNAME" --window-icon="${INSTALL_ICON}" --text="Maximum value must never be smaller or equal  to minimum value.\nSet it again or click Cancel to exit."
            scale_max=$(zenity --title="$APPNAME" --scale --text="Select the maximum file size.\nMinimum file size is $size_min\B" --min-value=25 --max-value=5000 --value=51 --step=25)

            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                  return
            fi
done

size_max=$(echo $scale_max | sed "s/.*/-&M/")

find_large=$(gksudo "stdbuf -oL /bin/bash \-c '(sudo find / -size $size_min -size $size_max -exec du -mh {} + 2>&1 | grep [0-9][MG] | sort -h -r ) 2>&1 | tee /var/log/findfilesrange.log'" |
stdbuf -oL sed -e '/\*$/ s/^/# /p'|
zenity --progress --title="Please wait whilst your system is scanned..." --pulsate \
--width=600 --auto-close )

            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
              zenity --error \
              --title="Error" --text="$APPNAME has failed."
             return
            fi
          else
            return
          fi

PROCEED=$(zenity --question --title="$APPNAME" --window-icon=/usr/share/icons/zenity-llcc.png --text="Scan complete.\n\nWould you like to view the results?"; echo $?)
if [ ${PROCEED} -eq 1 ]; then
      zenity --info --title="Scan Complete" --window-icon="${INSTALL_ICON}" --text="Click OK to close."
else
    leafpad /var/log/findfilesrange.log &
fi
}

KERNELS() {
# Check current Kernel
CURKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')

# Define what Kernel packages to look for
LINUXPKG="linux-(image|headers|ubuntu-modules|restricted-modules)"
METALINUXPKG="linux-(image|headers|restricted-modules)-(generic|i386|i686|server|common|rt|xen)"

# Find old Kernels
OLDKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL)

# Check if there are old Kernels
echo $OLDKERNELS | grep linux*
if [ "${PIPESTATUS[1]}" -ne "0" ]; then
    zenity --info --title="Results" --text="No additional kernels found"
    return
fi

# sed command adds all FALSE entries in the column 'Select'
zen=(`echo "$OLDKERNELS" | sort | sed -e  's/^/FALSE\n/'`)

# Main window dialogue
DIALOG_TEXT="This will remove kernels you no longer wish to use.

Be sure to select both the header and the image for each version of
the kernel that you wish to remove.

When you click on Remove, this window will close and the process will begin.

Click on Cancel to halt the cleaning process."

# Call the zenity window icon location.
ic="/usr/share/icons/zenity-llcc.png"
APPNAME="Kernel Cleaner"

# Call the dialog. Don't change the separator here!
okernel=$(zenity --window-icon="$ic" --list --checklist --separator=" " --width=500 --height=380   --column="Select" --column="Kernel List" \
--text="${DIALOG_TEXT}" --title="$APPNAME" --ok-label="Remove" --cancel-label="Cancel" "${zen[@]}" )

# If cancel is clicked then exit
if [ "${PIPESTATUS[0]}" -ne "0" ]; then
     return
fi

# Check if anything is selected
echo $okernel | grep linux*
if [ "${PIPESTATUS[1]}" -ne "0" ]; then
    zenity --info --title='Cleaner' --text='Nothing was selected.'
    return
fi

zenity --question --title="$APPNAME"  --text="Do you want to proceed? You are about to remove:\n$okernel"
if [ "$?" -eq "0" ]; then
      sudo apt-get purge -y $okernel | zenity --progress --title='Removing Additional Kernels' --text='Removing...' --no-cancel --pulsate --width=400 --auto-close --auto-kill

                        if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                       
                                        zenity --error \
                                        --title="Error" --text="$APPNAME has failed."
                                        return
                                fi

                else

                                        return
                fi

PROCEED=$(zenity --info --title="$APPNAME" --window-icon=/usr/share/icons/zenity-llcc.png --width=270 --text="The cleaner has finished."; echo $?)
if [ ${PROCEED} -eq 1 ]; then
    zenity --info --title="$APPNAME" --window-icon="${INSTALL_ICON}" --text="$APPNAME Complete."
    return
else
    return
fi
}

FIXBOOTUP() {
    echo "#Fixing the bootup..."
sudo sed -i "s/Ubuntu 14.04/Linux Lite 2.2/;s/black=0x2c001e/black=0x000000/;s/white=0xffffff/white=0xffffff/;s/brown=0xff4012/brown=0xffff00/;s/blue=0x988592/blue=0x000000/" /lib/plymouth/themes/ubuntu-text/ubuntu-text.plymouth && sudo update-initramfs -u
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nFixing the bootup!"
                        fi
echo 'Linux Lite 2.2 LTS \n \l' | sudo tee /etc/issue
sudo sed -i 's/^DISTRIB_DESCRIPTION=.*$/DISTRIB_DESCRIPTION="Linux Lite 2.2"/g' /etc/lsb-release
}

FIXAPT() {
    echo "#Please wait, this might take some time."$"\nFixing the apt."
sudo apt-get clean
cd /var/lib/apt
sudo mv lists lists.old
sudo mkdir -p lists/partial
sudo apt-get clean
sudo apt-get update
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nFetching package lists!"
                    return
                        fi
    echo "#Please wait, this might take some time."$"\nFixing the apt...."

sudo apt-get install -f
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nInstalling partialy installed packages!"
                    return
                        fi
    echo "#Please wait, this might take some time."$"\nFixing the apt......."

#Check for /etc/apt/sources.list.save file.If the file is not present then run...
if [ !  -f /etc/apt/sources.list.save ]; then
    sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    sudo touch /etc/apt/sources.list
    sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
fi

sudo rm /etc/apt/sources.list
sudo cp /etc/apt/sources.list.save /etc/apt/sources.list
sudo apt-get update

    echo "#Please wait, this might take some time."$"\nAlmost fixed.........."

sudo dpkg --configure -a
}

    x=0
    for k in "${!ARRAYC[@]}"; do  x=$(( $x + 1 )); done  # Get the total number of selected items in the array

    TOTAL_LINES=$x

    printf '%s \n' "${ARRAYC[@]}"|
    while read  line
        do
            $line     # Execute functions one by one
            if [ $? = 1 ]; then
                zenity --info --title="Lite Tweak" --text="Error:\n${line}"
            fi   
        let i++
         (( PERCENTAGE = 100 \* ${i} / ${TOTAL_LINES} ))
         echo "$PERCENTAGE"

        if [ "$PERCENTAGE" == "100" ]; then
            echo "#Done"
            sleep 2
        fi
   
    done| zenity --progress  --title="Lite Tweaks" --auto-kill --auto-close --width=300 --no-cancel

unset ARAYC
unset FRM
unset okernel
unset PROCEED
unset APPNAME
unset INSTALLER_TITLE
Reply
#35

Just got told I have to go into work early tonight...grrr. I'll check this out on Monday, thank you Misko :)

Download your free copy of Linux Lite today.

Jerry Bezencon
Linux Lite Creator

"Do not correct a fool, or he will hate you; correct a wise man and he will appreciate you."

[Image: X5qGkCg.png]

[Image: 0op1GNe.png] [Image: LgJ2mtP.png] [Image: vLZcFUE.png] [Image: lrUHro3.jpg]
Reply
#36

Oh man, working on Sunday night. :(
How do you find time for development, packaging and building new releases?
You are like machine :)
Reply
#37

Hehe, with something as important as freedom and sharing, you make the time :)

Download your free copy of Linux Lite today.

Jerry Bezencon
Linux Lite Creator

"Do not correct a fool, or he will hate you; correct a wise man and he will appreciate you."

[Image: X5qGkCg.png]

[Image: 0op1GNe.png] [Image: LgJ2mtP.png] [Image: vLZcFUE.png] [Image: lrUHro3.jpg]
Reply
#38

I've fixed Disk Usage, can you please test to confirm:

lite-tweaks:

Code:
#! /bin/bash
#--------------------------------------------------------------------------------------------------------
# Name: Lite Tweaks
# Version: 1.0-0210
# Description: A collection of tools to tweak your Linux Lite system.
# Authors: Misko_2083, John Jenkins, Jerry Bezencon
# Date: February 25th, 2015
# Website: https://www.linuxliteos.com
#--------------------------------------------------------------------------------------------------------

# Set functions for non-root execution
# The ones that need root go to the other file: lite-software-super
FIREFOX() {
    echo "#Removing the Firefox cache..."
              rm -rf $HOME/.cache/mozilla/
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nRemoving the Firefox cache!"
                        fi
}

CHROME() {
    echo "#Removing the Google Chrome cache..."
            rm -rf $HOME/.cache/google-chrome/
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nRemoving the Google Chrome cache!"
                        fi
}

CHROMIUM() {
    echo"#Removing the Chromium cache..."
            rm -rf $HOME/.cache/chromium/
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nRemoving the Chromium cache!"
                        fi
}

THUMBNAILS() {
    echo "#Deleting Thumbnail Cache..."
    sleep 1
             rm -rf $HOME/.thumbnails/*
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nDeleting Thumbnail Cache!"
                        fi
}

WHISKER() {
echo "#Cleaning Whisker Menu Recently Used items..."
sleep 1
sed -i 's/^recent=.*$/recent=/g' ~/.config/xfce4/panel/whiskermenu-1.rc

            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nCleaning Whisker Menu Recently Used items!"
                        fi
echo "#Restarting the panel..."
dbus-send --print-reply --dest=org.xfce.Panel /org/xfce/Panel org.xfce.Panel.Terminate boolean:true
sleep 2
}

TRASH() {
    echo "#Emptying the Trash bin..."
    sleep 1
              rm -rf $HOME/.local/share/Trash/files/*
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nEmptying the Trash bin!"
                        fi
}

DU() {
DU_TEXT="Double click on any <b>Partition</b> to open in the file manager.
Click on any Column to sort the information."
DU_TITLE="Disk Usage"
TMP_DU=$(mktemp /tmp/diskusage.XXXXX)

df -h -T| tail -n+2 | while read fs type size used rest target; do
    if [[ $rest ]] ; then
        echo "$fs" "$type" "$size"B "$used"B "$rest"B "${target[@]}" |grep /dev/sd |
        awk '{print $1,"\n",$2,"\n",$3,"\n",$4,"\n",$5,"\n",$6}BEGIN{ s = 7; e = 35; }{for (i=s; i<=e; i++) printf("%s%s", $(i), i<e ? OFS : "\n"); }' #Workaround for disk labels that contain whitespaces(number of characters that can be divided by whitespace =e-s)
    fi
done | sed -e 's/[ \t]*$//' $1|  tee $TMP_DU

SEL=$(cat $TMP_DU | zenity --list --width=600 --height=350 --title="${DU_TITLE}" --text="${DU_TEXT}" --column="Device" --column="Filesystem" --column="Size" --column="Used" --column="Free" --column="%Used" --column="Partition" --print-column="7"| cut -d '|' -f2)

if [ -z "$SEL" ]; then
rm -f $TMP_DU
return
fi

thunar "$(echo $SEL)"
rm -f $TMP_DU
}

# Set the dialogue window icon
ic="/usr/share/pixmaps/litetweaks.png"

ARRAYS() {
# Invoke arrays
ARRAYA=()       # Array for automatic cleaning tool
ARRAYB=()    # Array for cleaning tools that require root

# Populate arrays
echo $selection | grep "Package Cache" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('APTGETCLEAN')
fi

echo $selection | grep "Autoremove Packages" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('AUTOREMOVE')
fi

echo $selection | grep "Firefox" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('FIREFOX')
fi

echo $selection | grep "Chrome" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('CHROME')
fi

echo $selection | grep "Chromium" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('CHROMIUM')
fi

echo $selection | grep "Display Disk Usage" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('DU')
fi

echo $selection | grep "Thumbnail Cache" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('THUMBNAILS')
fi

echo $selection | grep "Whisker Menu" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('WHISKER')
fi

echo $selection | grep "Trash Bin" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('TRASH')
fi

echo $selection | grep "Default Web Browser" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('DBROWSER')
fi

echo $selection | grep "Locate Large Files" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('FILESIZES')
fi

echo $selection | grep "Kernel Removal" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('REMKERNELS')
fi

echo $selection | grep "Log Archives" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('LOGARCHIVES')
fi

echo $selection | grep "Residual Config Files" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('RESIDCONFIG')
fi

echo $selection | grep "Bootup Fix" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('FIXBOOTUP')
fi

echo $selection | grep "Fix Apt" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('FIXAPT')
fi
}

RUN() {
# Check if ARRAYA is empty
# If it is skip the execution
if [ ${#ARRAYA[@]} -ne 0 ]; then

    x=0
    for k in "${!ARRAYA[@]}"; do  x=$(( $x + 1 )); done  # Get the total number of selected items in array A

    TOTAL_LINES=$x

    printf '%s \n' "${ARRAYA[@]}"|
    while read  line
        do
            $line     # Execute functions one by one
            if [ $? = 1 ]; then
                zenity --error --title="Lite Tweaks" --text="There was an error while performing cleaning:\n ${line}"
                exit 1
            fi   
        let i++
         (( PERCENTAGE = 100 \* ${i} / ${TOTAL_LINES} ))
         echo "$PERCENTAGE"

        if [ "$PERCENTAGE" == "100" ]; then
            echo "#Done"
            sleep 2
        fi
   
    done| zenity --progress  --title="Lite Tweaks" --auto-kill --auto-close --width=300
fi

# Check if ARRAYB is empty
# If it is skip the execution
if [ ${#ARRAYB[@]} -ne 0 ]; then
    gksudo /usr/bin/lite-tweaks-super "${ARRAYB[@]}"      # Open the next file with superuser privileges and pass the array B
fi

if zenity --question --title="Lite Tweaks" --text="Process(s) complete.\nWould you like to continue using Lite-Tweaks?"; then
    return
else
    exit 0
fi
}

CHECK() {
# Check package cache exists
if [ "$(find /var/cache/apt/archives/ -maxdepth 1 -size +100k)" ];  then
    APTCACHESIZE=$(du -sh /var/cache/apt/archives/ | awk '{print $1}' | sed 's/$/B/')
    aptcache=(FALSE "Package Cache" "Clean" "Packages" "Safe" "You can currently remove $APTCACHESIZE worth of files from your package cache" )
else
    aptcache=(FALSE "Package Cache" "Clean" "Packages" "Safe" "You can currently remove 0kB worth of files from your package cache")
fi

# Check if archived /var/log files exist
if [ "$(find /var/log -type f \( -iname \*.gz -o -iname \*.0 -o -iname \*.1 \) -maxdepth 100 -size +1k)" ];  then
    LOGARCHIVESIZE=$(find /var/log -type f \( -iname \*.gz -o -iname \*.0 -o -iname \*.1 \) -exec du -csh '{}' + | tail -1 | awk '{print $1}' | sed 's/$/B/')
    logarchive=(FALSE "Log Archives" "Clean" "System" "Safe" "You can currently remove $LOGARCHIVESIZE worth of archived logs" )
else
    logarchive=(FALSE "Log Archives" "Clean" "System" "Safe" "You can currently remove 0kB worth of archived logs")
fi

# Check if firefox cache exists
if [  -d  "$HOME/.cache/mozilla/" ];then
    FFCACHESIZE=$(du -sh "$HOME/.cache/mozilla/"| awk '{print $1}'| sed 's/$/B/')
    firefox=("FALSE"  "Firefox" "Clean" "Internet" "Safe" "You can currently remove $FFCACHESIZE from your Firefox cache" )
else
        firefox=()
fi

# Check if the google-chrome cache exists
if [ -d  "$HOME/.cache/google-chrome/" ]; then
    GCCACHESIZE=$(du -sh $HOME/.cache/google-chrome/ | awk '{print $1}' | sed 's/$/B/')
    chrome=("FALSE" "Chrome" "Clean" "Internet" "Safe" "You can currently remove $GCCACHESIZE from your Chrome cache" )
    else
        chrome=()
fi

# Check if the chromium cache exists
if [  -d  "$HOME/.cache/chromium/" ]; then
    CHRCACHESIZE=$(du -sh $HOME/.cache/chromium/ | awk '{print $1}' | sed 's/$/B/')
    chromium=("FALSE" "Chromium" "Clean" "Internet" "Safe" "You can currently remove $CHRCACHESIZE from your Chromium cache" )
else
         chromium=() # Main zenity dialogue window
fi

# Check if there are any residual configuration files
if [ ! -z  "$(dpkg -l | grep '^rc')"  ]; then
        RESCONFIGQTY=$(dpkg -l | grep '^rc' | awk '{print $2}'| wc -w)
    resconfig=(FALSE "Residual Config Files" "Clean" "Packages" "Safe" "You currently have $RESCONFIGQTY residual configuration files you can remove" )
else
        resconfig=( FALSE "Residual Config Files" "Clean" "Packages" "Safe" "There are no residual configuration files that can be removed" )
fi

# Check if any thumbnails exist
if [ $(du -sk $HOME/.thumbnails/ | awk '{print $1}')  -gt 100  ]; then
        THUMBCACHESIZE=$(du -sh $HOME/.thumbnails/ | awk '{print $1}' | sed 's/$/B/')
    thumbn=("FALSE" "Thumbnail Cache" "Clean" "Images" "Safe" "You can currently remove $THUMBCACHESIZE from your thumbnail cache" )
else
        thumbn=( "FALSE" "Thumbnail Cache" "Clean" "Images" "Safe" "You can currently remove 0kB from your thumbnail cache" )
fi

# Check if Whisker Menu has Recently Used items
if [ -z "$(cat $HOME/.config/xfce4/panel/whiskermenu-1.rc | grep "^recent=" | cut -d '=' -f2)" ]; then
    whisker_recent=(FALSE "Whisker Menu" "Clean" "Menu" "Safe" "Whisker Menu has no Recently Used items to clean" )
else
    whisker_test=$(cat $HOME/.config/xfce4/panel/whiskermenu-1.rc | grep "^recent=" | cut -d '=' -f2 | sed 's/,/ /g'| wc -w)
    whisker_recent=(FALSE "Whisker Menu" "Clean" "Menu" "Safe" "You can currently remove $whisker_test Recently Used items from your Whisker Menu" )
fi

# Check if the Trash is empty
if [  "$(ls -A $HOME/.local/share/Trash/files/)" ]; then
        TRASHCACHESIZE=$(du -sh $HOME/.local/share/Trash/ | awk '{print $1}' | sed 's/$/B/')
    trash=("FALSE" "Trash Bin" "Clean" "Home" "Safe" "You can currently remove $TRASHCACHESIZE from your Trash bin" )
else
        trash=()
fi

# Check LL version
LL_VERSION=$(awk '{print $3}' /etc/llver)
case $LL_VERSION in
2.0)fixbootup=() ;;
2.2)fixbootup=(FALSE "Bootup Fix" "Fix" "Repair" "Safe" "Fix the bootup" ) ;;
2.4)fixbootup=() ;;
esac
}

#Main loop
while (true); do

CHECK        # first run the checks

# Main zenity dialogue window
selection=$(zenity --window-icon="$ic" --list --checklist --width=880 --height=500 --column="Select" --column="Name" --column="Task" --column="Category" --column="Status" \
--column="Description" --text='Select the task you wish to perform, then click the Begin button. Sort Categories by clicking on the column.\n\nThere are 2 levels of <b>Status</b>:\n<span foreground="green">Safe</span> - Safe to perform, no harm can be done.\n<span foreground="red">Caution</span> - Proceed with caution, read the warning on the proceeding step.\n\nYou can select multiple tasks to perform (password required for some tasks).' --title="Lite Tweaks" --ok-label="Begin" --cancel-label="Quit" \
FALSE "Autoremove Packages" "Clean" "Packages" "Safe" "Remove packages installed for programs that are no longer present" \
"${chrome[@]}" \
"${chromium[@]}" \
FALSE "Default Web Browser" "Preferred" "Browser" "Safe" "Set your default web browser" \
FALSE "Display Disk Usage" "Information" "System" "safe" "Display overall disk usage information" \
"${firefox[@]}" \
FALSE "Fix Apt" "Fix" "Repair" "Caution" "Jerry add some text here" \
"${fixbootup[@]}" \
FALSE "Kernel Removal" "Clean" "System" "Caution" "Remove kernels you no longer wish to boot from" \
FALSE "Locate Large Files" "Information" "System" "Caution" "Find files on your system within a size range" \
"${logarchive[@]}" \
"${aptcache[@]}" \
"${resconfig[@]}" \
"${thumbn[@]}" \
"${trash[@]}" \
"${whisker_recent[@]}" )

# If Quit is clicked then exit
if [ "${PIPESTATUS[0]}" -ne "0" ]; then
      exit 0
fi

# Check if anything is selected
echo $selection | grep '[a-zA-Z0-9]'
if [ "${PIPESTATUS[1]}" -ne "0" ]; then
    zenity --info --title='Lite Tweaks' --text='No option was selected.'
fi

ARRAYS   #Separate selected items into arrays A and array B
RUN
done

exit 0


Download your free copy of Linux Lite today.

Jerry Bezencon
Linux Lite Creator

"Do not correct a fool, or he will hate you; correct a wise man and he will appreciate you."

[Image: X5qGkCg.png]

[Image: 0op1GNe.png] [Image: LgJ2mtP.png] [Image: vLZcFUE.png] [Image: lrUHro3.jpg]
Reply
#39

Latest code pushed to github, please pull from there before continuing. Thank you.

Download your free copy of Linux Lite today.

Jerry Bezencon
Linux Lite Creator

"Do not correct a fool, or he will hate you; correct a wise man and he will appreciate you."

[Image: X5qGkCg.png]

[Image: 0op1GNe.png] [Image: LgJ2mtP.png] [Image: vLZcFUE.png] [Image: lrUHro3.jpg]
Reply
#40

(03-02-2015, 02:51 AM)Jerry link Wrote:  I've fixed Disk Usage, can you please test to confirm:

lite-tweaks:

Code:
#! /bin/bash
#--------------------------------------------------------------------------------------------------------
# Name: Lite Tweaks
# Version: 1.0-0210
# Description: A collection of tools to tweak your Linux Lite system.
# Authors: Misko_2083, John Jenkins, Jerry Bezencon
# Date: February 25th, 2015
# Website: https://www.linuxliteos.com
#--------------------------------------------------------------------------------------------------------

# Set functions for non-root execution
# The ones that need root go to the other file: lite-software-super
FIREFOX() {
    echo "#Removing the Firefox cache..."
              rm -rf $HOME/.cache/mozilla/
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nRemoving the Firefox cache!"
                        fi
}

CHROME() {
    echo "#Removing the Google Chrome cache..."
            rm -rf $HOME/.cache/google-chrome/
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nRemoving the Google Chrome cache!"
                        fi
}

CHROMIUM() {
    echo"#Removing the Chromium cache..."
            rm -rf $HOME/.cache/chromium/
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nRemoving the Chromium cache!"
                        fi
}

THUMBNAILS() {
    echo "#Deleting Thumbnail Cache..."
    sleep 1
             rm -rf $HOME/.thumbnails/*
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nDeleting Thumbnail Cache!"
                        fi
}

WHISKER() {
echo "#Cleaning Whisker Menu Recently Used items..."
sleep 1
sed -i 's/^recent=.*$/recent=/g' ~/.config/xfce4/panel/whiskermenu-1.rc

            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nCleaning Whisker Menu Recently Used items!"
                        fi
echo "#Restarting the panel..."
dbus-send --print-reply --dest=org.xfce.Panel /org/xfce/Panel org.xfce.Panel.Terminate boolean:true
sleep 2
}

TRASH() {
    echo "#Emptying the Trash bin..."
    sleep 1
              rm -rf $HOME/.local/share/Trash/files/*
            if [ "${PIPESTATUS[0]}" -ne "0" ]; then
                        echo "#Error"
                    sleep 2
                                        zenity --error \
                                        --title="Error" --text="There was an error while\nEmptying the Trash bin!"
                        fi
}

DU() {
DU_TEXT="Double click on any <b>Partition</b> to open in the file manager.
Click on any Column to sort the information."
DU_TITLE="Disk Usage"
TMP_DU=$(mktemp /tmp/diskusage.XXXXX)

df -h -T| tail -n+2 | while read fs type size used rest target; do
    if [[ $rest ]] ; then
        echo "$fs" "$type" "$size"B "$used"B "$rest"B "${target[@]}" |grep /dev/sd |
        awk '{print $1,"\n",$2,"\n",$3,"\n",$4,"\n",$5,"\n",$6}BEGIN{ s = 7; e = 35; }{for (i=s; i<=e; i++) printf("%s%s", $(i), i<e ? OFS : "\n"); }' #Workaround for disk labels that contain whitespaces(number of characters that can be divided by whitespace =e-s)
    fi
done | sed -e 's/[ \t]*$//' $1|  tee $TMP_DU

SEL=$(cat $TMP_DU | zenity --list --width=600 --height=350 --title="${DU_TITLE}" --text="${DU_TEXT}" --column="Device" --column="Filesystem" --column="Size" --column="Used" --column="Free" --column="%Used" --column="Partition" --print-column="7"| cut -d '|' -f2)

if [ -z "$SEL" ]; then
rm -f $TMP_DU
return
fi

thunar "$(echo $SEL)"
rm -f $TMP_DU
}

# Set the dialogue window icon
ic="/usr/share/pixmaps/litetweaks.png"

ARRAYS() {
# Invoke arrays
ARRAYA=()       # Array for automatic cleaning tool
ARRAYB=()    # Array for cleaning tools that require root

# Populate arrays
echo $selection | grep "Package Cache" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('APTGETCLEAN')
fi

echo $selection | grep "Autoremove Packages" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('AUTOREMOVE')
fi

echo $selection | grep "Firefox" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('FIREFOX')
fi

echo $selection | grep "Chrome" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('CHROME')
fi

echo $selection | grep "Chromium" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('CHROMIUM')
fi

echo $selection | grep "Display Disk Usage" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('DU')
fi

echo $selection | grep "Thumbnail Cache" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('THUMBNAILS')
fi

echo $selection | grep "Whisker Menu" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('WHISKER')
fi

echo $selection | grep "Trash Bin" > /dev/null
if [ $? = 0 ];then
ARRAYA+=('TRASH')
fi

echo $selection | grep "Default Web Browser" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('DBROWSER')
fi

echo $selection | grep "Locate Large Files" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('FILESIZES')
fi

echo $selection | grep "Kernel Removal" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('REMKERNELS')
fi

echo $selection | grep "Log Archives" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('LOGARCHIVES')
fi

echo $selection | grep "Residual Config Files" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('RESIDCONFIG')
fi

echo $selection | grep "Bootup Fix" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('FIXBOOTUP')
fi

echo $selection | grep "Fix Apt" > /dev/null
if [ $? = 0 ];then
ARRAYB+=('FIXAPT')
fi
}

RUN() {
# Check if ARRAYA is empty
# If it is skip the execution
if [ ${#ARRAYA[@]} -ne 0 ]; then

    x=0
    for k in "${!ARRAYA[@]}"; do  x=$(( $x + 1 )); done  # Get the total number of selected items in array A

    TOTAL_LINES=$x

    printf '%s \n' "${ARRAYA[@]}"|
    while read  line
        do
            $line     # Execute functions one by one
            if [ $? = 1 ]; then
                zenity --error --title="Lite Tweaks" --text="There was an error while performing cleaning:\n ${line}"
                exit 1
            fi   
        let i++
         (( PERCENTAGE = 100 \* ${i} / ${TOTAL_LINES} ))
         echo "$PERCENTAGE"

        if [ "$PERCENTAGE" == "100" ]; then
            echo "#Done"
            sleep 2
        fi
   
    done| zenity --progress  --title="Lite Tweaks" --auto-kill --auto-close --width=300
fi

# Check if ARRAYB is empty
# If it is skip the execution
if [ ${#ARRAYB[@]} -ne 0 ]; then
    gksudo /usr/bin/lite-tweaks-super "${ARRAYB[@]}"      # Open the next file with superuser privileges and pass the array B
fi

if zenity --question --title="Lite Tweaks" --text="Process(s) complete.\nWould you like to continue using Lite-Tweaks?"; then
    return
else
    exit 0
fi
}

CHECK() {
# Check package cache exists
if [ "$(find /var/cache/apt/archives/ -maxdepth 1 -size +100k)" ];  then
    APTCACHESIZE=$(du -sh /var/cache/apt/archives/ | awk '{print $1}' | sed 's/$/B/')
    aptcache=(FALSE "Package Cache" "Clean" "Packages" "Safe" "You can currently remove $APTCACHESIZE worth of files from your package cache" )
else
    aptcache=(FALSE "Package Cache" "Clean" "Packages" "Safe" "You can currently remove 0kB worth of files from your package cache")
fi

# Check if archived /var/log files exist
if [ "$(find /var/log -type f \( -iname \*.gz -o -iname \*.0 -o -iname \*.1 \) -maxdepth 100 -size +1k)" ];  then
    LOGARCHIVESIZE=$(find /var/log -type f \( -iname \*.gz -o -iname \*.0 -o -iname \*.1 \) -exec du -csh '{}' + | tail -1 | awk '{print $1}' | sed 's/$/B/')
    logarchive=(FALSE "Log Archives" "Clean" "System" "Safe" "You can currently remove $LOGARCHIVESIZE worth of archived logs" )
else
    logarchive=(FALSE "Log Archives" "Clean" "System" "Safe" "You can currently remove 0kB worth of archived logs")
fi

# Check if firefox cache exists
if [  -d  "$HOME/.cache/mozilla/" ];then
    FFCACHESIZE=$(du -sh "$HOME/.cache/mozilla/"| awk '{print $1}'| sed 's/$/B/')
    firefox=("FALSE"  "Firefox" "Clean" "Internet" "Safe" "You can currently remove $FFCACHESIZE from your Firefox cache" )
else
        firefox=()
fi

# Check if the google-chrome cache exists
if [ -d  "$HOME/.cache/google-chrome/" ]; then
    GCCACHESIZE=$(du -sh $HOME/.cache/google-chrome/ | awk '{print $1}' | sed 's/$/B/')
    chrome=("FALSE" "Chrome" "Clean" "Internet" "Safe" "You can currently remove $GCCACHESIZE from your Chrome cache" )
    else
        chrome=()
fi

# Check if the chromium cache exists
if [  -d  "$HOME/.cache/chromium/" ]; then
    CHRCACHESIZE=$(du -sh $HOME/.cache/chromium/ | awk '{print $1}' | sed 's/$/B/')
    chromium=("FALSE" "Chromium" "Clean" "Internet" "Safe" "You can currently remove $CHRCACHESIZE from your Chromium cache" )
else
         chromium=() # Main zenity dialogue window
fi

# Check if there are any residual configuration files
if [ ! -z  "$(dpkg -l | grep '^rc')"  ]; then
        RESCONFIGQTY=$(dpkg -l | grep '^rc' | awk '{print $2}'| wc -w)
    resconfig=(FALSE "Residual Config Files" "Clean" "Packages" "Safe" "You currently have $RESCONFIGQTY residual configuration files you can remove" )
else
        resconfig=( FALSE "Residual Config Files" "Clean" "Packages" "Safe" "There are no residual configuration files that can be removed" )
fi

# Check if any thumbnails exist
if [ $(du -sk $HOME/.thumbnails/ | awk '{print $1}')  -gt 100  ]; then
        THUMBCACHESIZE=$(du -sh $HOME/.thumbnails/ | awk '{print $1}' | sed 's/$/B/')
    thumbn=("FALSE" "Thumbnail Cache" "Clean" "Images" "Safe" "You can currently remove $THUMBCACHESIZE from your thumbnail cache" )
else
        thumbn=( "FALSE" "Thumbnail Cache" "Clean" "Images" "Safe" "You can currently remove 0kB from your thumbnail cache" )
fi

# Check if Whisker Menu has Recently Used items
if [ -z "$(cat $HOME/.config/xfce4/panel/whiskermenu-1.rc | grep "^recent=" | cut -d '=' -f2)" ]; then
    whisker_recent=(FALSE "Whisker Menu" "Clean" "Menu" "Safe" "Whisker Menu has no Recently Used items to clean" )
else
    whisker_test=$(cat $HOME/.config/xfce4/panel/whiskermenu-1.rc | grep "^recent=" | cut -d '=' -f2 | sed 's/,/ /g'| wc -w)
    whisker_recent=(FALSE "Whisker Menu" "Clean" "Menu" "Safe" "You can currently remove $whisker_test Recently Used items from your Whisker Menu" )
fi

# Check if the Trash is empty
if [  "$(ls -A $HOME/.local/share/Trash/files/)" ]; then
        TRASHCACHESIZE=$(du -sh $HOME/.local/share/Trash/ | awk '{print $1}' | sed 's/$/B/')
    trash=("FALSE" "Trash Bin" "Clean" "Home" "Safe" "You can currently remove $TRASHCACHESIZE from your Trash bin" )
else
        trash=()
fi

# Check LL version
LL_VERSION=$(awk '{print $3}' /etc/llver)
case $LL_VERSION in
2.0)fixbootup=() ;;
2.2)fixbootup=(FALSE "Bootup Fix" "Fix" "Repair" "Safe" "Fix the bootup" ) ;;
2.4)fixbootup=() ;;
esac
}

#Main loop
while (true); do

CHECK        # first run the checks

# Main zenity dialogue window
selection=$(zenity --window-icon="$ic" --list --checklist --width=880 --height=500 --column="Select" --column="Name" --column="Task" --column="Category" --column="Status" \
--column="Description" --text='Select the task you wish to perform, then click the Begin button. Sort Categories by clicking on the column.\n\nThere are 2 levels of <b>Status</b>:\n<span foreground="green">Safe</span> - Safe to perform, no harm can be done.\n<span foreground="red">Caution</span> - Proceed with caution, read the warning on the proceeding step.\n\nYou can select multiple tasks to perform (password required for some tasks).' --title="Lite Tweaks" --ok-label="Begin" --cancel-label="Quit" \
FALSE "Autoremove Packages" "Clean" "Packages" "Safe" "Remove packages installed for programs that are no longer present" \
"${chrome[@]}" \
"${chromium[@]}" \
FALSE "Default Web Browser" "Preferred" "Browser" "Safe" "Set your default web browser" \
FALSE "Display Disk Usage" "Information" "System" "safe" "Display overall disk usage information" \
"${firefox[@]}" \
FALSE "Fix Apt" "Fix" "Repair" "Caution" "Jerry add some text here" \
"${fixbootup[@]}" \
FALSE "Kernel Removal" "Clean" "System" "Caution" "Remove kernels you no longer wish to boot from" \
FALSE "Locate Large Files" "Information" "System" "Caution" "Find files on your system within a size range" \
"${logarchive[@]}" \
"${aptcache[@]}" \
"${resconfig[@]}" \
"${thumbn[@]}" \
"${trash[@]}" \
"${whisker_recent[@]}" )

# If Quit is clicked then exit
if [ "${PIPESTATUS[0]}" -ne "0" ]; then
      exit 0
fi

# Check if anything is selected
echo $selection | grep '[a-zA-Z0-9]'
if [ "${PIPESTATUS[1]}" -ne "0" ]; then
    zenity --info --title='Lite Tweaks' --text='No option was selected.'
fi

ARRAYS   #Separate selected items into arrays A and array B
RUN
done

exit 0
Thank you. It works.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)