Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[mini-tool] scriptino per cambiare il tema bootsplash
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
Luca89
Advocate
Advocate


Joined: 27 Apr 2005
Posts: 2107
Location: Agrigento (Italy)

PostPosted: Sat Mar 11, 2006 10:13 pm    Post subject: [mini-tool] scriptino per cambiare il tema bootsplash Reply with quote

Questo è un piccolo scriptino che permette di cambiare il tema per il bootsplash (splashutils). Monta automaticamente la /boot se necessario, crea il file initramfs in /boot e aggiorna il grub.conf per cambiare il parametro "splash=theme:" con il tema nuovo che volete. Nulla di che insomma, però a me a volte fa comodo e magari può essere comodo anche a voi. Per esempio messo in local.stop potrebbe caricare un tema random e così ad ogni riavvio ci si ritrova con un tema diverso. Comunque bando alle ciance, eccolo:

Code:
#!/bin/bash
# Author: Luca Marturana <lucamarturana@gmail.com>
# THIS PROGRAM CAMES WITH ABSOLUTELY NO WARRANTY, USE IT ON YOUR OWN RISK
# Distributed under GPLv2
pn="mksplash"
pv="0.4"

# Parametri predefiniti
boot_dir=/boot
initrd=$boot_dir/fbsplash
theme_dir=/etc/splash/
config_file=~/.$pn
grub_conf=$boot_dir/grub/grub.conf
res=1280x1024
mount_boot="no"
# Carico le variabili settate nel file di configurazione (se esiste)
[ -e $config_file ] && . $config_file

help() {
cat <<EOF
Program: $pn
Version: $pv

Usage: $pn theme \$theme_name
           Create initrd with the theme name specified
           
       $pn set-var variable_name variable_value
           Possible variables are:
               res => resolution (ex. 1280x1024)
               mount_boot => automatically mount $boot_dir (yes or no)
               grub_conf => grub configuration file
               initrd => initramfs file
               
       $pn show
           Shows themes existing on $theme_dir
EOF
}

root_verify() {
   [ $EUID != 0 ] && echo "This action must be run as root" && exit 1
}

ebegin () {
# Usage: $1 => message
   echo -ne "\e[1;32m *\e[0m $1 ..."
}

edone() {
# Usage: $1 => exitcode; $2 => error message
   if [ $1 != 0 ]; then
      echo -e "\n\e[1;31m * \e[0m Error: $2 \e[1;31m!!!\e[0m"
      exit 1;
   else
      echo -e " \e[1;34m[ \e[32mdone \e[34m]\e[0m"
   fi
}

set_var() {
   root_verify;
   [[ -z $1 || -z $2 ]] && edone 1 "Wrong values specified"
   [ ! -e $config_file ] && touch $config_file
   if [ -z "`grep $1 $config_file`" ]; then
   echo "$1=$2" >> $config_file
   else
   sed -ie "s/\(^$1=\).*/\1$2/g" $config_file
   fi
}

check_boot() {
   [[ -n `grep $boot_dir /etc/fstab` && -z `mount | grep $boot_dir` ]] && {
   if [ "$mount_boot" = yes ]; then
   ebegin "$boot_dir isn't mounted, mounting it"
   mount $boot_dir
   edone $? "unable to mount $boot_dir"
   else
   edone 1 "$boot_dir isn't mounted"
   fi
   };
}

make_splash() {
   root_verify;
   check_boot;
   if [ -d $theme_dir$1 ]; then
   cd $theme_dir
   ebegin "Generating initramfs image"
   splash_geninitramfs -g $initrd -r $res $1 &> /dev/null
   edone $? "unable to generate initrd image"
   cd ~-
   ebegin "Updating $grub_conf"
   [ ! -e $grub_conf ] && edone 1 "$grub_conf not found"
   sed -i -e "s/\(theme:\)[^ ]*/\1$1/g" $grub_conf
   edone $? "Updating grub.conf failed"
   else
   edone 1 "theme name specified doesn\'t exist"
   fi
}


case $1 in
   show)    ls --color=auto $theme_dir;;
   set-var) set_var $2 $3;;
   theme)   make_splash $2;;
   *)       help;;
esac


I parametri da passargli sono:

Code:
# mksplash theme nometema


Mette il tema nometema.

Code:
# mksplash set-var res 1280x1024


Setta la risoluzione a 1280x1024 (lo salva in ~/.mksplash e poi la usa per creare le nuove initrd). Tutte le altre variabili possibili le potete vedere nel codice o con "mksplash help".

L'ultima azione è quella di listare i temi presenti in /etc/splash:

Code:
# mksplash show


End this is the end. :)
_________________
Running Fast!
Back to top
View user's profile Send private message
Dr.Dran
l33t
l33t


Joined: 08 Oct 2004
Posts: 766
Location: Imola - Italy

PostPosted: Sun Mar 12, 2006 10:08 am    Post subject: Reply with quote

Script molto carino, sono quelle piccole utility che per pigrizia uno non scriverebbe mai... visto che l'argomento è sempre quello di avere un sistema eye-candy, ma quando qualche d'uno la fa per te è sempre un piacere!
Cool very cool!!!

Grazie Luca :D
_________________
:: [Dr.Dran] Details ::
- Linux User # 286282
- IT FreeLance Consultant
- President of ImoLUG [Imola & Faenza Linux User Group]
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum