์˜์–ดํ”„๋ž‘์Šค์–ด์ŠคํŽ˜์ธ์–ด

Ad


์˜จ์›์Šค ํŒŒ๋น„์ฝ˜

fdpowermon - ํด๋ผ์šฐ๋“œ์—์„œ์˜ ์˜จ๋ผ์ธ

Ubuntu Online, Fedora Online, Windows ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” MAC OS ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ํ†ตํ•ด OnWorks ๋ฌด๋ฃŒ ํ˜ธ์ŠคํŒ… ์ œ๊ณต์—…์ฒด์—์„œ fdpowermon์„ ์‹คํ–‰ํ•˜์„ธ์š”.

Ubuntu Online, Fedora Online, Windows ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” MAC OS ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๋ฌด๋ฃŒ ์˜จ๋ผ์ธ ์›Œํฌ์Šคํ…Œ์ด์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OnWorks ๋ฌด๋ฃŒ ํ˜ธ์ŠคํŒ… ์ œ๊ณต์—…์ฒด์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” fdpowermon ๋ช…๋ น์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ:

์ด๋ฆ„


fdpowermon - freedesktop.org ํ˜ธํ™˜ ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด์— ๋ฐฐํ„ฐ๋ฆฌ ์ž”๋Ÿ‰ ์•„์ด์ฝ˜ ์ถ”๊ฐ€

๊ฐœ์š”


fdpowermon

๊ธฐ์ˆ 


์ด ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋ฉด freedesktop.org ํ˜ธํ™˜ ์ปดํ“จํ„ฐ์—์„œ "๋ฐฐํ„ฐ๋ฆฌ ์ž”๋Ÿ‰" ์•„์ด์ฝ˜์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ƒํƒœ ์˜์—ญ. ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํ†ตํ•ด ํ…Œ๋งˆ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
(/etc/fdpowermon/theme.cfg or $XDG_CONFIG_DIR/fdpowermon/theme.cfg) ๋˜๋Š” ์งง์€ ๋‚ด์šฉ์„ ํ†ตํ•ด
ํŽ„ ์Šคํฌ๋ฆฝํŠธ(/etc/fdpowermon/theme.pl or $XDG_CONFIG_DIR/fdpowermon/theme.pl). ๋งŒ์•ฝ
$XDG_CONFIG_DIR์ด ์„ค์ •๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ $HOME/.config๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ „์ž๋Š” ์Šคํฌ๋ฆฝํŒ…์ด ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ๊ธฐ๋ณธ๊ฐ’
๊ตฌ์„ฑ์€ ์ด๋Ÿฌํ•œ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ํ…Œ๋งˆ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ›„์ž๋Š” ๋‹ค์Œ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ฐฐํ„ฐ๋ฆฌ ์ž”๋Ÿ‰์ด ๋ถ€์กฑํ•  ๋•Œ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ฝœ๋ฐฑ์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์œ ์—ฐ์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
ํŠน์ • ์ž„๊ณ„๊ฐ’์— ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

Perl ํ…Œ๋งˆ์ด๋“  ์ผ๋ฐ˜ ํ…์ŠคํŠธ ํ…Œ๋งˆ์ด๋“  ํ…Œ๋งˆ๋Š” '๋‹จ๊ณ„'๋ฅผ ํ†ตํ•ด ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค.
ํ•œ ์ค„๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์ด๋Ÿฌํ•œ ์ค„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฐฉ์ „ = 2:missing.png:low.png, 10:low.png, 100:full.png

์ด๋Š” ์„ธ ๊ฐ€์ง€ ๋‹จ๊ณ„๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐํ„ฐ๋ฆฌ ์ž”๋Ÿ‰์ด ๋‹ค์Œ์ธ ๊ฒฝ์šฐ ๊ฐ€์žฅ ๋†’์€ ๋‹จ๊ณ„์— "full.png" loading="lazy"๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
11%~100%(ํฌํ•จ) ๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ๋Š” ๋ฐฐํ„ฐ๋ฆฌ ์ˆ˜์ค€์ด ๋‚ฎ์„ ๋•Œ "low.png" loading="lazy"๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
3%~10%(ํฌํ•จ)์ž…๋‹ˆ๋‹ค. ์„ธ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ๋Š” "missing.png"๊ฐ€ ๋ฒˆ๊ฐˆ์•„ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ 0%์—์„œ 2% ์‚ฌ์ด์ผ ๋•Œ XNUMX์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ "low.png" loading="lazy"์ž…๋‹ˆ๋‹ค.

๋ผ์ธ์€ "๋ฐฉ์ „"์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ ์‹œ์Šคํ…œ์ด ์‹คํ–‰ ์ค‘์ผ ๋•Œ ์ด๋Ÿฌํ•œ ๋‹จ๊ณ„๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋ฐฐํ„ฐ๋ฆฌ ์ „์›์—. ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋„ ์œ ์‚ฌํ•œ ๋‹จ๊ณ„๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ถฉ์ „ :

์ถฉ์ „์ค‘ = 0:empty-charge.png, 10:low-charge.png, 100: full-charge.png

๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ (์ •ํ™•ํžˆ) 0%์ผ ๋•Œ "empty-charge.png" loading="lazy"๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
1%์—์„œ 10%(ํฌํ•จ) ์‚ฌ์ด์˜ "low-charge.png" loading="lazy" ๋ฐ 11%์—์„œ "full-charge.png" loading="lazy"
์œ„.

์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์„ธ์š”. ๋‹จ๊ณ„๋Š” ๋‚ฎ์€ ๊ฒƒ๋ถ€ํ„ฐ ๋†’์€ ๊ฒƒ๊นŒ์ง€ ์ •์˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ๋งˆ ๊ตฌ์„ฑ์„ ์™„๋ฃŒํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ํ•ญ๋ชฉ์„ ๋” ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

[๋งˆ์ดํ…Œ๋งˆ]
๋‹จ๊ณ„ = 3
dir = /home/wouter/.fdpowermon/mytheme-icons
์ถฉ์ „์ค‘ = 0:empty-charge.png, 10:low-charge.png, 100: full-charge.png
๋ฐฉ์ „ = 2:missing.png:low.png, 10:low.png, 100:full.png

์ด๋Š” ์„ธ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋œ "mytheme"์ด๋ผ๋Š” ํ…Œ๋งˆ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋‹ค์Œ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
"/home/wouter/.fdpowermon/mytheme-icons" ๋””๋ ‰ํ† ๋ฆฌ. ์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค
์ถฉ์ „ ๋‹จ๊ณ„์™€ ์ถฉ์ „ ๋‹จ๊ณ„์˜ ๋‹จ๊ณ„ ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ํ…Œ๋งˆ
๋ฐฉ์ „ ๋‹จ๊ณ„; ์›ํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๋‹จ๊ณ„์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋‹จ๊ณ„๋ฅผ ์ •์˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
์œ„ ๋˜๋Š” ์•„๋ž˜ ๋‹จ๊ณ„์™€ ๋™์ผํ•œ ์•„์ด์ฝ˜์ด ์žˆ๋Š” ๋” ์ ์€ ๋‹จ๊ณ„๋ฅผ ๊ฐ–๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋„ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. "๋‹จ๊ณ„" ์ค„์€ ๋ชจ๋“  ๋‹จ๊ณ„ ์•ž์— ๋‚˜ํƒ€๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.
"์ถฉ์ „" ๋˜๋Š” "๋ฐฉ์ „" ๋ผ์ธ(fdpowermon 1.7 ์ดํ•˜์—์„œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).

๋‘˜ ์ด์ƒ์˜ ํ…Œ๋งˆ๊ฐ€ ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ fdpowermon์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งˆ์ง€๋ง‰ ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž๋ณ„ ๊ตฌ์„ฑ์— ์ •์˜๋˜์–ด ์žˆ๊ฑฐ๋‚˜ (์‚ฌ์šฉ์ž๋ณ„ ๊ตฌ์„ฑ ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ)
์‹œ์Šคํ…œ ์ „์ฒด ๊ตฌ์„ฑ์— ์ •์˜๋œ ๋งˆ์ง€๋ง‰ ํ…Œ๋งˆ์ž…๋‹ˆ๋‹ค.

Perl ํ…Œ๋งˆ ๊ตฌ์„ฑ ํŒŒ์ผ์€ fdpowermon::theme::make_default๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋ณธ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ…Œ๋งˆ.

ํŽ„ API


@๊ฒฝ๊ณ 
@fdpowermon::theme::warnings ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ fdpowermon ์ˆ˜์ค€์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ‘œ์ค€ ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ (10, 5, 1)์ด๋ฉฐ ์ด๋Š” ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
10%, 5%, 1% ์ˆ˜์ค€์œผ๋กœ์š”. ํŠนํžˆ ๋น ๋ฅธ ์†๋„๋กœ ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ๋ฐฉ์ „๋˜๋ฉด ์ฃผ์˜ํ•˜์„ธ์š”.
์†๋„์— ๋”ฐ๋ผ ๊ฒฝ๋ณด๊ฐ€ ๋ฐœ๋ น๋˜๊ธฐ ์ „๋ณด๋‹ค ์ˆ˜์ค€์ด ํ›จ์”ฌ ๋” ๋‚ฎ์•„์กŒ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ fdpowermon์€ ์‹œ์Šคํ…œ์—์„œ ์ „์›์ด ์ œ๊ฑฐ๋˜๋ฉด ์ฆ‰์‹œ ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ทธ ํž˜์€ ์ฒซ ๋ฒˆ์งธ ์ˆ˜์ค€๋ณด๋‹ค ๋‚ฎ์Šต๋‹ˆ๋‹ค.

์ „์›์ด ์ œ๊ฑฐ๋  ๋•Œ fdpowermon์ด ํ•ญ์ƒ ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ์ด๊ฒƒ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.
(100, 10, 5, 1)๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 20%, 10%, 5%์—์„œ fdpowermon ๋ฌธ์ œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด ๋‹ค์Œ์œผ๋กœ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.
(20, 10, 5).

๊ฒฝ๊ณ  ํ…์ŠคํŠธ๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์›ํ•œ๋‹ค๋ฉด ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.
fdpowermon::theme::warning sub๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

$use_notify
$fdpowermon::theme::use_notify ๋ณ€์ˆ˜๋Š” ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
libnotify ๋ฉ”์‹œ์ง€(XNUMX์ด ์•„๋‹Œ ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ) ๋˜๋Š” ๋Œ€ํ™” ์ƒ์ž ์ฐฝ(๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ)
XNUMX์œผ๋กœ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.)

๊ธฐ๋ณธ๊ฐ’์€ libnotify Glib ๋‚ด๋ถ€ ๊ฒ€์‚ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์„ค์น˜๋œ ๊ฒฝ์šฐ libnotify๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋Œ€ํ™” ์ƒ์ž. ๋Œ€ํ™” ์ƒ์ž๋Š” ์ดˆ์ ์„ ๋นผ์•—์•„ ํ˜ผ๋ž€์„ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž์˜ ์ž‘์—…์—๋Š” libnotify๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ €์ž๊ฐ€ ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅํ•˜๋Š” ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

๋ณ€์ˆ˜๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ XNUMX์ด ์•„๋‹Œ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋ฉด
์„ค์น˜๋œ Glib ๋‚ด๋ถ€ ๊ฒ€์‚ฌ ๋ฐ์ดํ„ฐ๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ํ•ญ๋ชฉ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•˜์„ธ์š”.
์‚ฌ๋ก€!


์ƒˆ๋กœ์šด fdpowermon ํ…Œ๋งˆ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ถ•๋ณต๋ฐ›์€ ์ฐธ์กฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ:

๋‚ด $theme = ์ƒˆ๋กœ์šด fdpowermon::theme;

$ํ…Œ๋งˆ->set_stepcount($count)
ํ…Œ๋งˆ์˜ ๋‹จ๊ณ„ ์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. fdpowermon ํ…Œ๋งˆ๋Š” ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
"์ถฉ์ „" ๋ฐฉํ–ฅ๊ณผ "๋ฐฉ์ „" ๋ฐฉํ–ฅ ๋ชจ๋‘์˜ ๋‹จ๊ณ„ ์ˆ˜์ž…๋‹ˆ๋‹ค.

set_charge, set_discharge ๋˜๋Š” parsing_step์„ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

$ํ…Œ๋งˆ->set_dir($dir)
์•„์ด์ฝ˜ ํŒŒ์ผ ์ด๋ฆ„์— ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

$ํ…Œ๋งˆ->์„ธํŠธ_์ถฉ์ „(\@์š”์†Œ)
๋ฐฐํ„ฐ๋ฆฌ ์ถฉ์ „ ์‹œ ํ‘œ์‹œ๋  ์•„์ด์ฝ˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์žฅ์€
parse_step ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

$theme->set_discharge(\@elements)
๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ๋ฐฉ์ „๋  ๋•Œ ํ‘œ์‹œ๋  ์•„์ด์ฝ˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์žฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผํ•ฉ๋‹ˆ๋‹ค
parse_step ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

$ํ…Œ๋งˆ->parse_step($defs)
์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ set_charge๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ฑฐ๋‚˜
set_discharge. ์ •์˜๋Š” ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋‹จ๊ณ„ ํ˜•์‹์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
"์ถฉ์ „ ์ค‘ =" ๋˜๋Š” "๋ฐฉ์ „ = "์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฉ”์†Œ๋“œ๋Š” ๊ฒ€์‚ฌํ•˜๊ณ  (์•„๋งˆ๋„) ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” arrayref๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ,
์•ž์œผ๋กœ ํ˜ธํ™˜๋˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ํ…Œ๋งˆ๋Š” ์ด๋ฅผ ๋ถˆํˆฌ๋ช…ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

$ํ…Œ๋งˆ->set_event($๋‹จ๊ณ„, \&์ฝœ๋ฐฑ, '๋””')
๋ฐฉ์ „ ์ค‘์ผ ๋•Œ ํ•˜์œ„ '์ฝœ๋ฐฑ'์ด ์‹คํ–‰๋˜๊ณ  ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ…Œ๋งˆ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”.
$step์„ ์ฒ˜์Œ์œผ๋กœ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์ถฉ์ „ ์‹œ ์ด๋ฒคํŠธ๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด 'c'๋ฅผ ์„ธ ๋ฒˆ์งธ๋กœ ์ „๋‹ฌํ•˜์„ธ์š”.
๋…ผ์˜.

๋‹จ๊ณ„๋Š” ๋ฐฐ์—ด์ด๋ฏ€๋กœ 0 ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋‚ฎ์€ ๋ฒˆํ˜ธ์˜ ํ•ญ๋ชฉ์€
๊ฐ€์žฅ ๋‚ฎ์€ ๋‹จ๊ณ„.

์ด๋ฒคํŠธ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋˜๋ฉด ์ฝœ๋ฐฑ ๋ฃจํ‹ด์— ๋‘ ๊ฐœ์˜ ์ธ์ˆ˜๊ฐ€ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š”
ํ˜„์žฌ ๋ฐฐํ„ฐ๋ฆฌ ์ˆ˜์ค€(%) ๋‘ ๋ฒˆ์งธ๋Š” ํ•ด๋‹น ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค.
๋ฐฐํ„ฐ๋ฆฌ๋Š” ํ˜„์žฌ ์ถฉ์ „ ์ค‘(1) ๋˜๋Š” ๋ฐฉ์ „ ์ค‘(0)์ž…๋‹ˆ๋‹ค. ACPI๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๊ฒฝ์šฐ
๋ช…๋ น์ด ์‹คํŒจํ•˜์ง€๋งŒ ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋Š” undef์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋Š” ์ด๊ฒƒ์„ ์ค€๋น„ํ•ด์•ผ ํ•ด
๊ฐ€๋Šฅ์„ฑ. fdpowermon ์ž์ฒด๋Š” ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์—ฌ ํ•ด๋‹น ์‚ฌ๋ก€๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์ถฉ์ „; ๋‹น์‹ ๋„ ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ธฐ๋ฅผ ์›ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์›ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

$ํ…Œ๋งˆ->๋“ฑ๋ก($name)
ํŠน์ • ์ด๋ฆ„์œผ๋กœ ํ…Œ๋งˆ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ด๋ฆ„์œผ๋กœ ํ…Œ๋งˆ๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ
๊ต์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

make_default($์ด๋ฆ„)
ํŠน์ • ์ด๋ฆ„์˜ ํ…Œ๋งˆ๋ฅผ ๊ธฐ๋ณธ ํ…Œ๋งˆ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

get_theme($name)
์ฃผ์–ด์ง„ ์ด๋ฆ„์œผ๋กœ ํ…Œ๋งˆ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ์˜ˆ:

๋‚ด $theme = fdpowermon::theme::get_theme("default");

๊ฒฝ๊ณ ($๋ฉ”์‹œ์ง€)
libnotify๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฝ๊ณ ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

fdpowermon::theme::warning($message);

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์œ„์˜ $fdpowermon::theme::use_notify ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
๊ตฌํ˜„์ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์˜ˆ


์ „์ฒด .cfg ํ…Œ๋งˆ ์˜ˆ์ œ๋ฅผ ๋ณด๋ ค๋ฉด ์œ„๋ฅผ ๋ณด์„ธ์š”.

Perl์—์„œ ์™„์ „ํžˆ ๋™์ผํ•œ ํ…Œ๋งˆ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋‚ด $theme = ์ƒˆ๋กœ์šด fdpowermon::theme;
$ํ…Œ๋งˆ->set_stepcount(3);
$theme->set_dir("/home/wouter/.fdpowermon/mytheme-icons");
$theme->set_charge($theme->parse_step("0:empty-charge.png, 10:low-charge.png, 100: full-charge.png"));
$theme->set_discharge($theme->parse_step("2:missing.png:low.png, 10:low.png, 100:full.png"));

(ํŽ„ ํ…Œ๋งˆ๋กœ์„œ ์ด๋Š” theme.cfg๊ฐ€ ์•„๋‹Œ theme.pl์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๋‚ด์šฉ์€ ์œ„๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
Perl ํ…Œ๋งˆ ์œ„์น˜)

๊ทธ๋Ÿฌ๋‚˜ ํ…Œ๋งˆ๋ฅผ ๋™์ ์œผ๋กœ ๊ตฌ์ถ•ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ์ด ๋ฐฉ๋ฒ•์€ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹  .cfg ํŒŒ์ผ์—์„œ ํ…Œ๋งˆ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŽ„์—์„œ. ์ „์›์ด ๋“ค์–ด์˜ค๋ฉด ์‹œ์Šคํ…œ์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
๋‚ฎ์€; ์ด ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์œ„ ์ •์ง€ {
system("sudo pm-์ผ์‹œ ์ค‘์ง€");
}

my $theme = fdpowermon::theme::get_theme("mytheme");
$theme->set_event(0, \&์ค‘๋‹จ, 'd');

์ด๋Š” ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ๋ฐฉ์ „๋˜๊ณ  ์ตœ์ € ์ˆ˜์ค€์— ๋„๋‹ฌํ•  ๋•Œ '์ผ์‹œ ์ค‘์ง€' ํ•˜์œ„๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
๋‹จ๊ณ„(์œ„ ์˜ˆ์—์„œ๋Š” ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ 10%์— ๋„๋‹ฌํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.
๊ทธ๊ฑด ์ข€ ๋‚˜์ค‘์— ํ•˜์„ธ์š”). ์ด '์ผ์‹œ ์ค‘์ง€' ํ•˜์œ„ ํ•ญ๋ชฉ์€ ๋‹จ์ˆœํžˆ 'pm-์ผ์‹œ ์ค‘์ง€' ํ”„๋กœ๊ทธ๋žจ์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
sudo, ์‹œ์Šคํ…œ์„ ์ผ์‹œ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

onworks.net ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜จ๋ผ์ธ์œผ๋กœ fdpowermon ์‚ฌ์šฉ


๋ฌด๋ฃŒ ์„œ๋ฒ„ ๋ฐ ์›Œํฌ์Šคํ…Œ์ด์…˜

Windows ๋ฐ Linux ์•ฑ ๋‹ค์šด๋กœ๋“œ

  • 1
    ํŽ˜์ด์ €
    ํŽ˜์ด์ €
    Phaser๋Š” ๋น ๋ฅด๊ณ  ๋ฌด๋ฃŒ์ด๋ฉฐ ์žฌ๋ฏธ์žˆ๋Š” ๊ณต๊ฐœ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.
    ์ œ๊ณตํ•˜๋Š” ์†Œ์Šค HTML5 ๊ฒŒ์ž„ ํ”„๋ ˆ์ž„์›Œํฌ
    WebGL ๋ฐ ์บ”๋ฒ„์Šค ๋ Œ๋”๋ง
    ๋ฐ์Šคํฌํ†ฑ ๋ฐ ๋ชจ๋ฐ”์ผ ์›น ๋ธŒ๋ผ์šฐ์ €. ๊ณ„๋žต
    ๊ณต๋™ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ...
    ํŽ˜์ด์ € ๋‹ค์šด๋กœ๋“œ
  • 2
    ๋ฐ”์‚ด ์—”์ง„
    ๋ฐ”์‚ด ์—”์ง„
    VASSAL์€ ์ œ์ž‘์„ ์œ„ํ•œ ๊ฒŒ์ž„ ์—”์ง„์ž…๋‹ˆ๋‹ค.
    ๊ธฐ์กด ๋ณด๋“œ์˜ ์ „์ž ๋ฒ„์ „
    ๊ทธ๋ฆฌ๊ณ  ์นด๋“œ ๊ฒŒ์ž„. ๋‹ค์Œ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    ๊ฒŒ์ž„ ์กฐ๊ฐ ๋ Œ๋”๋ง ๋ฐ ์ƒํ˜ธ ์ž‘์šฉ,
    ๊ทธ๋ฆฌ๊ณ  ...
    VASSAL ์—”์ง„ ๋‹ค์šด๋กœ๋“œ
  • 3
    OpenPDF - iText์˜ ํฌํฌ
    OpenPDF - iText์˜ ํฌํฌ
    OpenPDF๋Š” ๋‹ค์Œ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ Java ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
    ๋ฐ LGPL๋กœ PDF ํŒŒ์ผ ํŽธ์ง‘ ๋ฐ
    MPL ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด์„ ์Šค. OpenPDF๋Š”
    iText์˜ LGPL/MPL ์˜คํ”ˆ ์†Œ์Šค ํ›„๊ณ„์ž,
    ์—์ด...
    OpenPDF ๋‹ค์šด๋กœ๋“œ - iText ํฌํฌ
  • 4
    ์‚ฌ๊ฐ€ GIS
    ์‚ฌ๊ฐ€ GIS
    SAGA - ์ž๋™ํ™” ์‹œ์Šคํ…œ
    Geoscientific ๋ถ„์„ - ์ง€๋ฆฌ์ ์ž…๋‹ˆ๋‹ค
    ์ •๋ณด ์‹œ์Šคํ…œ(GIS) ์†Œํ”„ํŠธ์›จ์–ด
    ์ง€๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•œ ์—„์ฒญ๋‚œ ๊ธฐ๋Šฅ
    ์ฒ˜๋ฆฌ ๋ฐ ์•„๋‚˜...
    ์‚ฌ๊ฐ€ GIS ๋‹ค์šด๋กœ๋“œ
  • 5
    Java/JTOpen์šฉ ๋„๊ตฌ ์ƒ์ž
    Java/JTOpen์šฉ ๋„๊ตฌ ์ƒ์ž
    IBM Toolbox for Java / JTOpen์€
    ์ง€์›ํ•˜๋Š” Java ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ๋ฐ ์ธํ„ฐ๋„ท ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    OS/400์„ ์‹คํ–‰ํ•˜๋Š” ์‹œ์Šคํ…œ์— ๋ชจ๋ธ,
    i5/OS, ์˜ค...
    Java/JTOpen์šฉ ๋„๊ตฌ ์ƒ์ž ๋‹ค์šด๋กœ๋“œ
  • 6
    D3.js
    D3.js
    D3.js(๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋ฌธ์„œ์˜ ๊ฒฝ์šฐ D3)
    ํ•  ์ˆ˜ ์žˆ๋Š” JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
    ๋™์ , ๋Œ€ํ™”ํ˜• ๋ฐ์ดํ„ฐ ์ƒ์„ฑ
    ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์‹œ๊ฐํ™”. D3์™€ ํ•จ๊ป˜
    ๋‹น์‹ ...
    D3.js ๋‹ค์šด๋กœ๋“œ
  • ๋”ยป

Linux ๋ช…๋ น

Ad