# HG changeset patch # User Anselm R. Garbe # Date 1152871053 -7200 # Node ID 5d4653de9a1cb37b2d5f14228801726a49847372 # Parent 1269bd127551a4b2b28089299b0f97397e7c17eb implemented dwm reading status text from stdin diff -r 1269bd127551 -r 5d4653de9a1c config.mk --- a/config.mk Fri Jul 14 10:34:07 2006 +0200 +++ b/config.mk Fri Jul 14 11:57:33 2006 +0200 @@ -14,12 +14,12 @@ LIBS = -L${PREFIX}/lib -L/usr/lib -lc -L${X11LIB} -lX11 # Linux/BSD -CFLAGS = -Os -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \ +#CFLAGS = -Os -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \ +# -DVERSION=\"${VERSION}\" +#LDFLAGS = ${LIBS} +CFLAGS = -g -Wall -O2 -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \ -DVERSION=\"${VERSION}\" -LDFLAGS = ${LIBS} -#CFLAGS = -g -Wall -O2 -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \ -# -DVERSION=\"${VERSION}\" -#LDFLAGS = -g ${LIBS} +LDFLAGS = -g ${LIBS} # Solaris diff -r 1269bd127551 -r 5d4653de9a1c dev.c --- a/dev.c Fri Jul 14 10:34:07 2006 +0200 +++ b/dev.c Fri Jul 14 11:57:33 2006 +0200 @@ -27,16 +27,14 @@ { Mod1Mask, XK_m, max, { 0 } }, { Mod1Mask, XK_0, view, { .i = Tscratch } }, { Mod1Mask, XK_1, view, { .i = Tdev } }, - { Mod1Mask, XK_2, view, { .i = Tirc } }, - { Mod1Mask, XK_3, view, { .i = Twww } }, - { Mod1Mask, XK_4, view, { .i = Twork } }, + { Mod1Mask, XK_2, view, { .i = Twww } }, + { Mod1Mask, XK_3, view, { .i = Twork } }, { Mod1Mask, XK_space, tiling, { 0 } }, { Mod1Mask|ShiftMask, XK_space, floating, { 0 } }, { Mod1Mask|ShiftMask, XK_0, ttrunc, { .i = Tscratch } }, { Mod1Mask|ShiftMask, XK_1, ttrunc, { .i = Tdev } }, - { Mod1Mask|ShiftMask, XK_2, ttrunc, { .i = Tirc } }, - { Mod1Mask|ShiftMask, XK_3, ttrunc, { .i = Twww } }, - { Mod1Mask|ShiftMask, XK_4, ttrunc, { .i = Twork } }, + { Mod1Mask|ShiftMask, XK_2, ttrunc, { .i = Twww } }, + { Mod1Mask|ShiftMask, XK_3, ttrunc, { .i = Twork } }, { Mod1Mask|ShiftMask, XK_c, ckill, { 0 } }, { Mod1Mask|ShiftMask, XK_q, quit, { 0 } }, { Mod1Mask|ShiftMask, XK_Return, spawn, { .argv = term } }, @@ -44,9 +42,8 @@ { Mod1Mask|ShiftMask, XK_l, spawn, { .argv = xlock } }, { ControlMask, XK_0, tappend, { .i = Tscratch } }, { ControlMask, XK_1, tappend, { .i = Tdev } }, - { ControlMask, XK_2, tappend, { .i = Tirc } }, - { ControlMask, XK_3, tappend, { .i = Twww } }, - { ControlMask, XK_4, tappend, { .i = Twork } }, + { ControlMask, XK_2, tappend, { .i = Twww } }, + { ControlMask, XK_3, tappend, { .i = Twork } }, }; /********** CUSTOMIZE **********/ diff -r 1269bd127551 -r 5d4653de9a1c dwm.1 --- a/dwm.1 Fri Jul 14 10:34:07 2006 +0200 +++ b/dwm.1 Fri Jul 14 11:57:33 2006 +0200 @@ -81,4 +81,18 @@ .B nth tag to cureent .B window - +.SS Default Mouse Bindings +.TP +.B Mod1-Button1 +Moves current +.B window +while dragging +.TP +.B Mod1-Button2 +Lowers current +.B window +.TP +.B Mod1-Button3 +Resizes current +.B window +while dragging diff -r 1269bd127551 -r 5d4653de9a1c dwm.h --- a/dwm.h Fri Jul 14 10:34:07 2006 +0200 +++ b/dwm.h Fri Jul 14 11:57:33 2006 +0200 @@ -9,13 +9,13 @@ #define FONT "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*" #define BGCOLOR "#666699" -#define FGCOLOR "#ffffff" +#define FGCOLOR "#eeeeee" #define BORDERCOLOR "#9999CC" #define MASTERW 52 /* percent */ #define WM_PROTOCOL_DELWIN 1 /* tags */ -enum { Tscratch, Tdev, Tirc, Twww, Twork, TLast }; +enum { Tscratch, Tdev, Twww, Twork, TLast }; /********** CUSTOMIZE **********/ diff -r 1269bd127551 -r 5d4653de9a1c dwm.html --- a/dwm.html Fri Jul 14 10:34:07 2006 +0200 +++ b/dwm.html Fri Jul 14 11:57:33 2006 +0200 @@ -69,7 +69,7 @@ clients.
  • - dwm reads from stdin to print arbirary status text (like the + dwm reads from stdin to print arbitrary status text (like the date, load, battery charge). That's much simpler than larsremote, wmiir and what not...
  • @@ -83,7 +83,7 @@

    Screenshot

    - Click here for a screenshot (20060713) + Click here for a screenshot (20060714)

    Development

    diff -r 1269bd127551 -r 5d4653de9a1c main.c --- a/main.c Fri Jul 14 10:34:07 2006 +0200 +++ b/main.c Fri Jul 14 11:57:33 2006 +0200 @@ -3,10 +3,12 @@ * See LICENSE file for license details. */ +#include #include #include #include #include +#include #include #include @@ -19,7 +21,6 @@ char *tags[TLast] = { [Tscratch] = "scratch", [Tdev] = "dev", - [Tirc] = "irc", [Twww] = "www", [Twork] = "work", }; @@ -185,13 +186,13 @@ int main(int argc, char *argv[]) { - int i; + int i, n; + fd_set rd; XSetWindowAttributes wa; unsigned int mask; Window w; XEvent ev; - /* command line args */ for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) { switch (argv[i][1]) { case 'v': @@ -278,10 +279,31 @@ scan_wins(); draw_bar(); + /* main event loop, reads status text from stdin as well */ while(running) { - XNextEvent(dpy, &ev); - if(handler[ev.type]) - (handler[ev.type])(&ev); /* call handler */ + FD_ZERO(&rd); + FD_SET(0, &rd); + FD_SET(ConnectionNumber(dpy), &rd); + + i = select(ConnectionNumber(dpy) + 1, &rd, 0, 0, 0); + if(i == -1 && errno == EINTR) + continue; + if(i < 0) + error("select failed\n"); + else if(i > 0) { + if(FD_ISSET(ConnectionNumber(dpy), &rd) && XPending(dpy) > 0) { + XNextEvent(dpy, &ev); + if(handler[ev.type]) + (handler[ev.type])(&ev); /* call handler */ + } + if(FD_ISSET(0, &rd)) { + i = n = 0; + while((i = getchar()) != '\n' && n < sizeof(stext) - 1) + stext[n++] = i; + stext[n] = 0; + draw_bar(); + } + } } cleanup();