X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=i3status.h;h=4c7d4b4dcb6b6876a89e033aa0bf63ac6d30ff7f;hb=ea236a90daf4b20b16eba2e9c121166b34fc5332;hp=da8714130fce7003bcc582cdf216ac34a3174933;hpb=6fda988f360b3145d5772b6964f336dd652357ea;p=i3%2Fi3status diff --git a/i3status.h b/i3status.h index da87141..4c7d4b4 100644 --- a/i3status.h +++ b/i3status.h @@ -1,68 +1,78 @@ #ifndef _I3STATUS_H #define _I3STATUS_H -#include +enum { O_DZEN2, O_XMOBAR, O_NONE } output_format; -#include "queue.h" +#include +#include -#define BAR "^fg(#333333)^p(5;-2)^ro(2)^p()^fg()^p(5)" #define BEGINS_WITH(haystack, needle) (strncmp(haystack, needle, strlen(needle)) == 0) -#define max(a, b) (a > b ? a : b) +#define max(a, b) ((a) > (b) ? (a) : (b)) -typedef enum { CS_DISCHARGING, CS_CHARGING, CS_FULL } charging_status_t; -enum { ORDER_RUN, ORDER_WLAN, ORDER_ETH, ORDER_BATTERY, ORDER_CPU_TEMPERATURE, ORDER_LOAD, ORDER_TIME, MAX_ORDER }; +#if defined(LINUX) + +#define THERMAL_ZONE "/sys/class/thermal/thermal_zone%d/temp" + +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) -struct battery { - char *path; - /* Use last full capacity instead of design capacity */ - bool use_last_full; - SIMPLEQ_ENTRY(battery) batteries; -}; +#define THERMAL_ZONE "hw.acpi.thermal.tz%d.temperature" +#define BATT_LIFE "hw.acpi.battery.life" +#define BATT_TIME "hw.acpi.battery.time" +#define BATT_STATE "hw.acpi.battery.state" + +#endif + +#if defined(__FreeBSD_kernel__) && defined(__GLIBC__) + +#include +#include + +#endif + +/* Allows for the definition of a variable without opening a new scope, thus + * suited for usage in a macro. Idea from wmii. */ +#define with(type, var, init) \ + for (type var = (type)-1; (var == (type)-1) && ((var=(init)) || 1); ) + +#define CASE_SEC(name) \ + if (BEGINS_WITH(current, name)) \ + with(cfg_t *, sec, cfg_getsec(cfg, name)) \ + if (sec != NULL) + +#define CASE_SEC_TITLE(name) \ + if (BEGINS_WITH(current, name)) \ + with(const char *, title, current + strlen(name) + 1) \ + with(cfg_t *, sec, cfg_gettsec(cfg, name, title)) \ + if (sec != NULL) + + +typedef enum { CS_DISCHARGING, CS_CHARGING, CS_FULL } charging_status_t; /* src/general.c */ char *skip_character(char *input, char character, int amount); void die(const char *fmt, ...); -char *concat(const char *str1, const char *str2); -void create_file(const char *name); -void setup(void); -void write_to_statusbar(const char *name, const char *message, bool final_entry); -void slurp(char *filename, char *destination, int size); +bool slurp(char *filename, char *destination, int size); /* src/output.c */ -void write_error_to_statusbar(const char *message); +void print_seperator(); char *color(const char *colorstr); -void cleanup_rbar_dir(); +char *endcolor() __attribute__ ((pure)); -/* src/config.c */ -int load_configuration(const char *configfile); - -const char *get_ipv6_addr(); -const char *get_battery_info(struct battery *bat); +void print_ipv6_info(const char *format); +void print_disk_info(const char *path, const char *format); +void print_battery_info(int number, const char *format, bool last_full_capacity); +void print_time(const char *format); const char *get_ip_addr(); -const char *get_wireless_info(); -const char *get_cpu_temperature_info(); -const char *get_eth_info(); -const char *get_load(); +void print_wireless_info(const char *interface, const char *format_up, const char *format_down); +void print_run_watch(const char *title, const char *pidfile, const char *format); +void print_cpu_temperature_info(int zone, const char *format); +void print_eth_info(const char *interface, const char *format_up, const char *format_down); +void print_load(); bool process_runs(const char *path); -SIMPLEQ_HEAD(battery_head, battery); -extern struct battery_head batteries; - /* socket file descriptor for general purposes */ extern int general_socket; -extern const char *wlan_interface; -extern const char *eth_interface; -extern const char *wmii_path; -extern const char *time_format; -extern bool use_colors; -extern bool get_ethspeed; -extern bool get_cpu_temperature; -extern char *thermal_zone; -extern const char *wmii_normcolors; -extern char order[MAX_ORDER][2]; -extern const char **run_watches; -extern unsigned int num_run_watches; -extern unsigned int interval; +extern cfg_t *cfg, *cfg_general; #endif