diff options
author | toni <matzeton@googlemail.com> | 2015-10-08 14:10:35 +0200 |
---|---|---|
committer | toni <matzeton@googlemail.com> | 2015-10-08 14:10:35 +0200 |
commit | 1e941c775f36817747715152e147452ce78a8d8b (patch) | |
tree | 6b458ada044703ea39522b828f87fdb07bdf571a | |
parent | d41bf82bb2d189fdebc7fa4958d2c01fada1afba (diff) |
stuff
-rw-r--r-- | asciihexer.c | 46 | ||||
-rwxr-xr-x | configs/xmobar_gputemp.sh | 31 | ||||
-rw-r--r-- | xidle.c | 40 |
3 files changed, 106 insertions, 11 deletions
diff --git a/asciihexer.c b/asciihexer.c new file mode 100644 index 0000000..afa1cd0 --- /dev/null +++ b/asciihexer.c @@ -0,0 +1,46 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#define ASCII_HEXLEN 3 + + +static void defaultHexOut(char *text) { + int i; + size_t len; + + for (i = 0; i < (len = strlen(text)); i++) { + printf("0x%X%c", text[i], (i == len-1 ? '\n' : ' ')); + } +} + +static void dwordHexOut(char *text) { + int i; + size_t len; + + for (i = 0; i < (len = strlen(text)); i++) { + printf("%s%X%s", (i % 4 == 0 ? (i == 0 ? "0x" : " 0x") : ""), text[i], (i == len-1 ? "\n" : "")); + } +} + +static void strHexOut(char *text) { + int i; + size_t len; + + for (i = 0; i < (len = strlen(text)); i++) { + printf("%s%X%s", (i == 0 ? "0x" : ""), text[i], (i == len-1 ? "\n" : "")); + } +} + +int main(int argc, char **argv) +{ + if (argc != 2) { + fprintf(stderr, "usage: %s [TEXT]\n", argv[0]); + return 1; + } + + defaultHexOut(argv[1]); + dwordHexOut(argv[1]); + strHexOut(argv[1]); + return 0; +} diff --git a/configs/xmobar_gputemp.sh b/configs/xmobar_gputemp.sh index eb5bf64..793b1d1 100755 --- a/configs/xmobar_gputemp.sh +++ b/configs/xmobar_gputemp.sh @@ -1,18 +1,27 @@ #!/bin/bash if [ "x$1" = "xmem" ]; then - nvidia-smi | grep -oE '[0-9]{1,3}%\s*[0-9]{1,4}MB\s*/\s*[0-9]{1,4}MB' + echo -ne "GPU(MEM): " + OUT=$(nvidia-smi | sed -n 's/.*\s\([0-9]\{1,3\}\)\%\s.*/\1/p') else + echo -ne "GPU(TMP): " OUT=$(nvidia-smi | sed -n 's/\(.*\)\([0-9]\{2,3\}\)C\(.*\)/\2/p') - if [ "x$OUT" = "x" ]; then - echo "<fc=#FF0000>ERR</fc>" - elif [ $OUT -gt 75 ]; then - echo "<fc=#FF0000>$OUT</fc>°C" - elif [ $OUT -ge 65 ]; then - echo "<fc=#FFFF00>$OUT</fc>°C" - elif [ $OUT -ge 50 ]; then - echo "<fc=#00FF00>$OUT</fc>°C" +fi +if [ "x$OUT" = "x" ]; then + echo "<fc=#FF0000>ERR</fc>" +fi +for tmp in $OUT; do + if [ $tmp -gt 75 ]; then + echo -ne "<fc=#FF0000>$tmp</fc>°C" + elif [ $tmp -ge 65 ]; then + echo -ne "<fc=#FFFF00>$tmp</fc>°C" + elif [ $tmp -ge 50 ]; then + echo -ne "<fc=#00FF00>$tmp</fc>°C" else - echo "$OUT°C" + if [ "x$1" = "xmem" ]; then + echo -ne "$tmp% " + else + echo -ne "$tmp°C " + fi fi -fi +done @@ -0,0 +1,40 @@ +#include <stdio.h> +#include <X11/Xlib.h> +#include <X11/extensions/scrnsaver.h> + + +/* Report amount of X server idle time. */ +/* gcc xidle.c -o xidle -lX11 -lXext -lXss */ + +int main(int argc, char *argv[]) +{ + Display *display; + int event_base, error_base; + XScreenSaverInfo info; + float seconds; + unsigned int d_seconds = 0; + + if (argc == 2) { + d_seconds = atoi(argv[1]); + } + + display = XOpenDisplay(""); + + if (XScreenSaverQueryExtension(display, &event_base, &error_base)) { + XScreenSaverQueryInfo(display, DefaultRootWindow(display), &info); + + seconds = (float)info.idle/1000.0f; + if ( d_seconds > 0 ) { + if (d_seconds <= (unsigned int) seconds) { + return 1; + } + } else { + printf("%f\n",seconds); + } + return 0; + } else { + fprintf(stderr,"Error: XScreenSaver Extension not present\n"); + return -1; + } +} + |