38
by Evan Dandrea
* Fix reference to 11.04 in oem-config (LP: #837967). |
1 |
ubiquity-slideshow-ubuntu |
1
by Evan Dandrea
Initial release in Ubuntu. |
2 |
<http://launchpad.net/ubiquity-slideshow-ubuntu> |
3 |
||
4 |
-----
|
|
5 |
||
38
by Evan Dandrea
* Fix reference to 11.04 in oem-config (LP: #837967). |
6 |
This project is about slideshows which appear while installing Ubuntu or |
7 |
its *buntu friends. The one source package provides a number of Debian |
|
14
by Evan Dandrea, Dylan McCall, Evan Dandrea
[ Dylan McCall ] |
8 |
packages for Ubuntu, including ubiquity-slideshow-ubuntu, |
38
by Evan Dandrea
* Fix reference to 11.04 in oem-config (LP: #837967). |
9 |
ubiquity-slideshow-lubuntu and ubiquity-slideshow-kubuntu. |
14
by Evan Dandrea, Dylan McCall, Evan Dandrea
[ Dylan McCall ] |
10 |
|
11 |
This is associated with the ubiquity-slideshow group on Launchpad at |
|
12 |
<https://launchpad.net/~ubiquity-slideshow>. |
|
13 |
||
14 |
Constructive feedback on the group mailing list is always appreciated! |
|
1
by Evan Dandrea
Initial release in Ubuntu. |
15 |
|
16 |
Please also note the "COPYING", "AUTHORS" and "TODO" files in this |
|
38
by Evan Dandrea
* Fix reference to 11.04 in oem-config (LP: #837967). |
17 |
directory, which all have cool stuff in them. |
1
by Evan Dandrea
Initial release in Ubuntu. |
18 |
|
14
by Evan Dandrea, Dylan McCall, Evan Dandrea
[ Dylan McCall ] |
19 |
|
20 |
----- Testing the slideshow
|
|
21 |
||
22 |
The easiest way to test changes to the slideshow is to run |
|
23 |
./test-slideshow.sh. (Note: needs zenity, which is probably already |
|
24 |
installed). This will quickly build the slideshow with your changes and |
|
25 |
play it. Note that the test-slideshow script does not do localization. |
|
26 |
Testing localization is currently a more involved process. |
|
27 |
||
28 |
If you are using the awesome Ground Control, there will be a Test option |
|
29 |
and a (full) Build option when you open this project in Nautilus. |
|
30 |
Check out <http://launchpad.net/groundcontrol> for more information. |
|
31 |
||
32 |
||
33
by Evan Dandrea
* Merge Rollo's updated screenshots branch. |
33 |
----- Changing slideshows
|
34 |
||
35 |
Each slideshow is inside the ./slideshows directory. These are created |
|
36 |
with HTML, CSS and Javascript. They all share the link-core directory in |
|
37 |
common. This directory has some Javascript files which should be used by |
|
38 |
every slideshow. |
|
39 |
||
40 |
To actually edit a slideshow, simply open it from the slideshows directory. |
|
41 |
Each slide will be its own html file, like |
|
42 |
slideshows/ubuntu/slides/welcome.html. index.html will contain a list of |
|
43 |
these slides in the order they will appear. |
|
44 |
||
45 |
Just pull open a slide in your favourite text editor and have fun. |
|
46 |
||
47 |
Be sure to test out your creations! The quickest way is test-slideshow.sh. |
|
48 |
||
49 |
You may notice some HTML comments (<!-- comment -->) in existing slides. |
|
50 |
These will appear as notes for translators. If you write something that may |
|
51 |
be confusing for them, please leave a comment in the same fashion. |
|
52 |
||
53 |
||
54 |
----- Screenshot guidelines
|
|
55 |
||
56 |
Screenshots are taken at full size, scaled precisely 60% and cropped to |
|
57 |
match the other screenshots for a given slideshow. (Ubuntu's screenshots |
|
35
by Evan Dandrea, Dylan McCall, Evan Dandrea
[ Dylan McCall ] |
58 |
are 448x304 pixels). Please use GIMP to scale images and set
|
59 |
interpolation to “Sinc (Lanczos3)”. That algorithm seems to handle thin
|
|
60 |
lines particularly well, and it's good to stay as consistent as we can. |
|
33
by Evan Dandrea
* Merge Rollo's updated screenshots branch. |
61 |
|
35
by Evan Dandrea, Dylan McCall, Evan Dandrea
[ Dylan McCall ] |
62 |
We try to follow some conventions for screenshot content, too: |
33
by Evan Dandrea
* Merge Rollo's updated screenshots branch. |
63 |
|
64 |
* Do something. Open an example document, draw a pretty picture, chat with |
|
65 |
with someone, play music. Do whatever you might normally do. |
|
66 |
||
67 |
* Do not over-do. It can be tempting to stick every feature into view. |
|
68 |
However, that can be really overwhelming. Instead, try to focus on a |
|
69 |
single cool idea that will make somebody interested. It doesn't even have |
|
70 |
to be about features. Maybe something you can make? Pick one thing that
|
|
71 |
really captures the essence of what you want to show.
|
|
72 |
||
73 |
* Stick to defaults. We all love to customise, but make sure your fonts,
|
|
74 |
themes and applications look the same as people get with their shiny new
|
|
75 |
systems.
|
|
76 |
||
77 |
* Be people. People are awesome. You're awesome! But anonymized |
|
78 |
screenshots are jarring. If you're afraid you might frighten a mainstream |
|
79 |
audience, consider making a fun persona in a different user account.
|
|
80 |
||
81 |
* Personas live short lives. Try to avoid time as much as possible - it's |
|
82 |
awkward to show the current date, for example. A popular mistake is where |
|
83 |
a photo manager has images all taken on a single day! Where you can, try |
|
84 |
to make things look lived in. |
|
85 |
||
38
by Evan Dandrea
* Fix reference to 11.04 in oem-config (LP: #837967). |
86 |
* Do not depend on text in screenshots. Remember that the slideshow's copy |
87 |
is translated, so that text will be unreadable for a lot of users. Try to
|
|
88 |
find a way to communicate things visually and avoid emphasizing any text
|
|
89 |
on the screen.
|
|
90 |
||
91 |
* Avoid showing the mouse pointer.
|
|
92 |
||
93 |
* Editing your screenshots with an image editor is fine if you need to
|
|
94 |
remove some cut off text, for example, but do not deviate from what is
|
|
95 |
actually possible with an application.
|
|
96 |
||
33
by Evan Dandrea
* Merge Rollo's updated screenshots branch. |
97 |
So, I just made screenshots a little trickier, but I hope that helps.
|
98 |
Good luck!
|
|
99 |
||
100 |
||
101 |
----- Musing on writing style
|
|
102 |
||
103 |
* We can assume that the user has chosen to install Ubuntu willingly. That
|
|
104 |
person is now an Ubuntu user and doesn't need to be sold on it further. |
|
105 |
The sales-person voice should not exist here. If you start to hear that |
|
106 |
voice, file a bug immediately. |
|
107 |
||
108 |
* Avoid the car instruction manual voice where possible. That is, try not |
|
109 |
to tell people where specific features are, but what they can expect to |
|
110 |
find. This is because the slideshow won't follow our users everywhere, |
|
111 |
so we have to answer a different question: "What next?"
|
|
112 |
If we fixate on pressing buttons, the lessons will not stick :)
|
|
113 |
||
114 |
* Please try to keep things neat, tidy and short. In a lot of cases we can
|
|
115 |
trust our viewers to find things on their own as long as we show them
|
|
116 |
where to start. It is possible for a single slide to do quite a bit.
|
|
117 |
||
118 |
||
38
by Evan Dandrea
* Fix reference to 11.04 in oem-config (LP: #837967). |
119 |
----- Additional musings on writing
|
120 |
||
121 |
* The slideshow is a temporary resource. When it's finished, it's gone |
|
122 |
until you install Ubuntu again (which is hopefully never, because our
|
|
123 |
upgrade tool is awesome and Ubuntu will breathe +1000 life into a
|
|
124 |
computer).
|
|
125 |
||
126 |
* So, what we want to do here is point a user in some interesting
|
|
127 |
directions, but we can't go all the way. We have to avoid the case where |
|
128 |
somebody feels they need to go back to the slideshow for information. It's |
|
129 |
fine if someone will miss your slideshow (people love pretty things!), but
|
|
130 |
it's frustrating when a complex product has all its critical information on |
|
131 |
the outer packaging. |
|
132 |
||
133 |
* Avoid writing links that people will need to click, because they won't |
|
134 |
always be able to. They probably won't want to, either, because there is an |
|
135 |
entire operating system being installed. Our user's 1 GHz netbook sounds |
|
136 |
like a washing machine as it is. Instead, we want people to see a simple
|
|
137 |
link they can write down or remember for later. So, contrary to modern web
|
|
138 |
writing conventions,
|
|
139 |
<a href="http://www.ubuntu.com/community">ubuntu.com/community</a>
|
|
140 |
is a better link than…
|
|
141 |
<a href="http://www.ubuntu.com/community">the Ubuntu community website</a>
|
|
142 |
||
143 |
* This also goes back to the second point: if you have to copy and paste a
|
|
144 |
URL, try to find something less specific and more memorable.
|
|
145 |
||
146 |
||
14
by Evan Dandrea, Dylan McCall, Evan Dandrea
[ Dylan McCall ] |
147 |
----- Embedding a slideshow
|
148 |
(For example, in an installer)
|
|
149 |
||
33
by Evan Dandrea
* Merge Rollo's updated screenshots branch. |
150 |
Slideshows are simple HTML documents and can be embedded with WebKit or
|
151 |
any other browser widget that supports Javascript and CSS.
|
|
38
by Evan Dandrea
* Fix reference to 11.04 in oem-config (LP: #837967). |
152 |
./Slideshow.py contains an example implementation with GTK+ 3 and Python.
|
14
by Evan Dandrea, Dylan McCall, Evan Dandrea
[ Dylan McCall ] |
153 |
|
33
by Evan Dandrea
* Merge Rollo's updated screenshots branch. |
154 |
The slideshow can be given some information through its URL. Append "#"
|
155 |
and add attributes as key=value pairs, separated by "?". The following are
|
|
14
by Evan Dandrea, Dylan McCall, Evan Dandrea
[ Dylan McCall ] |
156 |
recognized:
|
157 |
||
158 |
?controls Enables debugging controls
|
|
159 |
?locale=LANG Sets the locale. For example, locale=en_CA.
|
|
160 |
?rtl Specifies whether to display text right-to-left.
|
|
161 |
||
162 |
The slideshow expects to be passed a locale parameter, based on the
|
|
163 |
current locale. It may fall back to English if the requested locale is not
|
|
164 |
available.
|
|
165 |
||
166 |
The rtl parameter should be added if that is the current text direction,
|
|
167 |
since the slideshow will not do this automatically based on the locale.
|
|
168 |
||
169 |
There is also an ini-style file (see ConfigParser) for each slideshow,
|
|
170 |
called slideshow.conf. This contains two important variables inside the
|
|
171 |
Slideshow section: width and height. This way, your implementation can
|
|
172 |
find the specific size for its web widget and can choose whether to
|
|
173 |
display a slideshow based on the available screen space.
|
|
174 |
||
175 |
||
176 |
----- Editing slideshow design
|
|
177 |
||
178 |
For each slideshow, the visual design can be customized. First of all,
|
|
179 |
notice that each slideshow inside the ./slideshows directory has a file
|
|
180 |
called slideshow.conf. If you change the dimensions of the slideshow, make
|
|
181 |
sure to edit this.
|
|
182 |
||
183 |
Each slideshow also (usually) has a slides/link directory with a CSS file
|
|
184 |
and some graphics that can be customized.
|
|
185 |
||
186 |
Of course, the entire thing can be completely redone, too! For more in
|
|
187 |
depth tinkering, you can edit index.html. Just make sure the general
|
|
188 |
structure of the document is the same.
|
|
189 |
||
190 |
In the <head>, we need a link to directory.js and every js file in
|
|
191 |
link-core.
|
|
192 |
||
193 |
index.html also needs a block called container, containing another block
|
|
194 |
named slideshow, which lists all the slides as
|
|
195 |
<div><a href="slide" class="load"></a></div>
|
|
196 |
||
197 |
A block with id="debug-controls", and widgets with id="prev-slide" and
|
|
198 |
id="next-slide" will be handled automatically to produce the debugging
|
|
199 |
controls that appear when #?controls is added to the url.
|
|
200 |
||
201 |
Outside of those requirements, this should be fairly flexible. Have fun!
|
|
202 |
||
203 |
||
204 |
----- Adding / editing images
|
|
205 |
||
206 |
Adding images is something that individual slideshows have a lot of
|
|
207 |
freedom with; the underlying system doesn't mind how this happens. There |
|
208 |
are a few things to note, though: |
|
209 |
||
210 |
* It is nice to have the source of each image (eg: SVG file) in the |
|
211 |
images-source directory if we are making any changes. |
|
212 |
||
213 |
* If an image comes from an external source, please attribute its author |
|
214 |
and specify its license in debian/copyright. |
|
215 |
||
216 |
* If a common effect is being applied to multiple images, consider |
|
217 |
creating an automated script and placing it under the images-source |
|
218 |
directory. For example, with the Ubuntu slideshow we have a script called |
|
219 |
generate-reflected-pngs.sh which, with a GIMP script, adds a fuzzy |
|
15
by Evan Dandrea, Dylan McCall, Evan Dandrea, Richard A. Johnson, Brian Murray
[ Dylan McCall ] |
220 |
reflection to some SVG images and exports them as PNGs. This will help |
221 |
people working on the project in the future. |
|
14
by Evan Dandrea, Dylan McCall, Evan Dandrea
[ Dylan McCall ] |
222 |
|
223 |
||
224 |
----- Localization
|
|
225 |
||
226 |
A .pot file is generated for each slideshow. One .pot file contains |
|
227 |
the strings from every slide in the slideshow. |
|
228 |
We routinely gather the translations (in the form of .po files) and add |
|
229 |
them to the ./po directory. The build script in ./generate-local-slides.sh |
|
230 |
automatically generates slides for each translation using po2html. |
|
231 |
||
232 |
The underlying structure is a bit convoluted, but the good news is this: |
|
233 |
Actually making translations for this project is very conventional. You |
|
234 |
can simply head over to the Ubuntu source package on Launchpad and submit |
|
235 |
new strings. |
|
236 |
<http://translations.launchpad.net/ubuntu/+source/ubiquity-slideshow-ubuntu> |
|
237 |
We will gather the results and merge them back into the project for |
|
238 |
releases. |
|
239 |
||
240 |
||
241 |
----- Other handy scripts
|
|
242 |
||
243 |
First of all, the slideshow can be built by running make. This uses the |
|
244 |
Makefile, which in our case is a fairly straight-forward shell script. |
|
245 |
Each slideshow gets its own rule in the Makefile which runs the |
|
246 |
appropriate other scripts for the final output to ./build. |
|
247 |
||
248 |
./Slideshow.py: Tests the slideshow (after it has been built) in a GUI |
|
249 |
similar to Ubiquity's installation progress window. |
|
250 |
Run ./Slideshow.py --help from a command line to see some additional |
|
251 |
parameters it will take. |
|
252 |
By default, opens the slideshow in ./build/ubuntu. |
|
253 |
||
254 |
./test-slideshow.sh: Slightly easier way of running Slideshow.py, for |
|
255 |
quick tests. |
|
256 |
||
15
by Evan Dandrea, Dylan McCall, Evan Dandrea, Richard A. Johnson, Brian Murray
[ Dylan McCall ] |
257 |
./images-source/*.sh: As mentioned in the "Adding / editing images" |
258 |
section, scripts are placed here that apply common effects to source
|
|
259 |
images. This makes it easier to add images to some slideshows.
|
|
260 |
||
14
by Evan Dandrea, Dylan McCall, Evan Dandrea
[ Dylan McCall ] |
261 |
./generate-pot-files.sh: When slideshow content has been edited, this can
|
262 |
be run to produce new .pot files (for translators) reflecting that
|
|
263 |
content. There is probably no need to do this yourself, though; the people
|
|
264 |
who push those .pot files to Rosetta will do it.
|
|
38
by Evan Dandrea
* Fix reference to 11.04 in oem-config (LP: #837967). |
265 |