summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Buehler <account@buehler.rocks>2018-06-28 22:16:37 +0200
committerFelix Buehler <account@buehler.rocks>2018-06-29 22:56:09 +0200
commit4ea804b751f9394b7b10b520212169a491c698a6 (patch)
tree43d6d5908d5544ca1fdfbe96b078eaabe58a383d
parent4d3344ab9cd68bad5faf4ed3dad185dfcacb1e3d (diff)
add format_quality option in wireless
-rw-r--r--i3status.c3
-rw-r--r--include/i3status.h2
-rw-r--r--man/i3status.man5
-rw-r--r--src/print_wireless_info.c4
4 files changed, 9 insertions, 5 deletions
diff --git a/i3status.c b/i3status.c
index 316159c..76b6349 100644
--- a/i3status.c
+++ b/i3status.c
@@ -336,6 +336,7 @@ int main(int argc, char *argv[]) {
cfg_opt_t wireless_opts[] = {
CFG_STR("format_up", "W: (%quality at %essid, %bitrate) %ip", CFGF_NONE),
CFG_STR("format_down", "W: down", CFGF_NONE),
+ CFG_STR("format_quality", "%3d%s", CFGF_NONE),
CFG_CUSTOM_ALIGN_OPT,
CFG_CUSTOM_COLOR_OPTS,
CFG_CUSTOM_MIN_WIDTH_OPT,
@@ -693,7 +694,7 @@ int main(int argc, char *argv[]) {
interface = first_eth_interface(NET_TYPE_WIRELESS);
if (interface == NULL)
interface = title;
- print_wireless_info(json_gen, buffer, interface, cfg_getstr(sec, "format_up"), cfg_getstr(sec, "format_down"));
+ print_wireless_info(json_gen, buffer, interface, cfg_getstr(sec, "format_up"), cfg_getstr(sec, "format_down"), cfg_getstr(sec, "format_quality"));
SEC_CLOSE_MAP;
}
diff --git a/include/i3status.h b/include/i3status.h
index 7bedfed..e259987 100644
--- a/include/i3status.h
+++ b/include/i3status.h
@@ -217,7 +217,7 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
void print_time(yajl_gen json_gen, char *buffer, const char *title, const char *format, const char *tz, const char *locale, const char *format_time, time_t t);
void print_ddate(yajl_gen json_gen, char *buffer, const char *format, time_t t);
const char *get_ip_addr(const char *interface, int family);
-void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface, const char *format_up, const char *format_down);
+void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface, const char *format_up, const char *format_down, const char *quality_min_lenght);
void print_run_watch(yajl_gen json_gen, char *buffer, const char *title, const char *pidfile, const char *format, const char *format_down);
void print_path_exists(yajl_gen json_gen, char *buffer, const char *title, const char *path, const char *format, const char *format_down);
void print_cpu_temperature_info(yajl_gen json_gen, char *buffer, int zone, const char *path, const char *format, const char *format_above_threshold, int);
diff --git a/man/i3status.man b/man/i3status.man
index 31f25ad..86f6216 100644
--- a/man/i3status.man
+++ b/man/i3status.man
@@ -300,7 +300,8 @@ There also is an option "format_down". You can hide the output with
Gets the link quality, frequency and ESSID of the given wireless network
interface. You can specify different format strings for the network being
-connected or not connected.
+connected or not connected. The quality is padded with leading zeroes by
+default; to pad with something else use +format_quality+.
The special interface name `_first_` will be replaced by the first wireless
network interface found on the system (excluding devices starting with "lo").
@@ -311,6 +312,8 @@ network interface found on the system (excluding devices starting with "lo").
*Example format_down*: +W: down+
+*Example format_quality*: +"%03d%s"+
+
=== Ethernet
Gets the IP address and (if possible) the link speed of the given ethernet
diff --git a/src/print_wireless_info.c b/src/print_wireless_info.c
index efdd59b..dcfde52 100644
--- a/src/print_wireless_info.c
+++ b/src/print_wireless_info.c
@@ -480,7 +480,7 @@ error1:
* | 127.0.0.1 | no IP | IPv4 | ok |
* | 127.0.0.1 | ::1/128 | IPv4 | ok |
*/
-void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface, const char *format_up, const char *format_down) {
+void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface, const char *format_up, const char *format_down, const char *format_quality) {
const char *walk;
char *outwalk = buffer;
wireless_info_t info;
@@ -540,7 +540,7 @@ void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface,
if (BEGINS_WITH(walk + 1, "quality")) {
if (info.flags & WIRELESS_INFO_FLAG_HAS_QUALITY) {
if (info.quality_max)
- outwalk += sprintf(outwalk, "%3d%s", PERCENT_VALUE(info.quality, info.quality_max), pct_mark);
+ outwalk += sprintf(outwalk, format_quality, PERCENT_VALUE(info.quality, info.quality_max), pct_mark);
else
outwalk += sprintf(outwalk, "%d", info.quality);
} else {