[wiki] [sites] dwmstatus - bar_monitor-0.4.c Updated. || levi0x0

From: <git_AT_suckless.org>
Date: Wed, 02 Jul 2014 18:04:21 +0200

commit e8868bc9bfe4a180ca38ed8cbeb6f38e87c2fe19
Author: levi0x0 <levi0x0x_AT_gmail.com>
Date: Wed Jul 2 19:03:41 2014 +0300

    dwmstatus - bar_monitor-0.4.c Updated.

diff --git a/dwm.suckless.org/dwmstatus/bar_monitor-0.4.c b/dwm.suckless.org/dwmstatus/bar_monitor-0.4.c
new file mode 100644
index 0000000..fcf6cdd
--- /dev/null
+++ b/dwm.suckless.org/dwmstatus/bar_monitor-0.4.c
_AT_@ -0,0 +1,200 @@
+/*
+ * bar_monitor.c - another version of dwmstatus.
+ *
+ * Written by: levi0x0 (levi0x0x_AT_gmail.com) for dwm.
+ * Date: 02/07/2014
+ * Version: 0.4
+ * License: GPL 3
+ *
+ * What it's Displays::
+ * 1. time/date
+ * 2. temerature
+ * 3. wireless Status.
+ * 4. battery status.
+ *
+ * if you are not using laptop, please define: LAPTOP 0
+ *
+ * ** Using with .xinitrc **:
+ *
+ * while [ true ];do
+ * bar=`bar_monitor`
+ * xsetroot -name "$bar"
+ * done &
+ *
+ * bar_monitor contain sleep(1) function.
+ * if you want to add more functions to bar_monitor,
+ * please let me know.
+ *
+ * gcc bar_monitor.c -o bar_monitor
+ *
+ * mv bar_monitor /usr/local/bin/bar_monitor
+ *
+ */
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+//BAT1 change if needed
+#define STATUS_FILE "/sys/class/power_supply/BAT1/status"
+#define CAPACITY_FILE "/sys/class/power_supply/BAT1/capacity"
+#define net_file "/proc/net/wireless"
+#define temp_file "/sys/class/hwmon/hwmon0/temp1_input"
+#define STR_SIZE 30
+#define TIME_FORMAT "%H:%M %d-%m-%y"
+#define date read_date()
+#define status open_status()
+#define pcapacity open_capacity()
+#define temp read_temp()
+#define nett net()
+#define LAPTOP 1
+
+
+static char status_linecp[STR_SIZE];
+static char time_buffer[STR_SIZE];
+static char net_buffer[STR_SIZE];
+int capacity;
+
+/*prototypes*/
+char * read_date(void);
+char * open_status(void);
+char * net(void);
+int open_capacity(void);
+int read_temp(void);
+
+int main(int argc, char **argv) {
+ if (!strcmp(status, "Discharging")) {
+ //printf("[%d%], Discharging
", pcapacity);
+ if ( pcapacity < 10 ) {
+ printf("%d%% **Low Battery**", pcapacity);
+ }
+ else {
+ printf("%d%%", pcapacity);
+ }
+ }
+
+ else if (!strcmp(status, "Charging")) {
+ //printf("[%d%], Charging
", pcapacity);
+ printf("%d%%", pcapacity);
+ }
+ else if (!strcmp(status, "Full")) {
+ printf("[Full]");
+
+ }
+ else {
+ //What?! the program can't read the battery status
+ printf("w00t?
");
+
+ }
+ #if LAPTOP
+ printf(" %s %dC %s", nett,temp, date);
+ #else
+ printf(" %dC %s", temp, date);
+ #endif
+
+ sleep(1);
+
+ return 0;
+}
+
+
+char * read_date(void) {
+ time_t now = time(0);
+
+ strftime(time_buffer, STR_SIZE, TIME_FORMAT, localtime(&now));
+
+ return time_buffer;
+
+}
+
+int open_capacity(void) {
+ FILE *capacity_file;
+
+ capacity_file = fopen(CAPACITY_FILE, "r");
+
+ if ( capacity_file == NULL ) {
+ fprintf(stderr, "Failed to open: %s
", CAPACITY_FILE);
+ exit(EXIT_FAILURE);
+ }
+
+ fscanf(capacity_file, "%d", &capacity);
+ fclose(capacity_file);
+
+ return capacity;
+}
+
+char * open_status(void) {
+ FILE *status_file;
+ char *line = NULL;
+ size_t len = 0;
+ ssize_t read;
+
+ status_file = fopen(STATUS_FILE, "rt");
+
+ if ( status_file == NULL ) {
+ fprintf(stderr, "Failed to open: %s
");
+ exit(EXIT_FAILURE);
+ }
+
+ while (( read = getline(&line, &len, status_file)) != -1 ) {
+ ;
+ }
+
+ strncpy(status_linecp, line, strlen(line));
+
+ strtok(status_linecp, "
");
+ free(line);
+
+ return status_linecp;
+}
+
+char * net(void) {
+ FILE *fp;
+ char buffer[STR_SIZE];
+ char *line = NULL;
+ ssize_t len = 0;
+ ssize_t read;
+
+
+ fp = fopen(net_file, "rt");
+
+ while (( read = getline(&line, &len, fp)) != -1 ) {
+ ;
+ }
+
+ sscanf(line,"%s
", &buffer);
+
+ free(line);
+
+ //if( strstr(buffer, "wlan") != NULL) {
+ if( strstr(buffer, "wlp") != NULL) {
+ return "(ON)";
+ }
+ else {
+ return "(OFF)";
+ }
+
+}
+
+/*
+* This fucntion read the temperature form temp_file
+*/
+int read_temp(void) {
+ FILE *t_file;
+ int ret = 0;
+
+
+ t_file = fopen(temp_file, "rt");
+
+
+ if ( t_file == NULL ) {
+ fprintf(stderr, "Failed to open: %s
", temp_file);
+ exit(1);
+ }
+
+ fscanf(t_file, "%d", &ret);
+
+ return ret / 1000;
+}
diff --git a/dwm.suckless.org/dwmstatus/index.md b/dwm.suckless.org/dwmstatus/index.md
index 3bbe16b..0557e09 100644
--- a/dwm.suckless.org/dwmstatus/index.md
+++ b/dwm.suckless.org/dwmstatus/index.md
_AT_@ -23,7 +23,7 @@ Please add your own version of dwmstatus here.
 * [profil-dwmstatus-1.0.c](profil-dwmstatus-1.0.c) - cpufreq, battery percent and date/time
 * [suspend-statusbar.c](suspend-statusbar.c) - loadavg, wifi, battery and date. If battery goes below threshold - run suspend command
 * [gods](https://github.com/schachmat/gods) - implemented in Go. prints network speed, cpu, ram, date/time
-* [barmonitor](https://github.com/levi0x0/Scrips-IO/blob/master/bar_monitor.c) - display battery status, date/time.
+* [barmonitor](bar_monitor-0.4.c) - displays, battery status, date/time, temperature, network status.
 
 
 Helper functions
Received on Wed Jul 02 2014 - 18:04:21 CEST

This archive was generated by hypermail 2.3.0 : Thu Jun 18 2015 - 17:39:16 CEST