My attempt at Ubiquity-Slideshow

Colin Dean cad at
Mon Jan 28 20:15:02 GMT 2008

I think the concept is pretty good. It will get prettier as time goes on.

It's certainly needed. I've done a few Ubuntu installs for friends who
decided to take the plunge, and I get a lot of calls asking for the name
of a program that does a certain function, i.e. "what do I use to play
music?" "Rhythmbox." "What's the name of that installer thing you were
talking about?" "Add/Remove in the Applications menu or Synaptic in the
System Administration menu". These questions can probably be answered
through this installer slideshow.

Windows does it, and I'm sure a lot of people learned some features from
it, so I'm sure it can help Ubuntu.

Dylan McCall wrote:
> Not sure if the attachment went through. If not, I have the file
> (mentioned in parent post) hosted over here:
> Thanks,
> -Dylan McCall
> On Jan 27, 2008 12:24 PM, Dylan McCall <dylanmccall at
> <mailto:dylanmccall at>> wrote:
>     Hello everyone!
>     For a while, I have been trying out various means of welcoming new
>     users to Ubuntu, showing them around so they can share our
>     excitement about it. Recently, I realized that a slideshow shown in
>     Ubiquity fits the job perfectly!
>     (See this forum thread:
>     <>)
>     -It is unobtrusive. Not a popup; no attention or input demanded
>     whatsoever.
>     -New users waiting for Ubuntu to install are still a bit lost, may
>     be impatient.
>     The slideshow should not really show people /how/ to use Ubuntu, but
>     what they can look for and expect to find. I think that is really
>     all we need to do, since most of the included applications are very
>     well done, do the point that they are self-explanatory. It is better
>     that the user learns by using the software than by reading a
>     scholarly tome which appears to them when they first log in.
>     The slideshow here could even help to point out usability features
>     such as translations or configurable font sizes.
>     Yes, there is even a blueprint over on Launchpad:
>     I went ahead and coded the thing. Progress so far is attached. I
>     really like some of the suggestions in that blueprint, such as to
>     mention the community aspect and places to get help. Mentioning the
>     benefit of setting up an Ubuntu-powered home server could be good,
>     too. Lots of possibilities :)
>     One thing I think we should avoid like the plague is advertising the
>     OS in there with claims like "now more secure!". The goal here
>     should not be to sell Ubuntu, but to show a new user the things he
>     can find in his new desktop so that he will feel more confident and
>     more happy with the choice. We should not preach to the converted;
>     we should /reward /the converted with a new and innovative desktop
>     experience they can enjoy, understand and be a part of.
>     Overview of the design:
>     * Open Projector is an external application. Really just a Python
>     script that displays a very open ended slideshow created following a
>     particular format. Theoretically, this could be ported to Qt...
>     although Glade could make that tricky. At the moment there is the
>     gtk version (open-projector-gtk). This could go in a Debian package
>     fairly happily.
>     * I believe Open Projector could be quite easily integrated with
>     another Python application such as the Ubiquity GTK front end.
>     * Ubiquity-Slideshow would be a separate package (and project).
>     Again, this is split into a few versions, with the only one
>     presently existing being ubiquity-slideshow-ubuntu (dependent on
>     open-projector-gtk). Ubiquity-Slideshow is the data for our
>     slideshow that will be displayed with the Ubiquity installation
>     progress. As you might have guessed, it is of the same format that
>     Open Projector reads.
>     The format used by Open Projector is convoluted, but also quite
>     flexible. Slides are all Glade files, and indeed are made up of a
>     bunch of GTK widgets. I chose this path because the slideshow has to
>     be very accessible (desktop integrated!) and translatable. Glade
>     makes both of those things easily possible while still offering a
>     lot of flexibility to people making slides. (More reasons available
>     if you want...). Each slide is actually placed inside its own
>     directory, with that Glade file inside, likely called "".
>     The Glade file must have a non-top-level container called "slide".
>     That container and everything inside it will be read as the slide
>     and displayed.
>     Another thing Open Projector has is "Projectors". These rotate
>     through and display slides inside their host container. ...And that
>     is where the slide metaphor dies down. A slide can, if it wants,
>     have a projector inside of it! The current gnome-app-install slide
>     demonstrates this. The projector iterates through every slide inside
>     of the folder its own slide is in. It reads some data from a folder
>     called "_conf" to decide what order to display the slides in and how
>     quickly to iterate through them.
>     In the case of the Ubiquity GTK front-end, it would create a
>     Projector whose host_widget is its own container and whose path is
>     "/path/to/ubiquity-slideshow-ubuntu".
>     Many example slides exist inside
>     <Ubiquity-Slideshow/ubiquity-slideshow-ubuntu>. Of note are:
>     * gnome-app-install. Embedded projector to display changing
>     contents, alphabetical order set in _conf.
>     * special:thanks. Some fancy GTK widgets. I think it could be
>     interesting to demonstrate the wonderful drag & drop support we have
>     with those widgets
>     * special:welcome. GtkFixed container allowing for label that
>     overlaps images. Also note that it displays first thanks to
>     projector's _conf/slide_start.
>     Still other things on the Todo list:
>     -Timers for projectors default to an Automatic option (-1).
>     Presently, this does nothing. It should cleverly time each slide to
>     be [ (lifetime of parent slide) / (number of slides) ].
>     -Translations are not in. Actually, I have no idea how to do this
>     easily. Open Projector doesn't need translations, but
>     Ubiquity-Slideshow does... although it is just some static data
>     files. Will I have to do something manually, or is there a magical
>     system that will figure it out?
>     -Must jump to end of slideshow when signalled
>     -Must switch slides, pause slideshow, hide slideshow when signalled.
>     -Magic callbacks for slides, such as to launch external
>     applications. They probably shouldn't be used (otherwise this could
>     get untidy /fast/), but they would be nice to have.
>     This is still detached from Ubiquity. That option will always exist,
>     and that will probably be how this gets worked on since it's quicker
>     than running through Ubiquity. Thus, I need to know what size we
>     should expect the slides to be. Currently they are 640x480 pixels.
>     Hopefully I didn't miss too much. That's probably my most concise
>     overview yet!
>     So, what needs to be done here is a lot of collaboration, pondering
>     and suggesting:
>     Firstly, we need slides. I am terrible at them, probably becuase I
>     was not in a writing mood when I did the content, and because I am
>     really bad at computer artwork. (I'm also still using Gutsy, which
>     doesn't help).
>     Secondly, there are some technical hurdles like translations that I
>     cannot quite figure out, since I am still quite new to this
>     development environment.
>     Thirdly, I can't wrap my head around Debian packages. It probably
>     wouldn't hurt to just package open-projector right along with
>     Ubiquity's front-end (and ubiquity-slideshow), skipping the bother
>     altogether while keeping things much simpler to look at.
>     Lastly, this project needs a home. Is there a way to create a
>     sub-project of Ubiquity for ubiquity-slideshow on Launchpad?
>     Bye,
>     -Dylan McCall

More information about the Ubuntu-installer mailing list