Aceasta este comanda fdpowermon care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
fdpowermon - adăugați o pictogramă pentru nivelul bateriei într-o bară de sistem compatibilă cu freedesktop.org
REZUMAT
fdpowermon
DESCRIERE
Acest program permite afișarea unei pictograme „nivelul bateriei” în orice compatibil cu freedesktop.org
zona de stare. Poate fi tematizat fie printr-un fișier de configurare cu text simplu
(/etc/fdpowermon/theme.cfg or $XDG_CONFIG_DIR/fdpowermon/theme.cfg), sau printr-un scurt
script perl (/etc/fdpowermon/theme.pl or $XDG_CONFIG_DIR/fdpowermon/theme.pl). dacă
$XDG_CONFIG_DIR nu este setat, $HOME/.config este folosit implicit.
Primul este mai ușor, deoarece nu necesită scripting; și într-adevăr implicit
configurația este un exemplu de astfel de temă cu text simplu. Cu toate acestea, acesta din urmă permite
mai multă flexibilitate, deoarece se pot defini apeluri care ar trebui să fie rulate atunci când nivelul bateriei
atinge un anumit prag.
Temele, fie că sunt teme perl sau teme cu text simplu, sunt construite prin „pași”, care sunt
definite într-o singură linie. Într-un fișier de configurare cu text simplu, o astfel de linie arată astfel:
descărcare = 2:missing.png:low.png, 10:low.png, 100:full.png
Aceasta definește trei pași. Cel mai înalt pas arată „full.png” loading="lazy" când nivelul bateriei este
între 11% și 100% (inclusiv); al doilea pas arată "low.png" loading="lazy" atunci când nivelul bateriei
este între 3% și 10% (inclusiv); iar al treilea pas va alterna între „missing.png”
și "low.png" loading="lazy" la intervale de trei secunde, când bateria este între 0% și 2%.
Deoarece linia începe cu „descărcare”, acești pași sunt utilizați atunci când sistemul funcționează
la puterea bateriei. O linie similară de pași ar putea fi definită pentru când este bateria
încărcare:
încărcare = 0:empty-charging.png, 10:low-charging.png, 100: full-charging.png
aceasta va afișa „empty-charging.png” loading="lazy" când bateria este la 0% (exact),
„low-charging.png” loading="lazy" între 1% și 10% (inclusiv) și "full-charging.png" loading="lazy" la 11% și
de mai sus.
Rețineți că ordinea este semnificativă: pașii trebuie definiți de la mic la mare.
Pentru a finaliza configurarea temei, trebuie să mai adăugăm câteva elemente:
[tema mea]
pași = 3
dir = /home/wouter/.fdpowermon/mytheme-icons
încărcare = 0:empty-charging.png, 10:low-charging.png, 100: full-charging.png
descărcare = 2:missing.png:low.png, 10:low.png, 100:full.png
Aceasta definește o temă numită „mytheme” care are trei pași și va căuta imagini în
directorul „/home/wouter/.fdpowermon/mytheme-icons”. Nu se poate defini a
temă care are un număr diferit de pași pentru faza de încărcare decât pentru
faza de descărcare; dacă doriți asta, definiți (un) pași suplimentari pentru faza pe care o aveți
ar dori să aibă mai puțini pași, care are aceeași pictogramă ca pasul de mai sus sau de mai jos.
Rețineți că ordinea este semnificativă și aici; linia „pași” ar trebui să apară înaintea oricăror
linii de „încărcare” sau „descărcare” (nu a fost cazul în fdpowermon 1.7 sau mai jos).
Dacă sunt configurate mai multe teme, fdpowermon va folosi, în mod implicit, ultima temă
definit în configurația per utilizator sau (dacă nu există niciun fișier de configurare per utilizator)
ultima temă definită în configurația la nivel de sistem.
Fișierele de configurare ale temei Perl pot folosi fdpowermon::theme::make_default pentru a schimba valoarea implicită
temă.
PERL API
@Avertizări
Matricea @fdpowermon::theme::warnings poate fi utilizată pentru a specifica la ce niveluri fdpowermon
ar trebui să emită un avertisment standard. Valoarea implicită este (10, 5, 1), ceea ce înseamnă emiterea unui avertisment
la un nivel de 10%, 5% și 1%. Rețineți că dacă bateria se descarcă la o viteză deosebită
ritm, este posibil ca nivelul să se fi redus și mai mult decât înainte de emiterea avertismentului;
de asemenea, fdpowermon va emite un avertisment imediat când este întreruptă alimentarea mașinii
iar puterea este sub primul nivel.
Pentru ca fdpowermon să emită întotdeauna un avertisment când este întreruptă alimentarea, setați acest lucru la ceva
ca (100, 10, 5, 1). Pentru a face fdpowermon să emită avertismente la 20%, 10% și 5%, setați acest lucru la
(20. 10. 5).
Rețineți că nu este posibil să schimbați textul avertismentului. Dacă vrei asta, vezi
fdpowermon::theme::warning sub și folosiți un eveniment.
$use_notify
Variabila $fdpowermon::theme::use_notify poate fi folosită pentru a decide dacă se utilizează o
mesaj libnotify (dacă este setată la o valoare diferită de zero) sau o fereastră de dialog (dacă este setată la o valoare care
evaluează la zero).
Implicit este să utilizați libnotify dacă datele de introspecție libnotify Glib sunt instalate sau
o casetă de dialog dacă nu. Pentru că casetele de dialog pot fura focalizarea și, prin urmare, pot face ravagii
cu munca utilizatorului, utilizarea libnotify este recomandată cu tărie de către autor.
Rețineți că, dacă setați variabila la non-zero în mod explicit, atunci testați dacă este sau nu
Datele de introspecție Glib sunt instalate vor fi ignorate. Asigurați-vă că este disponibil în asta
caz!
nou
Creați o nouă temă fdpowermon. Returnează o referință binecuvântată; de exemplu,
my $theme = new fdpowermon::theme;
$theme->set_stepcount($count)
Setați numărul de pași în temă. Rețineți că o temă fdpowermon trebuie să aibă o temă egală
numărul de pași atât în direcția „încărcare”, cât și în direcția „descărcare”.
Ar trebui să fie apelat înainte de a apela set_charging, set_discharging sau parse_step.
$theme->set_dir($dir)
Setați directorul de bază utilizat pentru numele fișierelor pictograme.
$theme->set_charging(\@elements)
Setați pictogramele care ar trebui să fie afișate când bateria se încarcă. Argumentul ar trebui să fie
creat prin metoda parse_step.
$theme->set_descharging(\@elements)
Setați pictogramele care ar trebui să fie afișate când bateria se descarcă. Argumentul ar trebui să fie
creat prin metoda parse_step.
$theme->parse_step($defs)
Analizează șirul dat în ceva care poate fi transmis set_charging sau
set_descharging. Definițiile ar trebui să fie în formatul de pași, descris mai sus, fără
principalul " încărcare = " sau " descărcare = ".
În timp ce această metodă returnează un arrayref care poate fi inspectat și (probabil) modificat,
temele care doresc să fie compatibile înainte ar trebui să o trateze ca pe o structură de date opace.
$theme->set_event($pas, \&suna inapoi, 'd')
Actualizați tema, astfel încât „callback” secundar să fie executat când ne descarcăm și ajungem
$step pentru prima dată. Pentru a seta un eveniment la încărcare, treceți un „c” ca al treilea
a susținut.
Rețineți că pașii sunt tablouri și, prin urmare, sunt bazați pe 0; articolele cu cele mai mici numere sunt
treptele de cel mai jos nivel.
Când evenimentul se declanșează, rutinei de apel invers i se vor trece două argumente: primul este
nivelul actual al bateriei (în procente); al doilea este un număr care indică dacă
bateria se încarcă (1) sau se descarcă (0). În cazul în care analiza ACPI
comanda eșuează, totuși, al doilea argument poate fi undef; ar trebui să te pregătești pentru asta
posibilitate. Rețineți că fdpowermon însuși se ocupă de acest caz presupunând că bateria este
încărcare; ați putea sau nu doriți să faceți același lucru.
$theme->register($nume)
Înregistrează o temă sub un nume dat. Dacă o temă există deja sub acest nume, este
înlocuit.
make_default($nume)
Face ca o temă cu un nume dat să fie tema implicită.
get_theme($nume)
Caută o temă cu numele dat; de exemplu,
my $theme = fdpowermon::theme::get_theme("implicit");
avertisment($mesaj)
Produceți un avertisment, fie folosind libnotify, fie folosind o casetă de dialog:
fdpowermon::theme::warning($mesaj);
Consultați documentația de pe $fdpowermon::theme::use_notify de mai sus pentru detalii despre care
se alege implementarea.
EXEMPLE
Pentru un exemplu complet de temă .cfg, priviți mai sus.
Pentru a construi aceeași temă complet din perl, ați face ceva de genul acesta:
my $theme = new fdpowermon::theme;
$temă->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_descharging($theme->parse_step("2:missing.png:low.png, 10:low.png, 100:full.png"));
(rețineți, ca temă perl, aceasta ar merge în theme.pl, nu theme.cfg; vedeți mai sus pentru posibile
locații pentru teme perl)
Cu toate acestea, cu excepția cazului în care doriți să construiți tema în mod dinamic, a face acest lucru nu este
recomandat. În schimb, veți construi tema dintr-un fișier .cfg și, eventual, o modificați
din perl. Să presupunem că doriți să adăugați un eveniment pentru a suspenda sistemul atunci când este alimentat
scăzut; în acest caz, ai face ceva de genul:
sub suspendare {
system("sudo pm-suspend");
}
my $theme = fdpowermon::theme::get_theme("mytheme");
$theme->set_event(0, \&suspend, 'd');
Acest lucru ar numi „suspend” sub atunci când bateria se descarcă și ajungem la cel mai scăzut nivel
pas (în exemplul de mai sus, acesta ar fi atunci când bateria ajunge la 10%; poate doriți
face asta ceva mai tarziu). Acest sub „suspend” numește pur și simplu programul „pm-suspend”, cu
sudo, pentru a suspenda sistemul.
Utilizați fdpowermon online folosind serviciile onworks.net