mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-11-06 13:14:21 +01:00
Battery (Linux): print the same format of battery status as other platforms
This commit is contained in:
@@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
|
|
||||||
|
// https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-power
|
||||||
|
|
||||||
static void parseBattery(FFstrbuf* dir, const char* id, FFBatteryOptions* options, FFlist* results)
|
static void parseBattery(FFstrbuf* dir, const char* id, FFBatteryOptions* options, FFlist* results)
|
||||||
{
|
{
|
||||||
uint32_t dirLength = dir->length;
|
uint32_t dirLength = dir->length;
|
||||||
@@ -68,6 +70,26 @@ static void parseBattery(FFstrbuf* dir, const char* id, FFBatteryOptions* option
|
|||||||
ffStrbufTrimRightSpace(&result->status);
|
ffStrbufTrimRightSpace(&result->status);
|
||||||
ffStrbufSubstrBefore(dir, dirLength);
|
ffStrbufSubstrBefore(dir, dirLength);
|
||||||
|
|
||||||
|
// Unknown, Charging, Discharging, Not charging, Full
|
||||||
|
if (ffStrbufEqualS(&result->status, "Not charging") || ffStrbufEqualS(&result->status, "Full"))
|
||||||
|
ffStrbufSetStatic(&result->status, "AC Connected");
|
||||||
|
else if (ffStrbufEqualS(&result->status, "Unknown"))
|
||||||
|
ffStrbufClear(&result->status);
|
||||||
|
|
||||||
|
ffStrbufAppendS(dir, "/capacity_level");
|
||||||
|
if (ffReadFileBuffer(dir->chars, &tmpBuffer))
|
||||||
|
{
|
||||||
|
ffStrbufTrimRightSpace(&result->manufacturer);
|
||||||
|
if (ffStrbufEqualS(&tmpBuffer, "Critical"))
|
||||||
|
{
|
||||||
|
if (result->status.length)
|
||||||
|
ffStrbufAppendS(&result->status, ", Critical");
|
||||||
|
else
|
||||||
|
ffStrbufSetStatic(&result->status, "Critical");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ffStrbufSubstrBefore(dir, dirLength);
|
||||||
|
|
||||||
ffStrbufInit(&result->serial);
|
ffStrbufInit(&result->serial);
|
||||||
ffStrbufAppendS(dir, "/serial_number");
|
ffStrbufAppendS(dir, "/serial_number");
|
||||||
if (ffReadFileBuffer(dir->chars, &result->serial))
|
if (ffReadFileBuffer(dir->chars, &result->serial))
|
||||||
|
|||||||
Reference in New Issue
Block a user