| 1 |
[Summary] |
|---|
| 2 |
|
|---|
| 3 |
Currently for distributions to change "branding" of the standard notification theme, they must |
|---|
| 4 |
apply a patch against theme.c to change the colors, etc. |
|---|
| 5 |
|
|---|
| 6 |
The following settings should be configurable via GConf so distributions can use the core |
|---|
| 7 |
functionality of the standard theme but tweak its looks: |
|---|
| 8 |
|
|---|
| 9 |
Urgency colors, Background color, Opacity level, Visibility of the close button, Use of |
|---|
| 10 |
gradients, Width of the notification bubble |
|---|
| 11 |
|
|---|
| 12 |
In SLED we have a patch that sets the urgency colors to values from Tango, we remove the close |
|---|
| 13 |
button (for a reason I'm not really sure of, but it was a decision from our usability and |
|---|
| 14 |
design team), and it looks like we also reduce the width of the bubble slightly. While I like |
|---|
| 15 |
the new opacity support, it should be able to be turned off (setting to 1.0). |
|---|
| 16 |
|
|---|
| 17 |
I've got a patch to address all of this. It will allow distributions to change these common |
|---|
| 18 |
settings by simply providing a different schema file. |
|---|
| 19 |
|
|---|
| 20 |
Additionally, the patch addresses a number of minor Cairo rendering and calculation bugs. |
|---|
| 21 |
|
|---|
| 22 |
Depending on the reception of this patch, some of these things may need to be broken down into |
|---|
| 23 |
smaller patches, but I figured I'd post the whole thing first. It is my opinion that all the |
|---|
| 24 |
functionality in the patch is fully applicable for upstream (as were my intentions), is generic, |
|---|
| 25 |
provides sane defaults, and should benefit anyone shipping and using notification-daemon. |
|---|
| 26 |
|
|---|
| 27 |
[Patch Overview] |
|---|
| 28 |
|
|---|
| 29 |
* The patch is available here, against notification-daemon 0.3.7 |
|---|
| 30 |
http://abock.org/~aaron/notify-standard-theme-love.diff |
|---|
| 31 |
|
|---|
| 32 |
* Allows setting of urgency and background colors, opacity, close button visibility, |
|---|
| 33 |
use of gradients, and default width via GConf (provides default settings in schema and |
|---|
| 34 |
code level fallbacks in case of error) |
|---|
| 35 |
|
|---|
| 36 |
* Enables gradients by default, but they can be turned off in GConf. The gradient rendering |
|---|
| 37 |
was updated to be more subtle so it seems much more appropriate to enable them by default. |
|---|
| 38 |
Previously gradients could only be turned on at build time. The patch turns it into a |
|---|
| 39 |
runtime option. |
|---|
| 40 |
|
|---|
| 41 |
* Provides a GTK+ style color parser. For example color strings in the form bg[normal] or |
|---|
| 42 |
mid[selected] will resolve to GTK+ style colors set by the current GTK+ theme. |
|---|
| 43 |
"mid[selected]" to GtkWindow->Style->mid[GTK_STATE_SELECTED]. This allows colors to be |
|---|
| 44 |
specified in short or long hexadecimal form, symbolic form, or GTK+ style form. The default |
|---|
| 45 |
colors for low and normal urgency are GTK+ style based, while critical is #a40000 (Tango red). |
|---|
| 46 |
The style parser may be redundant, but I could not find this functionality in GTK+. |
|---|
| 47 |
|
|---|
| 48 |
* A few Cairo rendering and calculation glitches are fixed. Cairo rectangles in a custom widget |
|---|
| 49 |
context should be drawn with no anti-aliasing. With anti-aliasing turned on, hinting can be |
|---|
| 50 |
an issue and it can be hard to get pixel-perfect precision. |
|---|
| 51 |
|
|---|
| 52 |
* The GDK version of the drawing is updated like the Cairo version to support |
|---|
| 53 |
the new color settings. |
|---|
| 54 |
|
|---|
| 55 |
* The size request on the close button is removed due to the clipping of the close icon inside |
|---|
| 56 |
the button. Because it has no relief, I don't really see a reason for calling set_size_request |
|---|
| 57 |
on the widget. |
|---|
| 58 |
|
|---|