Hi,
Here’s a small script that allows you to replace the different bootsplash screens
that you get with openSUSE, on an openSUSE 12.2 system booting into KDE. Don’t try this
on earlier systems or ones not using KDM.
Please note that I don’t propose to change the themes that are used
but just to change the image files used for the different splash screens.
First some explanation on the bootsplash screens :
There are 4 (!) different bootspash screens you go through when booting openSUSE:
1 - The “Grub2” screen
2 - The “Plymouth” screen
3 - The “Login” screen
4 - The “KDE” splash screen
For each of these, you will need to change the image used as background.
1 - The “Grub2” screen
Thus is the very first graphical screen you get to see, where you can choose the operating system to boot.
This screen is put up by Grub2, the bootmanager.
You will have to determine the size of the image currently used. The easiest way is to
load the file /boot/grub2/themes/openSUSE/background.png into an image viewer
of your choice and check the size there.
2 - The Plymouth screen.
This is the screen you see after having chosen your OS.
The corresponding file is at:
/usr/share/plymouth/themes/openSUSE/background.png
3 - The login screen.
This is the screen where you log into the machine.
That is put up by KDM, the login manager (if you use Gnome, you probabbky
have GDM for that, but I don’t use it, so I can’t help you there.).
The file is at /usr/share/kde4/apps/kdm/themes/openSUSE/background-${KDMXSIZE}x$KDMYSIZE.jpg
There are a lot of different image files in that directory, all named
“/usr/share/kde4/apps/kdm/themes/openSUSE/background-” + some sizes+".jpg"
The “some sizes” part is just the x and y esolution of the screen.
You will have to find out which of these is used by your system, which means
finding the resolution. Normally, the KDm login screen is of the same size as your desktop, so
this is easy to find out.
4 -Finally, the KDE splashscreen
This is the image you see after you logged in and until your desktop is shown.
Here again, it’s a matter of substituting your own picture for that of the normal Suse theme.
The picture is found in :
“/usr/share/kde4/apps/ksplash/Themes/ksplashx-suse/${KDMXSIZE}x$KDMYSIZE/background.jpg”
with, again the sizes of the screen. Determine which one is used in your system, as per above.
Normally, you should be able to use the same image for the KDM login screen and this one.
Now it’s just a matter of changing the image files for the ones you want to use.
However, for the plymouth screen, you need to run mkinitrd.
Note that some if the image files are jpg, others are png! Don’t confuse them and
use the correct image format.
I’ve written a small script that does all of the hard work.
Just fill in the x and y sizes of your kdm/kde screens and also the names of your image files and and run the script.
This you have to run as root since it uses mkinitrd (which takes a LONG time to complete) and has to
muck about in directories where a normal user can’t write.
The script makes backups of the old image files that will be replaced.
There is also a way to get rid of the logos displayed during boot screens:
You can delete (or replace) the openSUSE logo that is displayed with the plymouth screen:
this lies at /usr/share/kde4/apps/kdm/themes/openSUSE/logo.svgz - if you simply delete this file,
no logo is displayed.
There is also the openSUSE logo in the KDE splash screen - the file is at
/usr/share/kde4/apps/ksplash/Themes/ksplashx-suse/${KDMXSIZE}x$KDMYSIZE/opensuse-logo.png. Don’t simply
delete this file but replace it with an empty svgz file.
#!/bin/sh
#: Title : Bootsplash Modifier (for use with grub2 & kdm on opensuse 12.2)
#: Date Created: nov. 3, 2012
#: Last Edit : nov. 16, 2012
#: Author : Lenwolf
#: Version : 1.00
#: Description : Modify boot/splash screens
#: Options : None (Do Not Enter any Options)
#
# Set the following to your sizes
#
KDMXSIZE=1920 # xsize for kdm/kde screens
KDMYSIZE=1200 # ysize for kdm/kde screens
#
# Set the following to your image files. you will normally need two or 3 files
#
# grub2 background
IMGGRUB="/home/wolf/Documents/Bootsplash/BackgroundGrub.png"
# plymouth background displayed between grub & kdm
IMGPLYMOUTH="/home/wolf/Documents/Bootsplash/Background${KDMXSIZE}x$KDMYSIZE.png"
# KDM login screen
IMGKDM="/home/wolf/Documents/Bootsplash/Background${KDMXSIZE}x$KDMYSIZE.jpg"
# KDM splash screen & logo
IMGKDMLOGO="/home/wolf/Documents/Bootsplash/empty.svgz"
#
# DO NOT CHANGE ANYHTING AFTER HERE
#
#
# The directories & filename where the current files lie for openSUSE 12.2.
# These are the files that will be modified.
#
# grub2 background
GRUB2BCKGRND="/boot/grub2/themes/openSUSE/background.png"
# plymouth background & logo: displayed between grub & kdm
PLYMOUTH="/usr/share/plymouth/themes/openSUSE/background.png"
PLYMOUTHLOGO="/usr/share/plymouth/themes/openSUSE/logo.png"
# KDM login screen
KDMLOGIN="/usr/share/kde4/apps/kdm/themes/openSUSE/background-${KDMXSIZE}x$KDMYSIZE.jpg"
KDMLOGINLOGO="/usr/share/kde4/apps/kdm/themes/openSUSE/logo.svgz"
# KDM splash screen & logo
KSPLASH="/usr/share/kde4/apps/ksplash/Themes/ksplashx-suse/${KDMXSIZE}x$KDMYSIZE/background.jpg"
KSPLASHLOGO="/usr/share/kde4/apps/ksplash/Themes/ksplashx-suse/${KDMXSIZE}x$KDMYSIZE/opensuse-logo.png"
# Make the GRUB2 Screen
echo "Changing the Grub2 screen background..."
echo "======================================"
echo
BACKUPFILE="${GRUB2BCKGRND}OLD"
if -f $BACKUPFILE ];
then
echo " Backup file $BACKUPFILE already exists, not overwritten"
else
cp $GRUB2BCKGRND $BACKUPFILE
echo " File $GRUB2BCKGRND backed up to $BACKUPFILE"
fi
rm $GRUB2BCKGRND
cp $IMGGRUB $GRUB2BCKGRND
echo
echo ".... done."
echo "--------------------------------------"
echo ""
# Make the Plymouth screen : between grub screen & kdm login screen
echo "Making Plymouth Bootsplash screen, using mkinitrd...."
echo "====================================================="
echo
BACKUPFILE="${PLYMOUTH}OLD"
if -f $BACKUPFILE ];
then
echo " Backup file $BACKUPFILE already exists, not overwritten"
else
cp $PLYMOUTH $BACKUPFILE
echo " File $PLYMOUTH backed up to $BACKUPFILE"
fi
rm $PLYMOUTH
cp $IMGPLYMOUTH $PLYMOUTH
echo
echo "Now using mkinitrd. THIS TAKES TIME! PLEASE BE PATIENT"
echo
mkinitrd >nul
echo
echo ".... done."
echo "--------------------------------------"
echo ""
#KDM backdrop when selecting user in login screen
echo "Making KDM screen (=login screen)..."
echo "===================================="
echo
BACKUPFILE="${KDMLOGIN}OLD"
if -f $BACKUPFILE ];
then
echo " Backup file $BACKUPFILE already exists, not overwritten"
else
cp $KDMLOGIN $BACKUPFILE
echo " File $KDMLOGIN backed up to $BACKUPFILE"
fi
rm $KDMLOGIN
cp $IMGKDM $KDMLOGIN
# image after selecting user, until user's screen is shown : ksplash screen
echo "Making Ksplash screen..."
echo "========================"
echo
BACKUPFILE="${KSPLASH}OLD"
if -f $BACKUPFILE ];
then
echo " Backup file $BACKUPFILE already exists, not overwritten"
else
cp $KSPLASH $BACKUPFILE
echo " File $KSPLASH backed up to $BACKUPFILE"
fi
rm $KSPLASH
cp $IMGKDM $KSPLASH
echo
echo ".... done."
echo "--------------------------------------"
echo ""
echo
echo "********************* ALL DONE *********************"
echo "To see the result,reboot"
HTH
lenwolf