mirror of
https://github.com/aristocratos/btop.git
synced 2024-06-02 10:35:14 +12:00
Show wattage next to battery remaining time when wattage could be calculated
This commit is contained in:
parent
6e575116fe
commit
ddd4bec1c3
|
@ -705,6 +705,7 @@ namespace Cpu {
|
||||||
if (Config::getB("show_battery") and has_battery) {
|
if (Config::getB("show_battery") and has_battery) {
|
||||||
static int old_percent{}; // defaults to = 0
|
static int old_percent{}; // defaults to = 0
|
||||||
static long old_seconds{}; // defaults to = 0
|
static long old_seconds{}; // defaults to = 0
|
||||||
|
static float old_watts{}; // defaults to = 0
|
||||||
static string old_status;
|
static string old_status;
|
||||||
static Draw::Meter bat_meter {10, "cpu", true};
|
static Draw::Meter bat_meter {10, "cpu", true};
|
||||||
static const unordered_flat_map<string, string> bat_symbols = {
|
static const unordered_flat_map<string, string> bat_symbols = {
|
||||||
|
@ -714,16 +715,18 @@ namespace Cpu {
|
||||||
{"unknown", "○"}
|
{"unknown", "○"}
|
||||||
};
|
};
|
||||||
|
|
||||||
const auto& [percent, seconds, status] = current_bat;
|
const auto& [percent, watts, seconds, status] = current_bat;
|
||||||
|
|
||||||
if (redraw or percent != old_percent or seconds != old_seconds or status != old_status) {
|
if (redraw or percent != old_percent or watts != old_watts or seconds != old_seconds or status != old_status) {
|
||||||
old_percent = percent;
|
old_percent = percent;
|
||||||
|
old_watts = watts;
|
||||||
old_seconds = seconds;
|
old_seconds = seconds;
|
||||||
old_status = status;
|
old_status = status;
|
||||||
const string str_time = (seconds > 0 ? sec_to_dhms(seconds, true, true) : "");
|
const string str_time = (seconds > 0 ? sec_to_dhms(seconds, true, true) : "");
|
||||||
const string str_percent = to_string(percent) + '%';
|
const string str_percent = to_string(percent) + '%';
|
||||||
|
const string str_watts = (watts != -1 ? to_string(watts) + 'W' : "");
|
||||||
const auto& bat_symbol = bat_symbols.at((bat_symbols.contains(status) ? status : "unknown"));
|
const auto& bat_symbol = bat_symbols.at((bat_symbols.contains(status) ? status : "unknown"));
|
||||||
const int current_len = (Term::width >= 100 ? 11 : 0) + str_time.size() + str_percent.size() + to_string(Config::getI("update_ms")).size();
|
const int current_len = (Term::width >= 100 ? 11 : 0) + str_time.size() + str_percent.size() + str_watts.size() + to_string(Config::getI("update_ms")).size();
|
||||||
const int current_pos = Term::width - current_len - 17;
|
const int current_pos = Term::width - current_len - 17;
|
||||||
|
|
||||||
if ((bat_pos != current_pos or bat_len != current_len) and bat_pos > 0 and not redraw)
|
if ((bat_pos != current_pos or bat_len != current_len) and bat_pos > 0 and not redraw)
|
||||||
|
@ -733,7 +736,7 @@ namespace Cpu {
|
||||||
|
|
||||||
out += Mv::to(y, bat_pos) + title_left + Theme::c("title") + Fx::b + "BAT" + bat_symbol + ' ' + str_percent
|
out += Mv::to(y, bat_pos) + title_left + Theme::c("title") + Fx::b + "BAT" + bat_symbol + ' ' + str_percent
|
||||||
+ (Term::width >= 100 ? Fx::ub + ' ' + bat_meter(percent) + Fx::b : "")
|
+ (Term::width >= 100 ? Fx::ub + ' ' + bat_meter(percent) + Fx::b : "")
|
||||||
+ (not str_time.empty() ? ' ' + Theme::c("title") + str_time : " ") + Fx::ub + title_right;
|
+ (not str_time.empty() ? ' ' + Theme::c("title") + str_time : " ") + (not str_watts.empty() ? ' ' + Theme::c("title") + Fx::b + str_watts : " ") + Fx::ub + title_right;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (bat_pos > 0) {
|
else if (bat_pos > 0) {
|
||||||
|
|
Loading…
Reference in a new issue