Skip to content

Commit

Permalink
Merge pull request i3#292 from Stunkymonkey/format_quality
Browse files Browse the repository at this point in the history
add format_quality option in wireless
  • Loading branch information
Airblader committed Jun 29, 2018
2 parents 78c0a53 + 4ea804b commit 3029663
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 5 deletions.
3 changes: 2 additions & 1 deletion i3status.c
Expand Up @@ -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,
Expand Down Expand Up @@ -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;
}

Expand Down
2 changes: 1 addition & 1 deletion include/i3status.h
Expand Up @@ -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);
Expand Down
5 changes: 4 additions & 1 deletion man/i3status.man
Expand Up @@ -299,7 +299,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").
Expand All @@ -310,6 +311,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
Expand Down
4 changes: 2 additions & 2 deletions src/print_wireless_info.c
Expand Up @@ -480,7 +480,7 @@ static int get_wireless_info(const char *interface, wireless_info_t *info) {
* | 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;
Expand Down Expand Up @@ -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 {
Expand Down

0 comments on commit 3029663

Please sign in to comment.