Це команда fdpowermon, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
fdpowermon - додати піктограму рівня заряду батареї в системний трей, сумісний з freedesktop.org
СИНТАКСИС
fdpowermon
ОПИС
Ця програма дозволяє відображати піктограму «рівень заряду батареї» на будь-якому, сумісному з freedesktop.org
область стану. Його можна тематизувати за допомогою конфігураційного файлу простого тексту
(/etc/fdpowermon/theme.cfg or $XDG_CONFIG_DIR/fdpowermon/theme.cfg), або через короткий
скрипт perl (/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"
і "low.png" loading="lazy" з інтервалом у три секунди, коли заряд акумулятора становить від 0% до 2%.
Оскільки лінія починається з «розрядки», ці кроки використовуються під час роботи системи
від батареї. Подібний рядок кроків можна визначити для того, коли батарея
зарядка:
зарядка = 0: пуста-зарядка.png, 10: низька зарядка.png, 100: повна зарядка.png
це покаже "empty-charging.png" loading="lazy", коли батарея розряджена на 0% (точно),
"low-charging.png" loading="lazy" від 1% до 10% (включно) і "full-charging.png" loading="lazy" на рівні 11% і
вище.
Зауважте, що впорядкування є важливим: кроки повинні бути визначені від низького до високого.
Щоб завершити налаштування теми, ми повинні додати ще кілька елементів:
[мія тема]
кроки = 3
dir = /home/wouter/.fdpowermon/mytheme-icons
зарядка = 0: пуста-зарядка.png, 10: низька зарядка.png, 100: повна зарядка.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, щоб змінити значення за замовчуванням
тема.
PERL API
@попередження
Масив @fdpowermon::theme::warnings можна використовувати, щоб вказати, на яких рівнях fdpowermon
має видати стандартне попередження. За замовчуванням встановлено (10, 5, 1), що означає видавати попередження
на рівні 10%, 5% і 1%. Зверніть увагу, що якщо акумулятор розряджається особливо швидко
темп, рівень може знизитися ще більше, ніж до того, як було видано попередження;
також, fdpowermon негайно видасть попередження, коли живлення вимкнено з машини
і потужність нижче першого рівня.
Щоб fdpowermon завжди видавав попередження, коли живлення вимкнено, встановіть для цього значення
як (100, 10, 5, 1). Щоб зробити fdpowermon попередження на рівні 20%, 10% і 5%, встановіть це значення
(20, 10, 5).
Зауважте, що змінити текст попередження неможливо. Якщо ви цього хочете, дивіться
fdpowermon::theme::warning sub і використовуйте подію.
$use_notify
Змінну $fdpowermon::theme::use_notify можна використовувати, щоб вирішити, чи використовувати
повідомлення libnotify (якщо встановлено відмінне від нуля значення) або діалогове вікно (якщо встановлено значення котрого
оцінюється до нуля).
За замовчуванням використовується libnotify, якщо інтроспекції libnotify Glib встановлені, або
діалогове вікно, якщо ні. Тому що діалогові вікна можуть вкрасти фокус і, отже, спричинити хаос
з роботою користувача автор настійно рекомендує використовувати libnotify.
Зауважте, що якщо ви встановите для змінної значення відмінне від нуля явно, тоді перевірте, чи є змінна
Встановлені дані інтроспекції Glib ігноруватимуться. Переконайтеся, що він доступний у ньому
випадок!
new
Створіть нову тему fdpowermon. Повертає благословенне посилання; наприклад,
моя $theme = нова fdpowermon::theme;
$theme->set_stepcount($count)
Установіть кількість кроків у темі. Зауважте, що тема fdpowermon повинна мати рівну
кількість кроків як у напрямку «зарядки», так і в напрямку «розрядки».
Потрібно викликати перед викликом set_charging, set_discharging або parse_step.
$theme->set_dir($dir)
Встановіть базовий каталог, який використовується для імен файлів піктограм.
$theme->set_charging(\@elements)
Встановіть піктограми, які мають відображатися, коли акумулятор заряджається. Аргумент повинен бути
створений за допомогою методу parse_step.
$theme->set_discharging(\@elements)
Встановіть значки, які мають відображатися, коли акумулятор розряджається. Аргумент повинен бути
створений за допомогою методу parse_step.
$theme->parse_step($defs)
Розбирає даний рядок на щось, що можна передати до set_charging або
set_discharging. Визначення мають бути у форматі кроків, описаних вище, без
провідне " зарядка = " або " розрядка = ".
Хоча цей метод повертає arrayref, який можна перевірити та (ймовірно) змінити,
Теми, які хочуть бути сумісними, повинні розглядати їх як непрозору структуру даних.
$theme->set_event($step, \&зворотній дзвінок, "d")
Оновіть тему, щоб допоміжний "зворотний виклик" виконувався, коли ми розряджаємося і досягаємо
$step вперше. Щоб замість цього встановити подію під час заряджання, передайте "c" як третій
аргумент.
Зверніть увагу, що кроки є масивами, а отже, засновані на 0; елементи з найменшою кількістю
сходинки найнижчого рівня.
Коли подія запускається, підпрограмі зворотного виклику буде передано два аргументи: перший є
поточний рівень заряду акумулятора (у відсотках); другий є числом, що позначає чи є
акумулятор зараз заряджається (1) або розряджається (0). У разі розбору ACPI
команда не працює, однак другий аргумент може бути undef; ви повинні до цього підготуватися
можливість. Зауважте, що fdpowermon сам обробляє цей випадок, припускаючи, що акумулятор є
зарядка; ви можете або не бажати робити те ж саме.
$theme->register($name)
Реєструє тему під заданим іменем. Якщо тема вже існує під такою назвою, вона є
замінено.
make_default($name)
Робить тему з заданою назвою темою за замовчуванням.
get_theme($name)
Шукає тему з заданою назвою; наприклад,
моя $theme = fdpowermon::theme::get_theme("за замовчуванням");
попередження ($message)
Створіть попередження за допомогою libnotify або за допомогою діалогового вікна:
fdpowermon::theme::warning($message);
Дивіться документацію до $fdpowermon::theme::use_notify вище, щоб дізнатися більше
вибирається реалізація.
ПРИКЛАДИ
Повний приклад теми .cfg див. вище.
Щоб повністю створити ту саму тему з perl, ви повинні зробити щось на кшталт цього:
моя $theme = нова fdpowermon::theme;
$theme->set_stepcount(3);
$theme->set_dir("/home/wouter/.fdpowermon/mytheme-icons");
$theme->set_charging($theme->parse_step("0:empty-charging.png, 10:low-charging.png, 100: full-charging.png"));
$theme->set_discharging($theme->parse_step("2:missing.png:low.png, 10:low.png, 100:full.png"));
(зауважте, що як тема perl, це буде в theme.pl, а не theme.cfg; див. вище для можливого
розташування для тем perl)
Однак, якщо ви не хочете створити тему динамічно, робити це таким чином не можна
рекомендовано. Замість цього ви повинні створити тему з файлу .cfg і, можливо, змінити її
з perl. Скажімо, ви хочете додати подію, щоб призупинити систему, коли з’явиться живлення
низький; в цьому випадку ви зробили б щось на зразок цього:
призупинення {
system("sudo pm-suspend");
}
моя $theme = fdpowermon::theme::get_theme("mytheme");
$theme->set_event(0, \&suspend, 'd');
Це викликало б «призупинення» підключення, коли батарея розряджається і ми досягаємо найнижчого рівня
крок (у наведеному вище прикладі це буде, коли заряд акумулятора досягне 10%; можливо, ви захочете
зробіть це трохи пізніше). Ця підтримка "suspend" просто викликає програму "pm-suspend" з
sudo, щоб призупинити роботу системи.
Використовуйте fdpowermon онлайн за допомогою служб onworks.net