summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml1
-rw-r--r--include/i3status.h4
-rw-r--r--src/print_disk_info.c12
-rw-r--r--src/print_mem.c5
-rw-r--r--src/print_path_exists.c1
-rw-r--r--src/print_wireless_info.c140
-rw-r--r--testcases/020-percentliteral-cpu_usage/expected_output.txt1
-rw-r--r--testcases/020-percentliteral-cpu_usage/i3status.conf9
-rw-r--r--testcases/020-percentliteral-disk/expected_output.txt1
-rw-r--r--testcases/020-percentliteral-disk/i3status.conf9
-rw-r--r--testcases/020-percentliteral-ethernet/expected_output.txt1
-rw-r--r--testcases/020-percentliteral-ethernet/i3status.conf9
-rw-r--r--testcases/020-percentliteral-ipv6/expected_output.txt1
-rw-r--r--testcases/020-percentliteral-ipv6/i3status.conf10
-rw-r--r--testcases/020-percentliteral-load/expected_output.txt1
-rw-r--r--testcases/020-percentliteral-load/i3status.conf9
-rw-r--r--testcases/020-percentliteral-memory/expected_output.txt1
-rw-r--r--testcases/020-percentliteral-memory/i3status.conf9
-rw-r--r--testcases/020-percentliteral-path_exists/expected_output.txt1
-rw-r--r--testcases/020-percentliteral-path_exists/i3status.conf9
-rw-r--r--testcases/020-percentliteral-time/expected_output.txt1
-rw-r--r--testcases/020-percentliteral-time/i3status.conf9
-rw-r--r--testcases/020-percentliteral-tztime/expected_output.txt1
-rw-r--r--testcases/020-percentliteral-tztime/i3status.conf9
-rw-r--r--testcases/020-percentliteral-volume/expected_output.txt1
-rw-r--r--testcases/020-percentliteral-volume/i3status.conf9
-rw-r--r--testcases/020-percentliteral-wireless/expected_output.txt1
-rw-r--r--testcases/020-percentliteral-wireless/i3status.conf10
28 files changed, 198 insertions, 77 deletions
diff --git a/.travis.yml b/.travis.yml
index 2dbb498..cd7487f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -19,6 +19,7 @@ addons:
- libcap2-bin
- clang-format-3.8
- libllvm3.5
+ - pulseaudio
script:
- clang-format-3.8 -i $(find . -name "*.[ch]" | tr '\n' ' ') && git diff --exit-code || (echo 'Code was not formatted using clang-format!'; false)
# TODO: re-enable sanitizers once issues are fixed
diff --git a/include/i3status.h b/include/i3status.h
index e0dff2b..6e5278f 100644
--- a/include/i3status.h
+++ b/include/i3status.h
@@ -206,9 +206,9 @@ char *trim(const char *s);
/* src/format_placeholders.c */
typedef struct {
/* The placeholder to be replaced, e.g., "%title". */
- char *name;
+ const char *name;
/* The value this placeholder should be replaced with. */
- char *value;
+ const char *value;
} placeholder_t;
char *format_placeholders(const char *format, placeholder_t *placeholders, int num);
diff --git a/src/print_disk_info.c b/src/print_disk_info.c
index 5f510a0..4c23c7a 100644
--- a/src/print_disk_info.c
+++ b/src/print_disk_info.c
@@ -73,9 +73,9 @@ static bool below_threshold(struct statvfs buf, const char *prefix_type, const c
} else if (strcasecmp(threshold_type, "percentage_avail") == 0) {
return 100.0 * (double)buf.f_bavail / (double)buf.f_blocks < low_threshold;
} else if (strcasecmp(threshold_type, "bytes_free") == 0) {
- return (double)buf.f_bsize * (double)buf.f_bfree < low_threshold;
+ return (double)buf.f_frsize * (double)buf.f_bfree < low_threshold;
} else if (strcasecmp(threshold_type, "bytes_avail") == 0) {
- return (double)buf.f_bsize * (double)buf.f_bavail < low_threshold;
+ return (double)buf.f_frsize * (double)buf.f_bavail < low_threshold;
} else if (threshold_type[0] != '\0' && strncasecmp(threshold_type + 1, "bytes_", strlen("bytes_")) == 0) {
uint64_t base = strcasecmp(prefix_type, "decimal") == 0 ? DECIMAL_BASE : BINARY_BASE;
double factor = 1;
@@ -187,10 +187,10 @@ void print_disk_info(yajl_gen json_gen, char *buffer, const char *path, const ch
char string_percentage_used[STRING_SIZE];
char string_percentage_avail[STRING_SIZE];
- print_bytes_human(string_free, (uint64_t)buf.f_bsize * (uint64_t)buf.f_bfree, prefix_type);
- print_bytes_human(string_used, (uint64_t)buf.f_bsize * ((uint64_t)buf.f_blocks - (uint64_t)buf.f_bfree), prefix_type);
- print_bytes_human(string_total, (uint64_t)buf.f_bsize * (uint64_t)buf.f_blocks, prefix_type);
- print_bytes_human(string_avail, (uint64_t)buf.f_bsize * (uint64_t)buf.f_bavail, prefix_type);
+ print_bytes_human(string_free, (uint64_t)buf.f_frsize * (uint64_t)buf.f_bfree, prefix_type);
+ print_bytes_human(string_used, (uint64_t)buf.f_frsize * ((uint64_t)buf.f_blocks - (uint64_t)buf.f_bfree), prefix_type);
+ print_bytes_human(string_total, (uint64_t)buf.f_frsize * (uint64_t)buf.f_blocks, prefix_type);
+ print_bytes_human(string_avail, (uint64_t)buf.f_frsize * (uint64_t)buf.f_bavail, prefix_type);
snprintf(string_percentage_free, STRING_SIZE, "%.01f%s", 100.0 * (double)buf.f_bfree / (double)buf.f_blocks, pct_mark);
snprintf(string_percentage_used_of_avail, STRING_SIZE, "%.01f%s", 100.0 * (double)(buf.f_blocks - buf.f_bavail) / (double)buf.f_blocks, pct_mark);
snprintf(string_percentage_used, STRING_SIZE, "%.01f%s", 100.0 * (double)(buf.f_blocks - buf.f_bfree) / (double)buf.f_blocks, pct_mark);
diff --git a/src/print_mem.c b/src/print_mem.c
index cbe42a9..941c9d9 100644
--- a/src/print_mem.c
+++ b/src/print_mem.c
@@ -23,7 +23,7 @@ static const char *const iec_symbols[] = {"B", "KiB", "MiB", "GiB", "TiB"};
*/
static int print_bytes_human(char *outwalk, unsigned long bytes, const char *unit, const int decimals) {
double base = bytes;
- int exponent = 0;
+ size_t exponent = 0;
while (base >= BINARY_BASE && exponent < MAX_EXPONENT) {
if (strcasecmp(unit, iec_symbols[exponent]) == 0) {
break;
@@ -86,7 +86,6 @@ void print_memory(yajl_gen json_gen, char *buffer, const char *format, const cha
#if defined(linux)
const char *selected_format = format;
- const char *walk;
const char *output_color = NULL;
int unread_fields = 6;
@@ -140,6 +139,8 @@ void print_memory(yajl_gen json_gen, char *buffer, const char *format, const cha
ram_used = ram_total - ram_available;
} else if (BEGINS_WITH(memory_used_method, "classical")) {
ram_used = ram_total - ram_free - ram_buffers - ram_cached;
+ } else {
+ die("Unexpected value: memory_used_method = %s", memory_used_method);
}
if (threshold_degraded) {
diff --git a/src/print_path_exists.c b/src/print_path_exists.c
index 504eb6c..a57cc7b 100644
--- a/src/print_path_exists.c
+++ b/src/print_path_exists.c
@@ -1,6 +1,7 @@
// vim:ts=4:sw=4:expandtab
#include <config.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <yajl/yajl_gen.h>
#include <yajl/yajl_version.h>
diff --git a/src/print_wireless_info.c b/src/print_wireless_info.c
index 49421bb..cfb51b6 100644
--- a/src/print_wireless_info.c
+++ b/src/print_wireless_info.c
@@ -68,6 +68,8 @@
#include "i3status.h"
+#define STRING_SIZE 30
+
#define WIRELESS_INFO_FLAG_HAS_ESSID (1 << 0)
#define WIRELESS_INFO_FLAG_HAS_QUALITY (1 << 1)
#define WIRELESS_INFO_FLAG_HAS_SIGNAL (1 << 2)
@@ -95,7 +97,7 @@ typedef struct {
double frequency;
} wireless_info_t;
-#ifdef __linux__
+#if defined(__linux__) || defined(__FreeBSD__)
// Like iw_print_bitrate, but without the dependency on libiw.
static void print_bitrate(char *buffer, int buflen, int bitrate, const char *format_bitrate) {
const int kilo = 1e3;
@@ -118,7 +120,9 @@ static void print_bitrate(char *buffer, int buflen, int bitrate, const char *for
}
snprintf(buffer, buflen, format_bitrate, rate / divisor, scale);
}
+#endif
+#ifdef __linux__
// Based on NetworkManager/src/platform/wifi/wifi-utils-nl80211.c
static uint32_t nl80211_xbm_to_percent(int32_t xbm, int32_t divisor) {
#define NOISE_FLOOR_DBM -90
@@ -406,6 +410,9 @@ error1:
info->flags |= WIRELESS_INFO_FLAG_HAS_SIGNAL;
info->noise_level = u.req.info[0].isi_noise;
info->flags |= WIRELESS_INFO_FLAG_HAS_NOISE;
+ // isi_txmbps is specified in units of 500 Kbit/s
+ // Convert them to bit/s
+ info->bitrate = u.req.info[0].isi_txmbps * 500 * 1000;
}
return 1;
@@ -517,7 +524,12 @@ void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface,
if (ipv6_address == NULL) {
START_COLOR("color_bad");
outwalk += sprintf(outwalk, "%s", format_down);
- goto out;
+
+ END_COLOR;
+ free(ipv4_address);
+ free(ipv6_address);
+ OUTPUT_FULL_TEXT(buffer);
+ return;
} else {
prefer_ipv4 = false;
}
@@ -542,81 +554,75 @@ void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface,
}
}
- for (; *walk != '\0'; walk++) {
- if (*walk != '%') {
- *(outwalk++) = *walk;
+ char string_quality[STRING_SIZE];
+ char string_signal[STRING_SIZE];
+ char string_noise[STRING_SIZE];
+ char string_essid[STRING_SIZE];
+ char string_frequency[STRING_SIZE];
+ char string_ip[STRING_SIZE];
+ char string_bitrate[STRING_SIZE];
+
+ if (info.flags & WIRELESS_INFO_FLAG_HAS_QUALITY) {
+ if (info.quality_max)
+ snprintf(string_quality, STRING_SIZE, format_quality, PERCENT_VALUE(info.quality, info.quality_max), pct_mark);
+ else
+ snprintf(string_quality, STRING_SIZE, "%d", info.quality);
+ } else {
+ snprintf(string_quality, STRING_SIZE, "?");
+ }
- } else if (BEGINS_WITH(walk + 1, "quality")) {
- if (info.flags & WIRELESS_INFO_FLAG_HAS_QUALITY) {
- if (info.quality_max)
- outwalk += sprintf(outwalk, format_quality, PERCENT_VALUE(info.quality, info.quality_max), pct_mark);
- else
- outwalk += sprintf(outwalk, "%d", info.quality);
- } else {
- *(outwalk++) = '?';
- }
- walk += strlen("quality");
-
- } else if (BEGINS_WITH(walk + 1, "signal")) {
- if (info.flags & WIRELESS_INFO_FLAG_HAS_SIGNAL) {
- if (info.signal_level_max)
- outwalk += sprintf(outwalk, format_signal, PERCENT_VALUE(info.signal_level, info.signal_level_max), pct_mark);
- else
- outwalk += sprintf(outwalk, "%d dBm", info.signal_level);
- } else {
- *(outwalk++) = '?';
- }
- walk += strlen("signal");
-
- } else if (BEGINS_WITH(walk + 1, "noise")) {
- if (info.flags & WIRELESS_INFO_FLAG_HAS_NOISE) {
- if (info.noise_level_max)
- outwalk += sprintf(outwalk, format_noise, PERCENT_VALUE(info.noise_level, info.noise_level_max), pct_mark);
- else
- outwalk += sprintf(outwalk, "%d dBm", info.noise_level);
- } else {
- *(outwalk++) = '?';
- }
- walk += strlen("noise");
+ if (info.flags & WIRELESS_INFO_FLAG_HAS_SIGNAL) {
+ if (info.signal_level_max)
+ snprintf(string_signal, STRING_SIZE, format_signal, PERCENT_VALUE(info.signal_level, info.signal_level_max), pct_mark);
+ else
+ snprintf(string_signal, STRING_SIZE, "%d dBm", info.signal_level);
+ } else {
+ snprintf(string_signal, STRING_SIZE, "?");
+ }
+
+ if (info.flags & WIRELESS_INFO_FLAG_HAS_NOISE) {
+ if (info.noise_level_max)
+ snprintf(string_noise, STRING_SIZE, format_noise, PERCENT_VALUE(info.noise_level, info.noise_level_max), pct_mark);
+ else
+ snprintf(string_noise, STRING_SIZE, "%d dBm", info.noise_level);
+ } else {
+ snprintf(string_noise, STRING_SIZE, "?");
+ }
- } else if (BEGINS_WITH(walk + 1, "essid")) {
+ char *tmp = string_essid;
#ifdef IW_ESSID_MAX_SIZE
- if (info.flags & WIRELESS_INFO_FLAG_HAS_ESSID)
- maybe_escape_markup(info.essid, &outwalk);
- else
+ if (info.flags & WIRELESS_INFO_FLAG_HAS_ESSID)
+ maybe_escape_markup(info.essid, &tmp);
+ else
#endif
- *(outwalk++) = '?';
- walk += strlen("essid");
-
- } else if (BEGINS_WITH(walk + 1, "frequency")) {
- if (info.flags & WIRELESS_INFO_FLAG_HAS_FREQUENCY)
- outwalk += sprintf(outwalk, "%1.1f GHz", info.frequency / 1e9);
- else
- *(outwalk++) = '?';
- walk += strlen("frequency");
-
- } else if (BEGINS_WITH(walk + 1, "ip")) {
- outwalk += sprintf(outwalk, "%s", ip_address);
- walk += strlen("ip");
- }
-#ifdef __linux__
- else if (BEGINS_WITH(walk + 1, "bitrate")) {
- char br_buffer[128];
+ snprintf(string_essid, STRING_SIZE, "?");
- print_bitrate(br_buffer, sizeof(br_buffer), info.bitrate, format_bitrate);
+ if (info.flags & WIRELESS_INFO_FLAG_HAS_FREQUENCY)
+ snprintf(string_frequency, STRING_SIZE, "%1.1f GHz", info.frequency / 1e9);
+ else
+ snprintf(string_frequency, STRING_SIZE, "?");
- outwalk += sprintf(outwalk, "%s", br_buffer);
- walk += strlen("bitrate");
- }
+ snprintf(string_ip, STRING_SIZE, "%s", ip_address);
+
+#if defined(__linux__) || defined(__FreeBSD__)
+ print_bitrate(string_bitrate, sizeof(string_bitrate), info.bitrate, format_bitrate);
#endif
- else {
- *(outwalk++) = '%';
- }
- }
-out:
+ placeholder_t placeholders[] = {
+ {.name = "%quality", .value = string_quality},
+ {.name = "%signal", .value = string_signal},
+ {.name = "%noise", .value = string_noise},
+ {.name = "%essid", .value = string_essid},
+ {.name = "%frequency", .value = string_frequency},
+ {.name = "%ip", .value = string_ip},
+ {.name = "%bitrate", .value = string_bitrate}};
+
+ const size_t num = sizeof(placeholders) / sizeof(placeholder_t);
+ buffer = format_placeholders(walk, &placeholders[0], num);
+
END_COLOR;
free(ipv4_address);
free(ipv6_address);
OUTPUT_FULL_TEXT(buffer);
+ free(buffer);
}
diff --git a/testcases/020-percentliteral-cpu_usage/expected_output.txt b/testcases/020-percentliteral-cpu_usage/expected_output.txt
new file mode 100644
index 0000000..a0c0525
--- /dev/null
+++ b/testcases/020-percentliteral-cpu_usage/expected_output.txt
@@ -0,0 +1 @@
+I can %haz literal% % ?
diff --git a/testcases/020-percentliteral-cpu_usage/i3status.conf b/testcases/020-percentliteral-cpu_usage/i3status.conf
new file mode 100644
index 0000000..7f929b2
--- /dev/null
+++ b/testcases/020-percentliteral-cpu_usage/i3status.conf
@@ -0,0 +1,9 @@
+general {
+ output_format = "none"
+}
+
+order += "cpu_usage"
+
+cpu_usage {
+ format = "I can %haz literal% % ?"
+}
diff --git a/testcases/020-percentliteral-disk/expected_output.txt b/testcases/020-percentliteral-disk/expected_output.txt
new file mode 100644
index 0000000..a0c0525
--- /dev/null
+++ b/testcases/020-percentliteral-disk/expected_output.txt
@@ -0,0 +1 @@
+I can %haz literal% % ?
diff --git a/testcases/020-percentliteral-disk/i3status.conf b/testcases/020-percentliteral-disk/i3status.conf
new file mode 100644
index 0000000..42bf032
--- /dev/null
+++ b/testcases/020-percentliteral-disk/i3status.conf
@@ -0,0 +1,9 @@
+general {
+ output_format = "none"
+}
+
+order += "disk /"
+
+disk / {
+ format = "I can %haz literal% % ?"
+}
diff --git a/testcases/020-percentliteral-ethernet/expected_output.txt b/testcases/020-percentliteral-ethernet/expected_output.txt
new file mode 100644
index 0000000..a0c0525
--- /dev/null
+++ b/testcases/020-percentliteral-ethernet/expected_output.txt
@@ -0,0 +1 @@
+I can %haz literal% % ?
diff --git a/testcases/020-percentliteral-ethernet/i3status.conf b/testcases/020-percentliteral-ethernet/i3status.conf
new file mode 100644
index 0000000..a7674aa
--- /dev/null
+++ b/testcases/020-percentliteral-ethernet/i3status.conf
@@ -0,0 +1,9 @@
+general {
+ output_format = "none"
+}
+
+order += "ethernet NONEXISTINGETHERNETDEVICE"
+
+ethernet NONEXISTINGETHERNETDEVICE {
+ format_down = "I can %haz literal% % ?"
+}
diff --git a/testcases/020-percentliteral-ipv6/expected_output.txt b/testcases/020-percentliteral-ipv6/expected_output.txt
new file mode 100644
index 0000000..a0c0525
--- /dev/null
+++ b/testcases/020-percentliteral-ipv6/expected_output.txt
@@ -0,0 +1 @@
+I can %haz literal% % ?
diff --git a/testcases/020-percentliteral-ipv6/i3status.conf b/testcases/020-percentliteral-ipv6/i3status.conf
new file mode 100644
index 0000000..5c0d527
--- /dev/null
+++ b/testcases/020-percentliteral-ipv6/i3status.conf
@@ -0,0 +1,10 @@
+general {
+ output_format = "none"
+}
+
+order += "ipv6"
+
+ipv6 {
+ format_up = "I can %haz literal% % ?"
+ format_down = "I can %haz literal% % ?"
+}
diff --git a/testcases/020-percentliteral-load/expected_output.txt b/testcases/020-percentliteral-load/expected_output.txt
new file mode 100644
index 0000000..a0c0525
--- /dev/null
+++ b/testcases/020-percentliteral-load/expected_output.txt
@@ -0,0 +1 @@
+I can %haz literal% % ?
diff --git a/testcases/020-percentliteral-load/i3status.conf b/testcases/020-percentliteral-load/i3status.conf
new file mode 100644
index 0000000..e001bac
--- /dev/null
+++ b/testcases/020-percentliteral-load/i3status.conf
@@ -0,0 +1,9 @@
+general {
+ output_format = "none"
+}
+
+order += "load"
+
+load {
+ format = "I can %haz literal% % ?"
+}
diff --git a/testcases/020-percentliteral-memory/expected_output.txt b/testcases/020-percentliteral-memory/expected_output.txt
new file mode 100644
index 0000000..a0c0525
--- /dev/null
+++ b/testcases/020-percentliteral-memory/expected_output.txt
@@ -0,0 +1 @@
+I can %haz literal% % ?
diff --git a/testcases/020-percentliteral-memory/i3status.conf b/testcases/020-percentliteral-memory/i3status.conf
new file mode 100644
index 0000000..9dd8105
--- /dev/null
+++ b/testcases/020-percentliteral-memory/i3status.conf
@@ -0,0 +1,9 @@
+general {
+ output_format = "none"
+}
+
+order += "memory"
+
+memory {
+ format = "I can %haz literal% % ?"
+}
diff --git a/testcases/020-percentliteral-path_exists/expected_output.txt b/testcases/020-percentliteral-path_exists/expected_output.txt
new file mode 100644
index 0000000..a0c0525
--- /dev/null
+++ b/testcases/020-percentliteral-path_exists/expected_output.txt
@@ -0,0 +1 @@
+I can %haz literal% % ?
diff --git a/testcases/020-percentliteral-path_exists/i3status.conf b/testcases/020-percentliteral-path_exists/i3status.conf
new file mode 100644
index 0000000..5972914
--- /dev/null
+++ b/testcases/020-percentliteral-path_exists/i3status.conf
@@ -0,0 +1,9 @@
+general {
+ output_format = "none"
+}
+
+order += "path_exists all"
+
+path_exists all {
+ format = "I can %haz literal% % ?"
+}
diff --git a/testcases/020-percentliteral-time/expected_output.txt b/testcases/020-percentliteral-time/expected_output.txt
new file mode 100644
index 0000000..a0c0525
--- /dev/null
+++ b/testcases/020-percentliteral-time/expected_output.txt
@@ -0,0 +1 @@
+I can %haz literal% % ?
diff --git a/testcases/020-percentliteral-time/i3status.conf b/testcases/020-percentliteral-time/i3status.conf
new file mode 100644
index 0000000..22cb2a0
--- /dev/null
+++ b/testcases/020-percentliteral-time/i3status.conf
@@ -0,0 +1,9 @@
+general {
+ output_format = "none"
+}
+
+order += "time"
+
+time {
+ format = "I can %%haz literal% % ?"
+}
diff --git a/testcases/020-percentliteral-tztime/expected_output.txt b/testcases/020-percentliteral-tztime/expected_output.txt
new file mode 100644
index 0000000..a0c0525
--- /dev/null
+++ b/testcases/020-percentliteral-tztime/expected_output.txt
@@ -0,0 +1 @@
+I can %haz literal% % ?
diff --git a/testcases/020-percentliteral-tztime/i3status.conf b/testcases/020-percentliteral-tztime/i3status.conf
new file mode 100644
index 0000000..c20099c
--- /dev/null
+++ b/testcases/020-percentliteral-tztime/i3status.conf
@@ -0,0 +1,9 @@
+general {
+ output_format = "none"
+}
+
+order += "tztime berlin"
+
+tztime berlin {
+ format_time = "I can %haz literal% % ?"
+}
diff --git a/testcases/020-percentliteral-volume/expected_output.txt b/testcases/020-percentliteral-volume/expected_output.txt
new file mode 100644
index 0000000..a0c0525
--- /dev/null
+++ b/testcases/020-percentliteral-volume/expected_output.txt
@@ -0,0 +1 @@
+I can %haz literal% % ?
diff --git a/testcases/020-percentliteral-volume/i3status.conf b/testcases/020-percentliteral-volume/i3status.conf
new file mode 100644
index 0000000..3a0edb5
--- /dev/null
+++ b/testcases/020-percentliteral-volume/i3status.conf
@@ -0,0 +1,9 @@
+general {
+ output_format = "none"
+}
+
+order += "volume master"
+
+volume master {
+ format = "I can %haz literal% % ?"
+}
diff --git a/testcases/020-percentliteral-wireless/expected_output.txt b/testcases/020-percentliteral-wireless/expected_output.txt
new file mode 100644
index 0000000..a0c0525
--- /dev/null
+++ b/testcases/020-percentliteral-wireless/expected_output.txt
@@ -0,0 +1 @@
+I can %haz literal% % ?
diff --git a/testcases/020-percentliteral-wireless/i3status.conf b/testcases/020-percentliteral-wireless/i3status.conf
new file mode 100644
index 0000000..69a25a3
--- /dev/null
+++ b/testcases/020-percentliteral-wireless/i3status.conf
@@ -0,0 +1,10 @@
+general {
+ output_format = "none"
+}
+
+order += "wireless _first_"
+
+wireless _first_ {
+ format_up = "I can %haz literal% % ?"
+ format_down = "I can %haz literal% % ?"
+}