feat(network): Configurable min width for up/down speed
This commit is contained in:
parent
55a5c5d896
commit
790059243b
@ -873,6 +873,10 @@ See [the bspwm module](#module-internalbspwm) for details on `label-dimmed`.
|
|||||||
; - which would test the connection approx. every 10th sec.
|
; - which would test the connection approx. every 10th sec.
|
||||||
; Default: 0
|
; Default: 0
|
||||||
;ping_interval = 3
|
;ping_interval = 3
|
||||||
|
|
||||||
|
; Minimum output width of upload/download rate
|
||||||
|
; Default: 3
|
||||||
|
;udspeed_minwidth = 0
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
##### Extra formatting (example)
|
##### Extra formatting (example)
|
||||||
@ -897,9 +901,11 @@ See [the bspwm module](#module-internalbspwm) for details on `label-dimmed`.
|
|||||||
; %local_ip% [wireless+wired]
|
; %local_ip% [wireless+wired]
|
||||||
; %essid% [wireless]
|
; %essid% [wireless]
|
||||||
; %signal% [wireless]
|
; %signal% [wireless]
|
||||||
|
; %upspeed% [wireless+wired]
|
||||||
|
; %downspeed% [wireless+wired]
|
||||||
; %linkspeed% [wired]
|
; %linkspeed% [wired]
|
||||||
; Default: %ifname% %local_ip%
|
; Default: %ifname% %local_ip%
|
||||||
label-connected = %essid%
|
label-connected = %essid% %downspeed%
|
||||||
label-connected-foreground = #eefafafa
|
label-connected-foreground = #eefafafa
|
||||||
|
|
||||||
; Available tokens:
|
; Available tokens:
|
||||||
|
1
TODO
1
TODO
@ -1,4 +1,3 @@
|
|||||||
task: sandbox modules
|
|
||||||
task: rewrite README for 2.0
|
task: rewrite README for 2.0
|
||||||
task: rewrite i3 module
|
task: rewrite i3 module
|
||||||
task: improve test coverage
|
task: improve test coverage
|
||||||
|
@ -166,7 +166,7 @@ namespace net {
|
|||||||
return m_linkdata.ip_address;
|
return m_linkdata.ip_address;
|
||||||
}
|
}
|
||||||
|
|
||||||
string downspeed() {
|
string downspeed(int minwidth = 3) {
|
||||||
if (!query_interface())
|
if (!query_interface())
|
||||||
throw network_error("Failed to query interface");
|
throw network_error("Failed to query interface");
|
||||||
|
|
||||||
@ -185,12 +185,12 @@ namespace net {
|
|||||||
speed /= 1000;
|
speed /= 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
return string_util::from_stream(stringstream() << std::setw(3) << std::setfill(' ')
|
return string_util::from_stream(stringstream() << std::setw(minwidth) << std::setfill(' ')
|
||||||
<< std::setprecision(0) << std::fixed << speed
|
<< std::setprecision(0) << std::fixed << speed
|
||||||
<< " " << suffixes[suffix_n] << "/s");
|
<< " " << suffixes[suffix_n] << "/s");
|
||||||
}
|
}
|
||||||
|
|
||||||
string upspeed() {
|
string upspeed(int minwidth = 3) {
|
||||||
if (!query_interface())
|
if (!query_interface())
|
||||||
throw network_error("Failed to query interface");
|
throw network_error("Failed to query interface");
|
||||||
|
|
||||||
@ -209,7 +209,7 @@ namespace net {
|
|||||||
speed /= 1000;
|
speed /= 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
return string_util::from_stream(stringstream() << std::setw(3) << std::setfill(' ')
|
return string_util::from_stream(stringstream() << std::setw(minwidth) << std::setfill(' ')
|
||||||
<< std::setprecision(0) << std::fixed << speed
|
<< std::setprecision(0) << std::fixed << speed
|
||||||
<< " " << suffixes[suffix_n] << "/s");
|
<< " " << suffixes[suffix_n] << "/s");
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@ namespace modules {
|
|||||||
m_interface = m_conf.get<string>(name(), "interface");
|
m_interface = m_conf.get<string>(name(), "interface");
|
||||||
m_interval = chrono::duration<double>(m_conf.get<float>(name(), "interval", 1));
|
m_interval = chrono::duration<double>(m_conf.get<float>(name(), "interval", 1));
|
||||||
m_ping_nth_update = m_conf.get<int>(name(), "ping_interval", 0);
|
m_ping_nth_update = m_conf.get<int>(name(), "ping_interval", 0);
|
||||||
|
m_udspeed_minwidth = m_conf.get<int>(name(), "udspeed_minwidth", m_udspeed_minwidth);
|
||||||
|
|
||||||
// Add formats
|
// Add formats
|
||||||
m_formatter->add(
|
m_formatter->add(
|
||||||
@ -75,6 +76,7 @@ namespace modules {
|
|||||||
std::exit(EXIT_FAILURE);
|
std::exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void start() {
|
void start() {
|
||||||
timer_module::start();
|
timer_module::start();
|
||||||
|
|
||||||
@ -138,8 +140,11 @@ namespace modules {
|
|||||||
label->replace_token("%signal%", to_string(signal_quality) + "%");
|
label->replace_token("%signal%", to_string(signal_quality) + "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
label->replace_token("%upspeed%", network->upspeed());
|
auto upspeed = network->upspeed(m_udspeed_minwidth);
|
||||||
label->replace_token("%downspeed%", network->downspeed());
|
auto downspeed = network->downspeed(m_udspeed_minwidth);
|
||||||
|
|
||||||
|
label->replace_token("%upspeed%", upspeed);
|
||||||
|
label->replace_token("%downspeed%", downspeed);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (m_label_connected) {
|
if (m_label_connected) {
|
||||||
@ -220,14 +225,14 @@ namespace modules {
|
|||||||
label_t m_label_packetloss;
|
label_t m_label_packetloss;
|
||||||
label_t m_label_packetloss_tokenized;
|
label_t m_label_packetloss_tokenized;
|
||||||
|
|
||||||
string m_interface;
|
|
||||||
|
|
||||||
stateflag m_connected{false};
|
stateflag m_connected{false};
|
||||||
stateflag m_conseq_packetloss{false};
|
stateflag m_conseq_packetloss{false};
|
||||||
int m_signal_quality;
|
|
||||||
|
|
||||||
|
string m_interface;
|
||||||
|
int m_signal_quality;
|
||||||
int m_ping_nth_update;
|
int m_ping_nth_update;
|
||||||
int m_counter = -1; // -1 to ignore the first run
|
int m_counter = -1; // -1 to ignore the first run
|
||||||
|
int m_udspeed_minwidth = 3;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user