J'utilise Ubuntu 14.10 et j'ai compris qu'il était possible de changer les icônes par défaut utilisées pour les notifications (essentiellement en ajoutant notification-audio-volume-high.svg
etc. à votre thème actuel (voir la capture d'écran)).
Bien que ce soit formidable, je me demandais s’il était possible de modifier l’aspect de la barre (celle qui indique la valeur de la luminosité/du volume dans la bulle de notification) afin de la rapprocher de l’icône de gauche. .
Y at-il quelque part des icônes stockées pour cette barre? Existe-t-il quelque part un fichier XML décrivant son apparence?
Merci
En examinant le contenu de son package, il semble codé en dur dans le démon. Cela s'appelle jauge . Vous devez le reconstruire.
Obtenir la source:
apt-get source notify-osd
Sudo apt-get build-dep notify-osd
cd notify-osd-0.9.35+14.04.20140213/
Modifier les choses dont vous avez besoinsrc/default.c
, tailles et limites de taille
#define DEFAULT_GAUGE_SIZE 0.625f
#define DEFAULT_GAUGE_OUTLINE_WIDTH 0.125f
[...]
property_gauge_size = g_param_spec_double (
"gauge-size",
"gauge-size",
"Size/height (in em) of gauge/indicator",
0.5f,
1.0f,
[...]
property_gauge_outline_width = g_param_spec_double (
"gauge-outline-width",
"gauge-outline-width",
"Width/thickness (in em) of gauge-outline",
0.1f,
0.2f,
src/bubble.c
, fonction qui le dessine.
// color-, alpha-, radius-, width-, height- and gradient-values were determined
// by very close obvervation of a SVG-mockup from the design-team
static void
_draw_value_indicator (cairo_t* cr,
gint value, // value to render: 0 - 100
gint start_x, // top of surrounding rect
gint start_y, // left of surrounding rect
gint width, // width of surrounding rect
gint height, // height of surrounding rect
gint outline_thickness) // outline-thickness
{
[...]
Reconstruire le paquet deb
debuild -us -uc
Sudo dpkg --force-depends -i ../notify-osd_0.9.35+14.04.20140213-0ubuntu1_AMD64.deb
Exemple:
Couleur, essayez cet exemple, rouge calme, points de dégradé: RVB (0.9f, 0.6f, 0.6f), (0.5f, 0.3f, 0.3f) et (0.4f, 0.2f, 0.2f)
Dans bubble.c
, _draw_value_indicator()
fonction ci-dessous // draw value-bar
:
gradient = cairo_pattern_create_linear (0.0f,
start_y +
outline_thickness,
0.0f,
start_y +
outline_height -
2 * outline_thickness);
cairo_pattern_add_color_stop_rgba (gradient,
0.0f,
0.9f,
0.6f,
0.6f,
1.0f);
cairo_pattern_add_color_stop_rgba (gradient,
0.75f,
0.5f,
0.3f,
0.3f,
1.0f);
cairo_pattern_add_color_stop_rgba (gradient,
1.0f,
0.4f,
0.2f,
0.2f,
1.0f);
cairo_set_source (cr, gradient);
cairo_fill (cr);
Voir cairo_pattern_add_color_stop_rgba () dans la documentation du Caire.
Commentez les instructions de dessin en utilisant /*
& */
donc pas de contour noir, bar_radius = outline_height / 2;
pour une barre bien arrondie.
// draw bar-background
/*
cairo_set_line_width (cr, outline_thickness);
cairo_set_source_rgba (cr, 0.0f, 0.0f, 0.0f, 0.5f);
draw_round_rect (cr,
[...]
cairo_fill (cr);
cairo_pattern_destroy (gradient);
*/
//bar_radius = outline_radius;
bar_radius = outline_height / 2;
bar_width = outline_width - 2 * outline_radius;
//bar_height = outline_height - outline_radius;
// draw value-bar
Taille à 1.2f
, pour bien paraître avec l'icône
#define DEFAULT_GAUGE_SIZE 1.2f
[...]
property_gauge_size = g_param_spec_double (
"gauge-size",
"gauge-size",
"Size/height (in em) of gauge/indicator",
0.5f,
5.0f,
Voici pourquoi il a été recadré, cela devrait être un bug.
Dans bubble.c
, au lieu de EM2PIXELS (defaults_get_icon_size (d), d) / 5.0f
, vous devez utiliser EM2PIXELS (defaults_get_gauge_size (d), d)
pour définir la hauteur de la zone de dessin pour la jauge.
Remplacez cette ligne:
void
_refresh_indicator (Bubble* self)
{
[...]
// create temp. scratch surface
normal = cairo_image_surface_create (
CAIRO_FORMAT_ARGB32,
EM2PIXELS (defaults_get_bubble_width (d), d) -
3 * EM2PIXELS (defaults_get_margin_size (d), d) -
EM2PIXELS (defaults_get_icon_size (d), d)
+ 2 * BUBBLE_CONTENT_BLUR_RADIUS,
EM2PIXELS (defaults_get_icon_size (d), d) / 5.0f
+ 2 * BUBBLE_CONTENT_BLUR_RADIUS);
à:
void
_refresh_indicator (Bubble* self)
{
[...]
// create temp. scratch surface
normal = cairo_image_surface_create (
CAIRO_FORMAT_ARGB32,
EM2PIXELS (defaults_get_bubble_width (d), d) -
3 * EM2PIXELS (defaults_get_margin_size (d), d) -
EM2PIXELS (defaults_get_icon_size (d), d)
+ 2 * BUBBLE_CONTENT_BLUR_RADIUS,
EM2PIXELS (defaults_get_gauge_size (d), d)
+ 2 * BUBBLE_CONTENT_BLUR_RADIUS);