FreezeDesktop : deepfreeze di Linux
Mengembalikan seperti keadaan semula mungkin sangat berguna bagi komputer dengan banyak pengguna, selain memudahkan admin untuk mengelola, juga bisa digunakan untuk menjaga tampilan desktop.
Pada sistem operasi seperti windows memang tersedia sebuah aplikasi yang berfungsi seperti tersebut diatas, tetapi pada sistem operasi Linux kebanyakan masih berbentuk script shell yang membackup settingan desktop dan mengembalikannya pada saat user login kembali.
Banyak yang sudah menulis script seperti ini, seperti mas Gwijayas dengan python. Tapi kali ini saya mencoba menulis script versi saya pribadi. Idenya adalah tidak hanya membackup dan mengembalikan settingan desktop seperti semula, tapi juga mengembalikan xsplash, GDM Theme, dan mungkin nantinya aplikasi yang terinstall.
Untuk versi yang saya release untuk pertama kalinya ini ada beberapa fungsi yang masih dalam percobaan, di mesin saya berjalan dengan baik tapi entah di mesin anda, saya memang butuh bantuan untuk testing dan sumbangan ide dan code.
FreezeDesktop, aplikasi utiliti kecil tersebut saya namai. Sebenarnya saya berkeinginan menulis aplikasi ini di python, selain mudah *katanya* juga nantinya akan berkembang menjadi aplikasi berbasis GUI. Mungkin ada yang bersukarela untuk memporting tool ini ke python saya akan sangat berterima kasih sebelumnya, saya juga sekalian ikut belajar.
Berikut kode dari FreezDesktop.
#!/bin/bash## freezedesktop.sh# Freeze Your Desktop# Version 1.0# http://adzymaniac.web.id/freezedesktop## Copyright (C) 2010 Aji Kisworo Mukti# Release under GPLv3### FreezeDesktop is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.# FreezeDesktop is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.# You should have received a copy of the GNU General Public License along with GNOME Terminal; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USAexport USER=`whoami`export HOME=/home/$USERexport DIRBACKUP=/home/$USER/.freezeexport XSPLASHDIR=/usr/share/images/xsplash#if [[ $EUID -ne 0 ]]; then# echo "This script must be run as root" 1>&2# exit 1#fiabout() {echo ""echo "Freeze Your Desktop"echo "Copyright (C) 2010 Aji Kisworo Mukti"echo "http://adzymaniac.web.id"echo "Release under GPLv3"echo ""echo "Try with options:"echo "--make Make backup desktop settings"echo "--apply Applying all desktop settings"echo ""}create_dir_backup(){#echo "Checking backup directory..."#sleep 2#if [ -d "$DIRBACKUP" ]; then# echo "Backup directory exist! skipping."# sleep 2#fi#if [ ! -d "$DIRBACKUP" ]; then# echo "Backup directory doesn't exist! creating.."echo "Creating backup directory...$DIRBACKUP"sleep 2mkdir -v -p $DIRBACKUPmkdir -v -p $DIRBACKUP/xsplashmkdir -v -p $DIRBACKUP/dotconfig#fi}check_backup_dir(){echo "Checking backup files..."sleep 2if [[ -e "$DIRBACKUP" ]]; thenecho "Backup files exist! removing."sleep 2rm -rf $DIRBACKUPfi#if [ ! -d "$DIRBACKUP" ]; then# echo "Backup files doesn't exist! creating.."# sleep 2create_dir_backup#fi}checkSum() {file=`basename $1`dir=`dirname $1`(cd $dir && md5sum -c -- $file >/dev/null 2>&1 && echo "$file OK" || echo "$file Changed" & cp $BACKUPDIR/xsplash/$file .)}calcSum() {file=`basename $1`dir=`dirname $1`(cd $dir && md5sum -b -- $file > $file.md5 2>/dev/null && echo "$file CALCULATED" || echo "$file ERROR")}find_process() {while read; do#echo $REPLYif test -n "`echo $REPLY | grep '\.md5`"; thencheckSum $REPLYelseif test ! -f "$REPLY.md5"; thencalcSum $REPLYfifidone}current_xsplash(){echo "Checking xsplash theme..."# for file in /usr/share/images/xsplash/*; do# md5sum $file > $DIRBACKUP/$file.md5# donefind $XSPLASHDIR -type f | find_process;}backup_xsplash(){current_xsplashecho "Backuping xsplash theme..."sleep 2sudo cp $XSPLASHDIR/*.* $BACKUPDIR/xsplash}current_gdm(){sleep 2GDMTHEME=`sudo -u gdm gconftool-2 --get /desktop/gnome/interface/gtk_theme`GMDICON=`sudo -u gdm gconftool-2 --get /desktop/gnome/interface/icon_theme`GDMBACKGROUND=`sudo -u gdm gconftool-2 --get /desktop/gnome/background/picture_filename`}backup_gdm() {current_gdmecho "export GDMTHEMEASLI=$GDMTHEME" > $BACKUPDIR/gdmecho "export GDMICONASLI=$GMDICON" >> $BACKUPDIR/gdmecho "export GDMBACKGROUNDASLI=$GDMBACKGROUND" >> $BACKUPDIR/gdmchmod +x $BACKUPDIR/gdm}apply_gdm(){current_gdmecho "Restoring GDM Theme..."./$BACKUPDIR/gdmif [[ $GDMTHEME != $GDMTHEMEASLI ]]; thensudo -u gdm gconftool-2 --set --type string --set /desktop/gnome/interface/gtk_theme $GDMTHEMEASLI;fiif [[ $GDMICON != $GDMICONASLI ]]; thensudo -u gdm gconftool-2 --set --type string --set /desktop/gnome/interface/icon_theme $GDMICONASLI;fiif [[ $GDMBACKGROUND != $GDMBACKGROUNDASLI ]]; thensudo -u gdm gconftool-2 --set --type string --set /desktop/gnome/background/picture_filename $GDMBACKGROUNDASLI;fi}backup_gconf(){sudo gconftool-2 --dump / > $BACKUPDIR/dump_gconf.xml}apply_gconf(){echo "Restoring / of Gconf..."sudo gconftool-2 --load $BACKUPDIR/dump_gconf.xml}backup_dot_config(){dot=( .bash_history .bash_logout .bashrc .cache .config .evolution .fontconfig .gnome2 .gnome2_private .local .mozilla .nautilus .openoffice.org .profile .update-notifier )for index in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15doecho " "cp -p $HOME/${dot[index]} $BACKUPDIR/dotconfig/done}apply_dot_config(){echo "Restoring dot Config..."cp -p $BACKUPDIR/dotconfig/.* $HOME}if [[ $1 == "--make" ]];thencheck_backup_dir# backup_xsplashbackup_gdmbackup_gconfbackup_dot_configelif [[ $1 == "--apply" ]];then# current_xsplashapply_gdmapply_gconfbackup_dot_configelseaboutexit 0fiexit 0
Atau bisa download script saya di http://adzymaniac.web.id/freezedesktop






Pertamax gan… izin sedot..
tararengkyu buat scriptnya.. ane mau nyobain di karmic dlu ya.. thx !!
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3) Gecko/20091020 Ubuntu/9.10 (karmic) Firefox/3.5.3
mas aji… cara pakenya gmn? di konsol aku ketik ./freezedesktop.sh trus muncul ada dua opsi.. gtu ya?
Try with options:
–make Make backup desktop settings
–apply Applying all desktop settings
trus, cara unfreezenya gmn pula? hehe..
maklum aja mas.. amatiran di linux nih.. :)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.8) Gecko/20100214 Ubuntu/9.10 (karmic) Firefox/3.5.8
buat dulu backupnya dengan –make.
trus pasang di startup applications dengan –apply
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3) Gecko/20090924 Ubuntu/9.10 (karmic) Firefox/3.5.3
ditunggu kabarnya :)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3) Gecko/20090924 Ubuntu/9.10 (karmic) Firefox/3.5.3
WaH…
SangaR GaN….
Benar Benar MemberikaN Saya Inspirasi…
HEhehe
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.18) Gecko/2010020220 Firefox/3.0.18 (.NET CLR 3.5.30729)
@fajar : maturnuwun bro. saya sangat berharap feedback dr masnya berupa ide atau kode..
Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.16823/958; U; en) Presto/2.4.15
FreezeDesktop dalam proses porting ke python… :)
Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.43 Safari/532.5
cobain ini pak sisrestore.googlecode.com . ada gui sederhananya lho.
please join us
Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912/958; U; en) Presto/2.4.15
cobain ini pak
sisrestore.googlecode.com .
ada simple gui front end nya lho
Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912/958; U; en) Presto/2.4.15
kemarin juga sempat berpikiran menyisipkan sedikit dialog GUI, tapi nanggung…insyaallah mau diporting ke python dulu supaya GUInya tidak hanya disisipkan. :)
Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.307.5 Safari/532.9
keren bos,… ijin utak atik biar bisa jalan di openSUSE KDE
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.8) Gecko/20100204 SUSE/3.5.8-0.1.1 Firefox/3.5.8
monggo om..
;)
btw KDE ada gconf like-nya gak yah?
oh iya sekalian diporting ke python om biar nantinya bisa pake pyQT sama pyGTK
Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.1 Safari/533.2
keren mas, mohon ijin nyobain ..
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.2pre) Gecko/20100303 Ubuntu/9.04 (jaunty) Namoroka/3.6.2pre
monggo mas silahkan…
Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.307.5 Safari/532.9
mas aji, script udah saya coba.. sudah di –make & –apply, waktu proses script nampilin pesan “directory not found” trus tak coba restart.. nah, abis restart malah gak bisa masuk GUI mas.. layar monitor item doang.. gak ada pesan error apapun.. T_T ada saran saya mesti ngapain mas aji??
terimakasih sebelumnya.. :)
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6
mungkin bisa dicopas ke sini errornya.
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.8) Gecko/20100214 Ubuntu/9.10 (karmic) Firefox/3.5.8
maaf mas aji, gak kepikiran buat copy error nya waktu script di make & apply, karena udah gak ngerti mau diapain (blank screen) jadinya saya install ulang pake jaunty, sebelumnya saya pake karmic + desktop xpgnome, mungkin dalam waktu dekat saya bakal coba lagi.. makasih mas :)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko/2009033100 Ubuntu/9.04 (jaunty) Firefox/3.0.8
tutorial keren… makasih yah mas
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2
:) sama sama, sering2 aja maen kesini
Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.3 (KHTML, like Gecko) Chrome/5.0.356.2 Safari/533.3
mantep
Opera/9.80 (X11; Linux i686; U; en) Presto/2.2.15 Version/10.10
@kurt : tengkyu
Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.3 (KHTML, like Gecko) Chrome/5.0.356.2 Safari/533.3
hmmm..tak copas nang gedit dadi setengahe warna pink kabeh ji, ono seng salah kayane…
Untuk warnet urung cucok ji..tambahi maneh, keep trying bro!!
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.8) Gecko/20100214 Ubuntu/9.10 (karmic) Firefox/3.5.8
hmm…pink pie?
ada log nya? aku minta sini.
Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.3 (KHTML, like Gecko) Chrome/5.0.356.2 Safari/533.3