Desktop tidy
A cluttered desktop can be a problem, typically people use the desktop becuase they know the location of the files should they have downloaded them from somewhere, and need to reuse them quickly.
I have written a script that runs on Linux that cleans the desktop up on a daily basis, by moving all the files into a folder with an easily readable date name within an archive folder, so that your desktop remains clean and ordered, and you also do not lose your files.
The beauty of this is that you can configure your applications to point at the desktop, safe in the knowledge that all the clutter from today will be gone tomorrow, and placed neatly within a folder with the date so you can find it, when somebody says “I sent it to you Tuesday”
Just run the script below and it will automatically install, any clutter on the Desktop will archive to folder with yesterday’s date found within the Archive folder located on the Desktop.
You can download it here after unzipping, simply install using terminal with:
sudo chmod a+x desktop-tidy-install.sh sudo ./desktop-tidy-install.sh
The source code is below:
#!/bin/bash ######################## # # # Install script # For Desktop tidy, compat with any distro running Gnome 3, tested on fedora 20 # # Adrian callaghan 02-12-2014 # # ######################## ######################## # are you capable? if [[ $(/usr/bin/id -u) -ne 0 ]]; then echo "You must run this install script with super user privileges, use either sudo or become root with su -" exit; fi ######################## # enviroment user=$SUDO_USER; userhome="/home/$user"; scriptPath="/usr/local/bin/dt.sh"; autostartFile="dt.desktop"; desktop="$userhome/Desktop"; archive="$desktop/Archived"; ######################## # reinstall? if [ -f "$scriptPath" ] || [ -f "$autostartPath" ]; then echo "Removing previous install" if [ -f "$scriptPath" ]; then rm "$scriptPath" fi if [ -f "$autostartPath" ]; then rm "$autostartPath" fi fi ######################## # create archive folder if none exists, permissions follow later if [ ! -d "$archive" ]; then mkdir "$archive" fi ######################## # create script echo "#!/bin/bash" > $scriptPath; echo "archive=$archive" >> $scriptPath; echo "desktop=$desktop" >> $scriptPath; echo 'curr_archive="$archive/$(date +"%d-%B-%Y" -d "1 day ago")"; # if has not been archived yet, archive if [ ! -d "$curr_archive" ]; then mkdir "$curr_archive"; for file in $desktop/*; do if [ "$file" != "$archive" ]; then mv "$file" "$curr_archive" fi done fi ' >> $scriptPath; chmod 755 $scriptPath chown "$user:$user" $scriptPath ######################## # Add autostart if [ ! -d "$userhome/.config" ]; then mkdir "$userhome/.config" fi if [ ! -d "$userhome/.config/autostart" ]; then mkdir "$userhome/.config/autostart" fi echo "[Desktop Entry] Name=DeskTidy GenericName=Creates a daily desktop Comment=Allows the user to have a clean desktop daily and keep the all the files in an ordered fashion Exec=$scriptPath Terminal=true Type=Application X-GNOME-Autostart-enabled=true " > "$userhome/.config/autostart/$autostartFile"; chmod 755 "$userhome/.config/autostart/$autostartFile" chown "$user:$user" "$userhome/.config/autostart/$autostartFile" ######################### # Trigger script! # source "$scriptPath" chmod "1775" "-R" "$archive" chown "root:$user" "-R" "$archive" ######################### # FEEDBACK echo "!! Desktop Tidy successfully installed !!" echo "When you login a desktop will be created based on todays date" echo "Should you wish to retrieve an old file, archives can be found at $archive and are named by date"
3,480 views
This entry was posted on Wednesday, December 3rd, 2014 at 12:10 pm and is filed under Applications, Bash. You can follow any responses to this entry through the RSS 2.0 feed.