Dunst: ์•Œ๋ฆผ ๋ฐฐ๊ฒฝ์œผ๋กœ ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„

์— ๋งŒ๋“  2017๋…„ 04์›” 11์ผ  ยท  7์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dunst-project/dunst

์ง„ํ–‰ ์ƒํ™ฉ์ด ๋ฉ‹์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋ฐฐ๊ฒฝ์„ ์ฑ„์šฐ๋Š” ๋ฐ %p ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ(์ฆ‰, ์ง„ํ–‰ ๊ฐ’์ด 25%์ด๋ฉด ์•Œ๋ฆผ์˜ ์™ผ์ชฝ ๋ถ„๊ธฐ๊ฐ€ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„๋ณด๋‹ค ๋ฐ๊ฒŒ ์ฑ„์›Œ์งˆ ์ˆ˜ ์žˆ์Œ)

Feature graphics

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@mid-kid ๊ธ€์Ž„์š”, '๋ฉ‹์ง„ ๊ฒƒ'์— ๋Œ€ํ•œ ์ž์‹ ์˜ ์ •์˜๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ชจ๋‘๋Š” ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์ทจํ–ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์ „์ฒด ๋„ˆ๋น„๋ฅผ ๋ฐฐ๊ฒฝ์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์„ ์‹ซ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ œ์ถœํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„ ์ƒ‰์ƒ์„ ๋ฐ”๊ฟ€ ์ƒ๊ฐ์€ ํ•œ ๋ฒˆ๋„ ํ•ด๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค, ์ œ๊ฐ€ ๊ฐ„์ ˆํžˆ ์ฐพ๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ž์‹ ์˜ ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„์— ๋Œ€ํ•œ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜๋ฏธ ์žˆ๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  7 ๋Œ“๊ธ€

์ด๊ฒƒ์„ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ์ด์ „์— C๋กœ ์•„๋ฌด ๊ฒƒ๋„ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์ƒ‰์ƒ ๋ฐ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๊ตฌ์„ฑ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค(์ง€๊ธˆ์€ ์•ฝ๊ฐ„ ๋” ๋ฐ์€ ๋ฐฐ๊ฒฝ์ƒ‰์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค). ๋ˆ„๊ตฌ๋“ ์ง€ ์—‰ํ„ฐ๋ฆฌ ํฌํฌ ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•  ์ •๋„๋กœ ํ•˜๋‚˜๋ฅผ ์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ด, ๋‚˜๋Š” ๋‹น์‹ ์˜ ํฌํฌ๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.shrink ์˜ต์…˜์„ ์กด์ค‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณผ๋ฅจ์ด 100%์ด๋ฉด ๋ง‰๋Œ€๋Š” ์‹ค์ œ๋กœ 50%์ž…๋‹ˆ๋‹ค. shrink ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค. ํ›„์† ๋Œ“๊ธ€์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋˜ํ•œ ์•Œ๋ฆผ์˜ ์ „์ฒด ๋†’์ด๋ฅผ ์ง„ํ–‰ ํ‘œ์‹œ์ค„๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋น ๋ฅธ ํ•ดํ‚น์œผ๋กœ bg_height/8 ๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ํ›จ์”ฌ ์ข‹์•„ ๋ณด์ž…๋‹ˆ๋‹ค. (์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„ ๋†’์ด๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ›จ์”ฌ ๋” ์ •๊ตํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.)

์˜ต์…˜ ์ถ”๊ฐ€๋Š” ์—ฌ๋Ÿฌ ํŒŒ์ผ์—์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜์ง€๋งŒ ๊ณง๋ฐ”๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. IMHO ๊ทธ๋ƒฅ ๊ตฌ์„ฑํ•˜์ง€ ์•Š๊ณ  ์ƒˆ ๊ธฐ๋Šฅ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์ž‘์—… ์ˆœ์„œ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.

bg_width / 100 * (cl->n->progress - 1) ๋ณด์„ธ์š”.

shrink ๋ฅผ ๋น„ํ™œ์„ฑํ™” ํ•˜๋ฉด ์•Œ๋ฆผ ๋„ˆ๋น„๊ฐ€ 300ํ”ฝ์…€์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 300/100 == 3 ์™€ ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„์„ ๊ณฑํ•˜๋ฉด ๋„ˆ๋น„๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์•„.

shrink ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„์ด ์žˆ๋Š” ์•Œ๋ฆผ์ด 185px ๋„ˆ๋น„๋กœ ์ถ•์†Œ๋ฉ๋‹ˆ๋‹ค. 185/100 == 1 ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ๋Š” 1.85 ์ด์ง€๋งŒ ์‰ผํ‘œ ๋’ค์— ์žˆ๋Š” ๋น„ํŠธ๊ฐ€ ์ž˜๋ฆฝ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋Š” ๊ฑฐ์˜ ์ ˆ๋ฐ˜์ด๋ฉฐ 50%๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด(๋จผ์ € ๊ณฑํ•œ ๋‹ค์Œ ๋‚˜๋ˆ„๊ธฐ) ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

@bebehei ๋„์™€์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‚ด ํฌํฌ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. PR์„ ์ œ์ถœํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์ตœ์†Œํ•œ ๋จผ์ € ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„์„ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ตฌ์„ฑ ์˜ต์…˜์ด ์žˆ์—ˆ์œผ๋ฉด ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค... ๋‚˜์ค‘์— ์‚ดํŽด๋ณด๊ณ  ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ–.

์ด ๋ฌธ์ œ์˜ ์ œ๋ชฉ์€ ํŒจ์น˜๊ฐ€ ์ˆ˜ํ–‰ํ•œ ์ž‘์—…์— ๋Œ€ํ•ด ์ž˜๋ชป๋œ ๊ธฐ๋Œ€๋ฅผ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋” ๋ฉ‹์ง€๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŒจ์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

diff --git a/src/x11/x.c b/src/x11/x.c
index 9f7ac20..3430892 100644
--- a/src/x11/x.c
+++ b/src/x11/x.c
@@ -565,14 +565,22 @@ static dimension_t x_render_layout(cairo_t *c, colored_layout *cl, colored_layou
         double bg_half_height = settings.notification_height/2.0;
         int pango_offset = (int) floor(h/2.0);

+        int progress_width = cl->n->progress > 0 ? bg_width * (cl->n->progress - 1) / 100 : bg_width;
+
         if (first) bg_height += settings.frame_width;
         if (last) bg_height += settings.frame_width;
         else bg_height += settings.separator_height;

         cairo_set_source_rgb(c, cl->frame.r, cl->frame.g, cl->frame.b);
-        cairo_rectangle(c, bg_x, bg_y, bg_width, bg_height);
+        cairo_rectangle(c, bg_x, bg_y, progress_width, bg_height);
         cairo_fill(c);

+        if (progress_width != bg_width) {
+                cairo_set_source_rgb(c, cl->frame.r - 0.2, cl->frame.g - 0.2, cl->frame.b - 0.2);
+                cairo_rectangle(c, bg_x + progress_width, bg_y, bg_width - progress_width, bg_height);
+                cairo_fill(c);
+        }
+
         /* adding frame */
         bg_x += settings.frame_width;
         if (first) {
@@ -582,13 +590,26 @@ static dimension_t x_render_layout(cairo_t *c, colored_layout *cl, colored_layou
                 if (!last) bg_height -= settings.separator_height;
         }
         bg_width -= 2 * settings.frame_width;
+        if (progress_width < settings.frame_width) {
+                progress_width = 0;
+        } else if (progress_width - settings.frame_width > bg_width) {
+                progress_width = bg_width;
+        } else {
+                progress_width -= settings.frame_width;
+        }
         if (last)
                 bg_height -= settings.frame_width;

         cairo_set_source_rgb(c, cl->bg.r, cl->bg.g, cl->bg.b);
-        cairo_rectangle(c, bg_x, bg_y, bg_width, bg_height);
+        cairo_rectangle(c, bg_x, bg_y, progress_width, bg_height);
         cairo_fill(c);

+        if (progress_width != bg_width) {
+                cairo_set_source_rgb(c, cl->bg.r - 0.2, cl->bg.g - 0.2, cl->bg.b - 0.2);
+                cairo_rectangle(c, bg_x + progress_width, bg_y, bg_width - progress_width, bg_height);
+                cairo_fill(c);
+        }
+
         bool use_padding = settings.notification_height <= (2 * settings.padding) + h;
         if (use_padding)
             dim.y += settings.padding;

@mid-kid ๊ธ€์Ž„์š”, '๋ฉ‹์ง„ ๊ฒƒ'์— ๋Œ€ํ•œ ์ž์‹ ์˜ ์ •์˜๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ชจ๋‘๋Š” ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์ทจํ–ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์ „์ฒด ๋„ˆ๋น„๋ฅผ ๋ฐฐ๊ฒฝ์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์„ ์‹ซ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ œ์ถœํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„ ์ƒ‰์ƒ์„ ๋ฐ”๊ฟ€ ์ƒ๊ฐ์€ ํ•œ ๋ฒˆ๋„ ํ•ด๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค, ์ œ๊ฐ€ ๊ฐ„์ ˆํžˆ ์ฐพ๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ž์‹ ์˜ ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„์— ๋Œ€ํ•œ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜๋ฏธ ์žˆ๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

775๊ฐ€ ๋ณ‘ํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

adihrustic picture adihrustic  ยท  3์ฝ”๋ฉ˜ํŠธ

chronus7 picture chronus7  ยท  5์ฝ”๋ฉ˜ํŠธ

knopwob picture knopwob  ยท  5์ฝ”๋ฉ˜ํŠธ

bebehei picture bebehei  ยท  4์ฝ”๋ฉ˜ํŠธ

phuhl picture phuhl  ยท  3์ฝ”๋ฉ˜ํŠธ