grim/guifications2-theme-howto
Clone
Summary
Browse
Changes
Graph
changed the mailing list to the gf.o list
default
tip
2011-12-18, Gary Kramlich
5959d825d61a
changed the mailing list to the gf.o list
<?xml version="1.0"?>
<!DOCTYPE article PUBLIC "-//OASIS/DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<article
id=
"index"
>
<articleinfo>
<title>
Guifications
Theme
Howto
</title>
<releaseinfo>
0.1
</releaseinfo>
<date>
8
May
2005
</date>
<authorgroup>
<author>
<firstname>
Gary
</firstname>
<surname>
Kramlich
</surname>
<affiliation>
<address>
<email>
grim@reaperworld.com
</email>
</address>
</affiliation>
</author>
</authorgroup>
<revhistory>
<revision>
<revnumber>
1.0
</revnumber>
<date>
8
May
2005
</date>
<authorinitials>
gk
</authorinitials>
<revremark>
Initial
version
</revremark>
</revision>
</revhistory>
</articleinfo>
<sect1
id=
"intro"
>
<title>
Introduction
</title>
<para>
This
guide
was
written
to
help
new
theme
authors
get
a
good
start
on
understanding
the
capabilities
of
the
theme
editor.
Unfortunately
it
is
not
very
intuitive,
but
I
hope
to
make
it
a
bit
easier
to
work
with
as
time
goes
on.
</para>
<para>
This
guide
is
not
meant
to
be
comprehensive,
it's
focus
is
on
the
use
of
the
Guifications
theme
editor
and
nothing
more.
</para>
</sect1>
<sect1
id=
"theme-editor"
>
<title>
The
Theme
Editor
</title>
<figure>
<title>
The
Theme
Editor
</title>
<graphic
fileref=
"images/theme_editor.png"
/>
</figure>
<para>
This
is
the
theme
editor,
the
user
interface
is
pretty
clunky,
but
it
is
slowly
getting
better
over
time.
</para>
<para>
Across
the
top,
there
is
a
menu
bar
where
you
can
add
and
remove
items
and
notifications.
On
the
left
is
the
actual
tree
that
makes
up
the
theme.
It
starts
with
the
theme
itself,
which
contains
information,
options
and
notifications,
while
notification
contain
items.
If
that
didn't
sit
well
with
you,
don't
worry
it
will
all
become
clear
throughout
the
rest
of
this
howto.
On
the
right
you
will
be
doing
the
majority
of
your
editing.
This
area
is
used
to
update
probably
more
settings
than
you'd
expect.
</para>
<table>
<title>
Toolbar
</title>
<tgroup
cols=
"2"
>
<tbody
valign=
"top"
>
<row>
<entry>
New
Theme
</entry>
<entry>
Creates
a
new
theme.
</entry>
</row>
<row>
<entry>
Save
Theme
</entry>
<entry>
Saves
the
current
theme.
</entry>
</row>
<row>
<entry>
New
Notification
</entry>
<entry>
Creates
a
new
notification.
</entry>
</row>
<row>
<entry>
New
Item
</entry>
<entry>
Creates
a
new
item.
</entry>
</row>
<row>
<entry>
Duplicate
</entry>
<entry>
Creates
a
duplicate
of
a
notification
or
an
item.
</entry>
</row>
<row>
<entry>
Delete
</entry>
<entry>
Deletes
a
notification
or
an
item.
</entry>
</row>
<row>
<entry>
Move
Up
</entry>
<entry>
Moves
a
notification
or
an
item
up
in
the
list.
While
the
order
of
notifications
has
no
impact
on
how
Guifications
treats
the
theme,
it
can
be
handy
to
move
them
around.
Items
however,
are
drawn
in
the
order
that
they
are
in
the
theme.
So,
if
you
wanted
to
create
a
layer
effect,
or
add
drop
shadows,
you
can
do
that
by
making
sure
your
shadow
is
above
the
actual
item
that
it
is
a
shadow
for.
</entry>
</row>
<row>
<entry>
Move
Down
</entry>
<entry>
Moves
a
notification
or
an
item
down
in
the
list.
</entry>
</row>
<row>
<entry>
Help
</entry>
<entry>
Brings
you
to
this
tutorial.
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect1>
<sect1
id=
"page-theme-info"
>
<title>
Editing
Theme
Information
</title>
<figure>
<title>
Theme
Information
Page
</title>
<graphic
fileref=
"images/theme_info.png"
/>
</figure>
<para>
This
is
the
theme
information
page.
Here
you
can
set
some
basic
information
about
your
theme.
These
fields
should
be
self-explanatory,
so
they
will
not
be
discused
further.
</para>
<para>
NOTE:
Theme
names
MUST
be
unique
to
not
only
avoid
confusion
in
the
theme
list,
but
they
are
used
to
create
the
directory
for
new
themes.
</para>
</sect1>
<sect1
id=
"page-theme-options"
>
<title>
Editing
Theme
Options
</title>
<figure>
<title>
Theme
Options
Page
</title>
<graphic
fileref=
"images/theme_ops.png"
/>
</figure>
<para>
The
time
and
date
formats
follow
the
strftime
format.
A
simple
google
search
for
'strftime'
or
a
'man
3
strftime'
on
Unix
should
be
able
to
help
you
there.
</para>
<para>
Warning
is
the
text
to
display
if
a
text
item
contains
a
%w
and
the
protocol
for
the
notification
does
not
support
warning
levels.
This
would
be
any
protocols
besides
AIM
or
ICQ.
</para>
<para>
Ellipsis
is
the
text
to
use
when
clipping
text.
If
your
clipping
format
for
text
items
is
set
to
truncate
this
option
has
no
effect.
</para>
</sect1>
<sect1
id=
"window-notification-new"
>
<title>
Creating
Notifications
</title>
<figure>
<title>
New
Notification
Window
</title>
<graphic
fileref=
"images/notification_new.png"
/>
</figure>
<para>
When
you
click
on
the
new
notification
button
in
the
toolbar,
you
will
be
presented
with
this
window.
It
contains
a
dropdown
of
all
of
the
currently
available
notifications,
as
well
as
a
master
notification.
</para>
<para>
A
master
notification
is
used
as
a
template
for
any
notifications
created
after
it.
When
you
create
a
new
theme,
a
master
notification
will
automatically
be
created
for
you.
If
you
know
your
theme
is
going
to
look
basically
the
same
for
all
notifications,
you
can
create
a
master
notification
that
already
has
a
background
image
set,
contains
some
text,
and
any
other
items
you
want.
</para>
<para>
You
can
add
as
many
notifications
of
as
many
types
as
you
want.
When
an
event
happens,
Guifications
looks
at
all
the
loaded
themes,
checks
how
notifications
of
that
type
that
they
have,
and
chooses
one
at
random
to
display.
This
gives
another
level
to
customization,
since
you
do
not
have
to
create
another
theme
if
you
want
to
make
the
same
notifications
have
subtle
differences.
</para>
</sect1>
<sect1
id=
"page-notification"
>
<title>
Editing
Notifications
</title>
<figure>
<title>
The
Notification
Page
</title>
<graphic
fileref=
"images/notification_page.png"
/>
</figure>
<para>
In
the
notification
page,
you
will
create
the
basic
look
of
your
notification.
You
can
have
it
fit
in
with
your
gtk
theme
by
checking
the
'Use
Gtk
theme
background'
or
you
can
choose
to
use
an
image.
Guifications
supports
1-bit
alpha
which
you
can
use
to
create
non-rectangular
notifications.
</para>
<para>
If
you
choose
to
use
the
Gtk
theme's
background,
you
can
decide
how
big
you
want
the
notification.
If
you
decide
that
you
want
to
use
an
image
as
the
background,
the
notification
size
will
be
set
to
the
size
of
the
image.
If
the
image
is
non-rectangular,
it
will
still
use
the
resolution
of
the
image.
</para>
<para>
The
alias
entry
has
been
added
for
those
of
you
that
would
like
to
support
multiple
notifications
of
the
same
type
in
a
theme.
By
using
aliases,
you
can
tell
at
a
glance
which
notification
is
which.
Hopefully
this
will
prove
to
be
useful
for
someone
besides
me.
:)
</para>
</sect1>
<sect1
id=
"window-item-new"
>
<title>
Creating
Items
</title>
<figure>
<title>
New
Item
Window
</title>
<graphic
fileref=
"images/item_new.png"
/>
</figure>
<para>
Similar
to
the
new
notification
window,
the
new
item
window
presents
you
with
a
list
of
all
the
currently
available
items.
Notifications
can
contain
as
many
items
as
many
times
as
they
want.
You
can
use
this,
with
the
order
they
are
in
to
have
text
overlay
icons
and
images,
or
to
add
drop
shadows,
or
anything
else
you
can
think
of.
</para>
</sect1>
<sect1
id=
"page-item-icon"
>
<title>
Editing
Icons
</title>
<figure>
<title>
Icon
Page
</title>
<graphic
fileref=
"images/item_icon_page.png"
/>
</figure>
<para>
All
items
have
three
common
attributes.
These
are
position,
horizontal
offset,
and
vertical
offset.
Guifications
does
not
place
items
like
most
people
are
used
to.
You
select
a
general
position
of
where
the
item
will
be
placed
(Top
Left,
Center,
Bottom
Right,
etc)
and
then
place
it
exactly
where
you
want
it
by
using
the
horizontal
and
vertical
offsets.
As
you
can
see
in
the
screen
shot,
the
offsets
can
also
be
used
as
percentages.
All
items
use
the
notification's
height
and
width
to
calculate
the
values
of
the
percentages.
</para>
<para>
Icons
have
two
unique
attributes.
These
are
type
and
size.
The
type
is
what
type
of
icon
to
show,
which
includes
protocol,
status,
and
buddy
icon.
Size
is
the
size
to
scale
the
icon
too.
You
can
choose
from
some
previously
defined
values
between
16x16
all
the
way
to
144x144.
</para>
</sect1>
<sect1
id=
"page-item-image"
>
<title>
Editing
Images
</title>
<figure>
<title>
Image
Page
</title>
<graphic
fileref=
"images/item_image_page.png"
/>
</figure>
<para>
Images
have
one
unique
attribute
which
is
the
image
to
display.
Guifications
supports
any
image
format
that
Gtk
supports,
which
gives
you
quite
a
range
to
choose
from.
However,
if
you
are
planning
on
distrubuting
your
theme,
then
you'll
probably
want
to
stick
to
the
formats
that
Gtk
supports
internally.
</para>
</sect1>
<sect1
id=
"page-item-text"
>
<title>
Editing
Text
</title>
<figure>
<title>
Text
Page
</title>
<graphic
fileref=
"images/item_text_page.png"
/>
</figure>
<para>
Text
has
five
atrributes
that
you
can
modify.
The
first
is
the
format
string
to
use
(See
the
table
below
for
specifics).
Width
allows
you
to
set
a
maximum
width
for
the
text.
If
the
width
is
zero
or
greater
than
the
width
of
the
notification
it
will
automatically
be
set
to
the
width
of
the
notification
minus
the
position
of
the
text.
Clipping
allows
you
to
decide
what
happens
when
all
of
the
text
will
not
fit.
You
have
four
options
for
when
this
occurs.
You
can
either
truncate
the
text,
or
put
an
ellipsis
at
the
beginning,
middle,
or
end.
The
text
that
is
used
for
the
ellipsis
can
be
modified
within
the
theme
options
page.
Lastly,
there
is
font
and
color,
which
modify
the
text's
font
and
color
respectively.
</para>
<table>
<title>
Format
Tokens
</title>
<tgroup
cols=
"2"
>
<tbody
valign=
"top"
>
<row>
<entry>
%
</entry>
<entry>
A
literal
'%'
</entry>
</row>
<row>
<entry>
a
</entry>
<entry>
Account
name
</entry>
</row>
<row>
<entry>
C
</entry>
<entry>
The
conversation
title
</entry>
</row>
<row>
<entry>
c
</entry>
<entry>
The
conversation
name
</entry>
</row>
<row>
<entry>
D
</entry>
<entry>
Date
formatted
using
the
theme
option
</entry>
</row>
<row>
<entry>
d
</entry>
<entry>
The
day
of
the
month
</entry>
</row>
<row>
<entry>
H
</entry>
<entry>
Hour
(0-23)
</entry>
</row>
<row>
<entry>
h
</entry>
<entry>
Hour
(0-12)
</entry>
</row>
<row>
<entry>
i
</entry>
<entry>
Your
public
IP
address
</entry>
</row>
<row>
<entry>
M
</entry>
<entry>
Month
(1-12)
</entry>
</row>
<row>
<entry>
m
</entry>
<entry>
Minute
(0-59)
</entry>
</row>
<row>
<entry>
N
</entry>
<entry>
Computer
name
</entry>
</row>
<row>
<entry>
n
</entry>
<entry>
Buddy's
name
(following
preferences
for
aliases)
</entry>
</row>
<row>
<entry>
p
</entry>
<entry>
Protocol
ID
</entry>
</row>
<row>
<entry>
r
</entry>
<entry>
Received
message
</entry>
</row>
<row>
<entry>
s
</entry>
<entry>
Seconds
(0-59)
</entry>
</row>
<row>
<entry>
T
</entry>
<entry>
Time
formatted
using
the
theme
option
</entry>
</row>
<row>
<entry>
t
</entry>
<entry>
Seconds
since
the
epoc
</entry>
</row>
<row>
<entry>
u
</entry>
<entry>
Computer
username
</entry>
</row>
<row>
<entry>
W
</entry>
<entry>
The
name
of
who
warned
you
(Does
this
even
work?)
</entry>
</row>
<row>
<entry>
w
</entry>
<entry>
Your
warning
level
or
the
theme
option
</entry>
</row>
<row>
<entry>
X
</entry>
<entry>
Extra
info
(needs
clarification)
</entry>
</row>
<row>
<entry>
Y
</entry>
<entry>
Year
with
century
</entry>
</row>
<row>
<entry>
y
</entry>
<entry>
Year
without
century
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect1>
<sect1
id=
"window-delete"
>
<title>
Deleting
Items
and
Notifications
</title>
<figure>
<title>
Delete
Window
</title>
<graphic
fileref=
"images/item_delete.png"
/>
</figure>
<para>
When
you
click
the
delete
button
in
the
toolbar
when
an
item
or
a
notification
is
selected
you
will
be
presented
with
this
dialog.
This
is
your
last
chance
to
keep
your
item
or
notification,
since
currently
there
is
no
undo
functionality.
If
you
delete
an
item
or
a
notification,
there
is
no
way
to
restore
it,
except
by
manually
recreating
it.
</para>
</sect1>
<sect1
id=
"saving"
>
<title>
Saving
</title>
<para>
Once
you
have
populated
your
theme
with
a
fair
ammount
of
notifications
and
items,
hit
the
save
button
in
the
toolbar.
Guifications
will
notice
when
this
happens
and
update
the
theme
list
in
preferences
if
you
have
it
open.
From
the
themes
list
you
can
load
your
theme,
and
see
it
in
action!
</para>
</sect1>
<sect1
id=
"Summary"
>
<title>
Summary
</title>
<para>
Guifications
has
always
been
about
user
customization,
and
with
the
introduction
of
themes
in
2.x
it
has
been
taken
to
a
new
level.
I
love
seeing
people
submitting
new
themes
as
well.
You
can
always
submit
your
themes
to
the
<ulink
url=
"http://sf.net/tracker/?atid=676821&group_id=92888&func=browse"
>
theme
tracker
</ulink>
on
<ulink
url=
"http://sf.net"
>
sourceforge.net
</ulink>
.
</para>
<para>
If
you
have
any
questions
or
comments,
please
don't
be
afraid
to
ask.
You
can
always
find
us
in
#guifications
on
irc.freenode.net,
or
by
sending
an
email
to
<ulink
url=
"mailto:guifications-devel@lists.guifications.org"
>
guifications-devel@lists.guifications.org
</ulink>
.
</para>
<para>
I
hope
this
tutorial
has
been
helpful,
and
as
always,
thank
you
for
using
Guifications.
</para>
</sect1>
</article>