Search:  
Gentoo Wiki

TIP_Design_your_own_Framebuffer_Splash

This article is part of the Tips & Tricks series.
Terminals / Shells Network X Window System Portage System Filesystems Kernel Other

Contents

Introduction

This article is not about installing the framebuffer splash, or about configuring your kernel for framebuffer splash - there's plenty of documentation on that already, so get the emergence theme up & running before you try making your own themes. I'm assuming you've got that far before you proceed with designing your own layout.

I wrote this because I wanted to create my own theme, and although I found plenty of themes on the net (mostly for bootsplash used in older kernels) I couldn't find much documented about how to make my own - about the best I could find was "to have an idea how they should look like, have a look at the config files for the default theme". Well, that's what I did.

I don't plan on maintaining this article, so I'd be indebted if you would. Please correct errors & ommissions, but do so accurately - if this works for you, add the article to your watch list so that you can correct other Gentoo Wiki users' spelling & grammar.

Starting out with a splash

Once you know your kernel & grub.conf work with splashutils (check out Fbsplash), it's time to start making your own theme. I wanted to build one with my company logo on it, so unfortunately I can't post the trademarked graphics here - for this demo I'm going to use these images.

Try to create your image at high resolution, and only downsize as infrequently as possible. I had some problems with a jpeg created in Photoshop on my Mac, but I found that it worked perfectly when I shipped it over to the target machine as a bitmap & then converted it to jpeg using imagemagick. I couldn't get PNG images to work at all, but maybe I didn't test thoroughly - I later found that sometimes during the boot process (about one time in five) my kernel would hang just before loading the splashscreen but that I'd get no problem on a reboot. This is probably because of the slightly esoteric hardware I'm trying this on, but it may help you - if your kernel hangs on bootup, try a power-cycle.

Make all changes incrementally

When you're making changes to your .cfg files, make all changes incrementally - this means no fancy stuff initially, just add one component at a time & see if that works. If you start from scratch with a massive long .cfg file full of eye-candy and it doesn't work, how do you debug it?

Create a theme directory & artwork

I'm only working on one canvas-size to start with - this machine won't do a framebuffer larger than 1024x768, but you also don't want to be messing around with several sizes at once - get one working and then you can upscale the rest.

When you design your artwork, remember that the verbose screen will need to be mostly dark - the console text is a light grey which works great on black, but not so well on lighter colors. Is there any way to change that, short of modifying the kernel source?

# mkdir -p /etc/splash/mytheme/images
# cp ~/*1024x768.jpg /etc/splash/mytheme/images
# ls /etc/splash/mytheme/images
silent-1024x768.jpg  verbose-1024x768.jpg

Create a theme .cfg file

Again, we're gonna keep this absolutely as simple as possible, and cut out all the cruft. We'll still have the original theme to refer back to, but don't worry right now about semi-transparent progress bars - let's just get it working. Just edit /etc/splash/mytheme/1024x768.cfg

File: /etc/splash/mytheme/1024x768.cfg
bgcolor=0

tx=25
ty=28
tw=979
th=728

pic=/etc/splash/mytheme/images/verbose-1024x768.jpg
silentpic=/etc/splash/mytheme/images/silent-1024x768.jpg

I think the above is about as simple as it gets - if you find that any of these entries are unnecessary, please remove them from this page.

What the above says is:

Note:You can find more options in /usr/share/doc/splashutils-*/theme_format.gz - I urge you to read this file and to keep it open for reference.

Test Our Theme

Thankfully, there is no need to reboot just to check out the theme; the utility splash_manager can do that for us. Switch to a virtual terminal (<ctrl><alt>F1) and log in as root.

# splash_manager -t mytheme -m s -c demo
# splash_manager -t mytheme -m v -c demo

This will demo the silent and then verbose themes. For a more realistic demo (slower and less steady) you can add --steps=30 --delay=1. Run splash_manager after you make every change.

Freaking ugly, isn't it? Looks to me like Mike is a programmer rather than a graphics designer - sorry, Mike! Don't give up the day job just yet! But if I've got the instructions above right, and you've followed them correctly, then it'll be booting up fine & displaying this picture of a bird with a fat arse & a car appropriate for us.

Getting the verbose text right

Ok... so now we've (faux-)rebooted we can see the picture both in silent & verbose mode.

It's worth mentioning at this point that Mike probably didn't need to do the green Matrixesque tinting in his image program - splashutils offers improvements over the old bootsplash and does transparency & stuff. It also does alpha-blending, check out the color section.

The first thing to do is get the text fitting into the appropriate area in verbose mode. We do this using the tx=, ty=, tw= & th= settings.

It's interesting to note that these are the only commands in the theme format that don't define the box in terms of the x & y co-ordinates of its top-left & bottom-right corners. The verbose text box is defined by the x & y of it's top-left corner and by its width and height.

You can look in /usr/share/doc/splashutils-*/theme_format.gz for more details but the important thing to remember is that if your screen is 1024 pixels wide and you want the verbose text to be 15 pixels in from the left, but 20 pixels in from the right then tx=15 and tw=... erm... 1024 - (15 + 20)... erm... tw=989.

The first time I tried this I just copied & pasted the figures from Mike's posting on the Gentoo forums, and the verbose screen didn't display. These were Mike's settings:

tx=162
ty=110
tw=955
th=804

Now, I'm not sure if they worked for him, because the original image he sent me was 1280x1024, but these figures won't work on my 1024x768 screen - the sum of tx and tw are more than 1024, and the y & height are more than 768.
Troubleshooting: if your system boots to a login prompt but instead of your verbose screen being displayed you just get a black framebuffer with white writing, check & ensure your height, width and starting co-ordinates are sane relative to the screensize.

File: /etc/splash/mytheme/1024x768.cfg
bgcolor=0

tx=162
ty=110
tw=700
th=548

pic=/etc/splash/mytheme/images/verbose-1024x768.jpg
silentpic=/etc/splash/mytheme/images/silent-1024x768.jpg

Test the them with splash_manager I'd like to say that this looked alright to me, but I didn't like to examine Mike's artwork too closely. Suffice to say it boots & the text came up & stuff.

Displaying a silent message

When the system boots in silent mode, we'd like to display some text saying "Hit f2 to show a bunch of Linux stuff", just like all the other themes do.

The content of the text is defined in /etc/conf.d/splash, but the text size & color is part of our theme. Let's edit our config:

File: /etc/splash/mytheme/1024x768.cfg
bgcolor=0

tx=162
ty=110
tw=700
th=548

text_x=204
text_y=544
text_size=26
text_color=0xffffff
text_font=luxisri.ttf

pic=/etc/splash/mytheme/images/verbose-1024x768.jpg
silentpic=/etc/splash/mytheme/images/silent-1024x768.jpg

The only change I've made here is the addition of the text_x=, text_y=, text_size= & text_color= lines.

Respectively these mean:

It's worth observing another unusual case in the layout config here - nowhere else in the theme is the 0x needed before the hex color code. I believe the 0x is technical for "this is a hex number, not a decimal one", but the color for the progressbar & other boxes that we'll paint don't need that.

Test the theme using splash_manager

Understanding hexadecimal color codes

If you've designed webpages then you may already be familiar with hex color codes, but here's a quick recap, just in case - you're going to need these throughout your theme.

The principle is that 2563 colors is plenty enough colors to satisfy any interior-decorator, and that hex is a convenient way of describing values between 00 and 255 without wasting any bits. Consequently we define our color as RRGGBB, where RR is a value of red between 00 and FF, blended with an amount of green between 00 and FF, and mixed with some blue, too.

Examples:

If you want a bunch of useful colors, a Google for "hex color codes" should bring up a big bunch of useful color tables

Alpha Blending (transparency/translucency)

The if you add two hex numbers after the color code, it corresponds to the opacity. Eg,

Drawing a box

From /usr/share/doc/splashutils-0.9.1/theme_format.gz

box [flags] x0 y0 x1 y1 color1 [color2 color3 color4]
Draws a box on the image.

Flags:

  • silent - The box is drawn only in silent mode. If a box doesn't have this flag set, it's drawn only in verbose mode.
  • noover - This stands for no-overpaint. Boxes with this flag set are painted only when progress == 0 or the repaint command is used.
  • inter - The box will be interpolated with the following one, based on the value of progress.

x0, y0 - coordinates of the upper left corner of the box
x1, y1 - coordinates of the lower right corner of the box

Colors are specified one of the following formats:
#rrggbb or #rrggbbaa.
aa = alpha, 00 - translucent, ff - solid

If only color1 is specified, the box is filled with the color.

If all four colors are specified, then:

  • color1 is the color of the upper left corner of the box,
  • color2 is the color of the upper right corner of the box,
  • color3 is the color of the lower left corner of the box,
  • color4 is the color of the lower right corner of the box,

and the box is filled with a gradient formed by these colors.


File: /etc/splash/mytheme/1024x768.cfg
bgcolor=0

tx=162
ty=110
tw=700
th=548

text_x=250
text_y=743
text_size=19
text_color=0xffffff

box silent noover      300 750 824 768 #000000

pic=/etc/splash/mytheme/images/verbose-1024x768.jpg
silentpic=/etc/splash/mytheme/images/silent-1024x768.jpg

This box has the attributes:

If you've scaled the original artwork to 1024x768 and you're following along, then you'll see why I've drawn this box. Those that are paying attention will see that I've also moved the silent text correspondingly.

Note: this didn't seem to work properly when the text started inside the box, but does so perfectly when the text starts above the top of the box. I have no idea why this might be.

Test the theme using splash_manager

Defining the progressbar

I think the next thing we want to do is get the progressbar working, if nothing for no other reason than to cover that fat bird's hideous arse... erm... I mean to protect the young lady's modesty.

I'm pretty sure there's some requirement about having a baselayout that supports splashutils here - I believe the progressbar is incremented to represent how far the system has proceeded through the active /etc/init.d/ events. I seem to recall reading that splashutils provide an interface for animation events, and so init scripts must call this interface in order to show progress - I presume this is what /etc/conf.d/splash is using to write the text to the splashscreen, too. I'd imagine that all current baselayouts do this correctly, but I don't know for sure - I'm using baselayout-1.11.10.

The critical part of the theme format for the progress bar is where it says "inter - The box will be interpolated with the following one, based on the value of progress". I can't really give a helpful definition of interpolation other than "mixing stuff together" - the best thing to do is look at an example:

File: /etc/splash/mytheme/1024x768.cfg
bgcolor=0

tx=162
ty=110
tw=700
th=548

text_x=250
text_y=743
text_size=19
text_color=0xffffff

box silent noover      300 750 824 768 #000000

box silent inter        300 350 300 418 #ff00ff
box silent              300 350 824 418 #ff00ff

pic=/etc/splash/mytheme/images/verbose-1024x768.jpg
silentpic=/etc/splash/mytheme/images/silent-1024x768.jpg

What these three additional lines basically say is:

So the first "box" is tiny - it's what's used to represent no progress at all, except that we never see the box that small, because it's not painted until the progress begins - I'd guess it's usually 5% or 10% wide when we first see it. The second box represents the completed progress - you'll see it full with when you run shutdown -hf now.

I reckon that, considering splashutils allows transparency, one could have a progress bar that gets darker during the progression. I haven't tried that, so implementation is left as an exercise for the reader.

Test the theme using splash_manager

Drawing rectangles

Ok, so we've got the progressbar working, but it looks kinda lame... something's missing. How does the viewer know where 100% is? Let's draw a rectangle around the progressbar to show how full it is. There are two ways of doing this.

Solid filled

File: /etc/splash/mytheme/1024x768.cfg
bgcolor=0

tx=162
ty=110
tw=700
th=548

text_x=250
text_y=743
text_size=19
text_color=0xffffff

box silent noover      300 750 824 768 #000000

box silent noover       297 347 827 421 #dcdcdc
box silent inter        300 350 300 418 #ff00ff
box silent              300 350 824 418 #ff00ff

pic=/etc/splash/mytheme/images/verbose-1024x768.jpg
silentpic=/etc/splash/mytheme/images/silent-1024x768.jpg

It only takes a single additional line to do this - you can see how it's 3 pixels wider on each side than the progressbar and it's a contrasting color. The noover option seems a bit of a misnomer to me - it doesn't prevent the box from being overwritten, but rather prevents it from overwriting other graphical items - such as the progressbar on the following two lines. Check it out!

Transparent

Well, that's all well & good, but some folks will want to see what's underneath the progressbar, at least while it's progressing.

Creating a transparent box doesn't work:

box silent noover       297 347 827 421 #dcdcdc
box silent noover       300 350 300 418 #000000ff
box silent inter        300 350 300 418 #ff00ff
box silent              300 350 824 418 #ff00ff

Because the box just shows what's underneath it - the plain rectangle we want as our progressbar border.

In fact, spock shows us the way around this in his Emergence theme - take a look at /etc/splash/emergence/1024x768.cfg. In that he draws a 1-pixel wide "hollow rectangle" - it's not a single transparent rectangle, but rather 4 independent 1-pixel wide retangles forming a border.

File: /etc/splash/mytheme/1024x768.cfg
bgcolor=0

tx=162
ty=110
tw=700
th=548

text_x=250
text_y=743
text_size=19
text_color=0xffffff

box silent noover      300 750 824 768 #000000

box silent        297 347 827 350 #dcdcdc
box silent        297 347 300 421 #dcdcdc
box silent        297 418 827 421 #dcdcdc
box silent        824 347 827 421 #dcdcdc

box silent inter        300 350 300 418 #ff00ff
box silent              300 350 824 418 #ff00ff

pic=/etc/splash/mytheme/images/verbose-1024x768.jpg
silentpic=/etc/splash/mytheme/images/silent-1024x768.jpg

The above theme gives the progressbar a 3-pixel border by the use of 4 rectangles:

Where:

If working this out melts your brain as badly as it does mine, then I suggest you get a pen & a sheet of paper. I'm sure there are a few Gentoo geeks out there who can do this maths in their heads, but the rest of us'll have to plan it all out a few times on A4 & expect to make a few corrections in red ink. A good way to debug would be to comment out one line at a time & see which edge is affected.

Edit GRUB

I'm using a fairly unusual RAID array here, so your root= sections will almost certainly be something different - probably something like root=/dev/hda3, I guess.

File: /boot/grub/grub.conf
timeout 15
default 1
fallback 0

title Gentoo Linux - safe?
root (hd0,0)
kernel /bzImage.old root=/dev/discs/disc0/part4

title Gentoo Linux - with my theme!
root (hd0,0)
kernel /bzImage root=/dev/discs/disc0/part4 video=vesafb:ywrap,mtrr,1024x768-16@70 splash=silent,theme:mytheme
initrd /boot/fbsplash-mytheme-1024x768

Note that for the purposes of constructing the splash theme I'm always placing the initrd as a separate file in /boot, rather than compiling it into the kernel. Sure we can compile it into the kernel if we want to when we've finished laying it out, but at the moment that just takes a few extra commands which slow us up - we're gonna need to reboot quite a few times to get everything just how we want it.

Or Edit Lilo

This is a basic example of how to setup your lilo.conf

File: /etc/lilo.conf

boot = /dev/hda2
install = /boot/boot-menu.b
prompt
timeout=50
delay = 50
default = "Windows"

other = /dev/hda1
	label = Windows
	table = /dev/hda

image = /boot/kernel-genkernel-x86-2.6.12-suspend2-r3
        root = /dev/hda9
        label = "test"
	append = "init=/linuxrc real_root=/dev/hda9 hdb=ide-cd splash=silent,fadein,theme:default quiet CONSOLE=/dev/tty1 video=ypan,mtrr,1024x768-32@60 resume2=swap:/dev/hda8 gentoo=nodevfs "

Install the theme to /boot

You'll find you're running the below commands quite frequently as you tweak the dimensions of your layout - I keep the two lines below close at hand in my history buffer:

# mount /boot ; splash_geninitramfs -v -g /boot/fbsplash-mytheme-1024x768 -r 1024x768 \
 mytheme && umount /boot
# reboot && exit

Set the theme as default framebuffer

Assuming you run the splash initscript at boot with the default settings, all you need to do is.

# rm /etc/splash/default && ln -s mytheme /etc/splash/default


Conclusion

The completed splashscreen in silent mode
The completed splashscreen in silent mode

I hope you find this article useful and that it encourages you to design you own themes. Please update the wiki if you find errors or discover a new way to do cool stuff with gensplash - I notice I haven't covered color gradients at all. They are supported, so please feel free to experiment with them.

I haven't posted to the wiki the original artwork I used for this theme, because I'm not clear on the ownership of all its components - you can probably get a copy of it somewhere.

What would be really nice is a piece of Free artwork to go with this article - if you have one for which you own the copyright, please feel free to make it available & edit the article to accommodate it, but I'd be grateful if you'd be prepared to take on the full article & make the layout of the .cfg file fully-compatible with your artwork.

Other Custom Configs

Fade in from black

This theme will fade in from black. It also features a progressively more transparent progress bar, and optionally, fortune messages. Note, it uses the same image for silent and verbose modes (easily changed). It works best with a dark picture. I use this red semiquaver from deviant artist veraukoion.

File: /etc/splash/squaver/1024x768.cfg
bgcolor=0
tx=63
ty=50
tw=898
th=668

# Bluish translucent box for verbose mode
box  noover       51 38 973 717 #401040a0

text_x=130
text_y=660
text_size=26
text_color=0xaaeeff

# Fortune messages
#text silent ../luxisri.ttf 26 50 50 #aaeeff exec "fortune -asn 80"

# Fade in from black
box silent inter        0 0 1024 768 #000000
box silent              0 0 1024 768 #00000000

# Progress bar 'outline'
box silent 985 698 986 717 #506090
box silent 38 716 986 717 #506090

# Translucent progress bar
box silent inter        40 699 40 710 #aaeeff60
box silent              40 699 984 710 #1020c030

pic=/etc/splash/squaver/images/1024x768.jpg
silentpic=/etc/splash/squaver/images/1024x768.jpg


Other Resources

More information (the best updated information) can be found in your version of splashutil's tarball.

For relevence however here's the theme_format from splashutils 1.3:

File: http://dev.gentoo.org/~spock/projects/splashutils/current/splashutils-1.3.tar.bz2
splashutils recognizes the following directives in the config files in
/etc/splash:

NOTE: Unless otherwise stated, all coordinates are specified in the screen
coordinate system (ie. the top left pixel is at (0,0)) and are given in
pixels.

Verbose mode settings
---------------------

* pic=<path>
  Full path to the JPG/PNG background image for verbose mode.

* pic256=<path>
  Full path to the PNG background image for verbose splash mode and 8 bpp
  video modes.

  NOTES:
  - The image can have a maximum of 240 colors. 16 colors are taken by fbcon
    and cannot be used in the picture.

* bgcolor=<n>
  Background color which is to be treated as transparent by fbcon. Usually 0.

* tx=<n>
  The x coordinate of the upper left corner of the text window.

* ty=<n>
  The y coordinate of the upper left corner of the text window.

* tw=<n>
  The width of the text window. n cannot be greater than horizontal resolution.
 
* th=<n>
  The height of the text window. n cannot be greater than vertical resolution.

Silent mode settings
--------------------

* silentpic=<path>
  Full path to the JPG/PNG background image for silent mode.

* silentpic256=<path>
  Full path to the PNG background image for silent splash mode and 8 bpp
  video modes.

  NOTES:
  - The image can have a maximum of 256 colors.

* text_x=<n>
  The x coordinate of the main system message.

* text_y=<n>
  The y coordinate of the main system message.

* text_size=<n>
  The size of the font used to render the main system message.

* text_color=<color>
  The color of the main system message either in [0x|#]rrggbb or in
  [0x|#]rrggbbaa format.

* text_font=<file>
  A path to the TTF font with which the main system message will be rendered.
  The path can be either:
   - an absolute path, starting with '/',
   - a path relative to THEME_DIR (eg. /etc/splash),
   - a path relative to THEME_DIR/<theme_name> (eg. /etc/splash/default),

* text [flags] <font> [style] <size> <x> [left|middle|right]
  <y> [top|middle|bottom] <color> [exec|eval] "text"

  Draws an UTF8-encoded text string somewhere on the screen.

  Flags:
  silent  - The text is rendered only in silent mode.
  verbose - The text is rendered only in verbose mode.

  If no flags are specified, the text is rendered in both modes.

  'font' is the name of the file with a TTF font. The path is interpreted in
  the same way as in the case of the 'text_font' configuration directive.

  'style' can be used to select a bold/italic/underlined form. The style
  selector is formed with the following characters:

   'b' - bold
   'i' - italic
   'u' - underlined

  Example:
   A style selector for a bold italic font: bi

  The color can be specified either as #rrggbb or as #rrggbbaa.

  The x and y coordinates specify the position of the hot spot of the text
  string. The position of the hot stop within the bounding rectangle of the
  text string can be chosen with the 'left', 'middle' and 'right', 'top'
  and 'bottom' flags.

  The different positions of the hot spot are shown below:

 (lt)-------------------------(mt)----------------------------(rt)
  | TTTTTT EEEEE  SSSS TTTTTT      TTTTTT EEEEE XX  XX TTTTTT   | 
  |   TT   EE    SS      TT          TT   EE     XXXX    TT     |
 (lm) TT   EEEE   SSS    TT   (mm)   TT   EEEE    XX     TT   (rm)
  |   TT   EE       SS   TT          TT   EE     XXXX    TT     |
  |   TT   EEEEE SSSS    TT          TT   EEEEE XX  XX   TT     |
 (lb)-------------------------(mb)----------------------------(rb)

  lt = left/top
  mt = middle/top
  rt = right/top
  lm = left/middle
  ...

  The default position of the hot spot is (lt) (left - top).

  Before the text is rendered/evaluated, all expressions of the form:
  '\x', where 'x' is any character, are replaced by 'x'.

  If the 'exec' flag is set, sh -c 'text' is executed, and the value
  read from stdout is rendered on the screen.

  If the 'eval' flag is set, evaluation is performed on the 'text'
  argument. Variables of the form $variablename are replaced by their
  values. Recognized variables:
   - $progress - progress indicator (in percents)

  The 'text' argument has to be enclosed in double quotes.

* box [flags] <x0> <y0> <x1> <y1> <color1> [color2 color3 color4]
  Draws a box on the screen.

  Flags:
  silent - The box is drawn only in silent mode. If a box doesn't have
           this flag set, it's drawn only in verbose mode.
  noover - This stands for no-overpaint. Boxes with this flag set are
           painted only when progress == 0 or the repaint command is used.
  inter  - The box will be interpolated with the following one, based
           on the value of the progress variable.

  x0, y0 - coordinates of the upper left corner of the box
  x1, y1 - coordinates of the lower right corner of the box

  Colors are specified in one of the following formats:
  - #rrggbb
  - #rrggbbaa
  aa = alpha, 00 - translucent, ff - solid

  If only color1 is specified, the box is filled with the color.
  If all four colors are specified, then:

  color1   is the color of the   upper left    corner of the box,
  color2   is the color of the   upper right   corner of the box,
  color3   is the color of the   lower left    corner of the box,
  color4   is the color of the   lower right   corner of the box,

  and the box is filled with a gradient formed by these colors.

* icon <path> <x> <y> [crop from to] [state service]
  Draws an icon (a PNG image) at coordinates x, y, based on
  the current state of a service.

  If the 'crop' keyword is used, the icon will be cropped by a
  rectangle interpolated between 'from' and 'to', based on the
  value of the progress variable. 'from' and 'to' are both
  rectangles described in the icon coordinate system using the
  following format:

    <x0, y0, x1, y1>

  In the icon coordinate system, the icon's top left corner
  is at (0,0).

  'state' can be one of the following:
  svc_inactive_start,   svc_inactive_stop,
  svc_started,          svc_stopped,
  svc_start_failed,     svc_stop_failed,
  svc_start,            svc_stop,

  'service' is the name of the system service.

  An icon will be rendered on the screen only if the service name
  is found in a environment variable appropriate for the selected
  state or if the state has been set through an appropriate splash
  daemon command. The list of variable names corresponding to the
  recognized states follows:
  SPL_SVC_INACTIVE_START    SPL_SVC_INACTIVE_STOP
  SPL_SVC_STARTED           SPL_SVC_STOPPED
  SPL_SVC_START_FAILED      SPL_SVC_STOP_FAILED
  SPL_SVC_START             SPL_SVC_STOP

  Each of these variables can contain a space-separated list of
  service names.

  Examples:

   1) icon img/logo.png 100 100 crop <0,0,49,0> <0,0,49,199>
      The image from img/logo.png will be painted at (100,100)
      (ie. at the 101-th pixel from the left and from the top).

      The image will be cropped. When progress == 0, no part of
      it will be displayed on the screen (height of the first
      rectangle is equal to 0). As the progress increases, the
      image will be extended downward, until it reaches the
      full size of 50 x 200 pixels.

* rect <attr> <x0> <y0> <x1> <y1>
  Describes a rectangular area on the screen with some special
  attribute 'attr'.

  Available attributes:

  repaint - causes the area to be repainted every time splash_util
            is called with the 'paint' command (with 'repaint', the
            whole screen is repainted)

* anim <once|loop|proportional> <path> <x> <y> [state service]

  Displays a MNG animation on the silent splash screen at (x,y).

  'once' -- the animation is displayed only once. After it reaches its
            last frame, it is displayed just like an icon.

  'loop' -- the animation is displayed in an infinite loop.

  'proportional' -- the animation progress is coupled with the progress
                    variable. Note that in this case, the animation
                    isn't smooth and only single frames are displayed.

  WARNING: Animation support in splashutils isn't complete yet and the
  following is subject to change in future versions of the program.

  Currently, all animations are displayed on a separate 'layer' located
  above all other objects. An animation object will always cover icons,
  boxes, etc. Overlapping animations with other objects should currently
  be avoid, as it may lead to unexpected flickering.

  Depending on how the mng file is constructed 'once' and 'proportional'
  might not work as aspected. When the file is internally looped, the
  animation will always be displayed in an infinite loop (even when
  the 'once' flag is used). When the file doesn't contain a frame
  counter, 'proportional' will not work and only the first frame will
  be displayed.

Deprecated settings
-------------------
* jpeg=<path>
  Full path to the JPG background image for verbose mode.
  (Use pic=<path> instead.)

* silentjpeg=<path>
  Full path to the JPG background image for silent mode.
  (Use silentpic=<path> instead.)

Contributors

The completed splashscreen in verbose mode
The completed splashscreen in verbose mode
Retrieved from "http://www.gentoo-wiki.info/TIP_Design_your_own_Framebuffer_Splash"

Last modified: Fri, 05 Sep 2008 23:06:00 +0000 Hits: 83,741