/* See LICENSE file for copyright and license details. */
-/* alsa sound */
-static const char soundcard[] = "default";
-static const char channel[] = "Master";
+/* interval between updates (in ms) */
+static const int interval = 1000;
-/* cpu temperature */
-static const char tempfile[] = "/sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input";
+/* text to show if no value can be retrieved */
+static const char unknown_str[] = "n/a";
-/* wifi */
-static const char wificard[] = "wlp3s0";
+/* maximum output string length */
+#define MAXLEN 2048
-/* battery */
-static const char batterynowfile[] = "/sys/class/power_supply/BAT0/energy_now";
-static const char batteryfullfile[] = "/sys/class/power_supply/BAT0/energy_full_design";
-
-/* time */
-static const char timeformat[] = "%y-%m-%d %H:%M:%S";
-
-/* statusbar */
-#define FORMATSTRING "wifi %4s | bat %4s | cpu %4s %3s | ram %3s | vol %4s | %3s"
-#define ARGUMENTS pWifi_signal, pBattery, pCpu_usage, pCpu_temperature, pRam_usage, pVolume, pDatetime
+/*
+ * function description argument
+ *
+ * battery_perc battery percentage battery name
+ * battery_state battery charging state battery name
+ * cpu_perc cpu usage in percent NULL
+ * cpu_iowait cpu iowait in percent NULL
+ * cpu_freq cpu frequency in MHz NULL
+ * datetime date and time format string
+ * disk_free free disk space in GB mountpoint path
+ * disk_perc disk usage in percent mountpoint path
+ * disk_total total disk space in GB mountpoint path
+ * disk_used used disk space in GB mountpoint path
+ * entropy available entropy NULL
+ * gid GID of current user NULL
+ * hostname hostname NULL
+ * ipv4 IPv4 address interface name
+ * ipv6 IPv6 address interface name
+ * kernel_release `uname -r` NULL
+ * keyboard_indicators caps/num lock indicators NULL
+ * load_avg load average format string
+ * num_files number of files in a directory path
+ * ram_free free memory in GB NULL
+ * ram_perc memory usage in percent NULL
+ * ram_total total memory size in GB NULL
+ * ram_used used memory in GB NULL
+ * run_command custom shell command command
+ * swap_free free swap in GB NULL
+ * swap_perc swap usage in percent NULL
+ * swap_total total swap size in GB NULL
+ * swap_used used swap in GB NULL
+ * temp temperature in degree celsius sensor file
+ * uid UID of current user NULL
+ * uptime system uptime NULL
+ * username username of current user NULL
+ * vol_perc OSS/ALSA volume in percent "/dev/mixer"
+ * wifi_perc WiFi signal in percent interface name
+ * wifi_essid WiFi ESSID interface name
+ */
+static const struct arg args[] = {
+ /* function format argument */
+ { datetime, "%s", "%F %T" },
+};