feat(net): %netspeed% token to show combined up+download speed (#2590)

Closes #1083 

* Add netspeed parameter (#1083)

* Update net.cpp

* Update net.hpp

* Update network.cpp

* Update CHANGELOG.md
This commit is contained in:
Prateek Sunal 2022-02-07 01:42:38 +05:30 committed by GitHub
parent a33e8de922
commit ab915fb724
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 0 deletions

View File

@ -154,6 +154,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- For module actions, you can now also specify the module name, - For module actions, you can now also specify the module name,
action name, and optional data as separate arguments. action name, and optional data as separate arguments.
- Added man page - Added man page
- `internal/network`: New token `%netspeed%` that provides the total speed of the internet (up + down speed) ([#2590](https://github.com/polybar/polybar/issues/2590))
### Changed ### Changed
- Polybar now also reads `config.ini` when searching for config files. - Polybar now also reads `config.ini` when searching for config files.

View File

@ -90,6 +90,7 @@ namespace net {
string mac() const; string mac() const;
string downspeed(int minwidth = 3, const string& unit = "B/s") const; string downspeed(int minwidth = 3, const string& unit = "B/s") const;
string upspeed(int minwidth = 3, const string& unit = "B/s") const; string upspeed(int minwidth = 3, const string& unit = "B/s") const;
string netspeed(int minwidth = 3, const string& unit = "B/s") const;
void set_unknown_up(bool unknown = true); void set_unknown_up(bool unknown = true);
protected: protected:

View File

@ -274,6 +274,15 @@ namespace net {
float bytes_diff = m_status.current.transmitted - m_status.previous.transmitted; float bytes_diff = m_status.current.transmitted - m_status.previous.transmitted;
return format_speedrate(bytes_diff, minwidth, unit); return format_speedrate(bytes_diff, minwidth, unit);
} }
/**
* Get total net speed rate
*/
string network::netspeed(int minwidth, const string& unit) const {
float bytes_diff = m_status.current.received - m_status.previous.received
+ m_status.current.transmitted - m_status.previous.transmitted;
return format_speedrate(bytes_diff, minwidth, unit);
}
/** /**
* Set if unknown counts as up * Set if unknown counts as up

View File

@ -148,6 +148,7 @@ namespace modules {
auto upspeed = network->upspeed(m_udspeed_minwidth, m_udspeed_unit); auto upspeed = network->upspeed(m_udspeed_minwidth, m_udspeed_unit);
auto downspeed = network->downspeed(m_udspeed_minwidth, m_udspeed_unit); auto downspeed = network->downspeed(m_udspeed_minwidth, m_udspeed_unit);
auto netspeed = network->netspeed(m_udspeed_minwidth, m_udspeed_unit);
// Update label contents // Update label contents
const auto replace_tokens = [&](label_t& label) { const auto replace_tokens = [&](label_t& label) {
@ -158,6 +159,7 @@ namespace modules {
label->replace_token("%local_ip6%", network->ip6()); label->replace_token("%local_ip6%", network->ip6());
label->replace_token("%upspeed%", upspeed); label->replace_token("%upspeed%", upspeed);
label->replace_token("%downspeed%", downspeed); label->replace_token("%downspeed%", downspeed);
label->replace_token("%netspeed%", netspeed);
if (m_wired) { if (m_wired) {
label->replace_token("%linkspeed%", m_wired->linkspeed()); label->replace_token("%linkspeed%", m_wired->linkspeed());