Skip to content
Snippets Groups Projects
Commit 0e5c8198 authored by Anselm R. Garbe's avatar Anselm R. Garbe
Browse files

implemented dwm reading status text from stdin

parent 6458d725
Branches
Tags
No related merge requests found
......@@ -14,12 +14,12 @@ VERSION = 0.0
LIBS = -L${PREFIX}/lib -L/usr/lib -lc -L${X11LIB} -lX11
# Linux/BSD
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} \
#CFLAGS = -Os -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \
# -DVERSION=\"${VERSION}\"
#LDFLAGS = -g ${LIBS}
#LDFLAGS = ${LIBS}
CFLAGS = -g -Wall -O2 -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \
-DVERSION=\"${VERSION}\"
LDFLAGS = -g ${LIBS}
# Solaris
......
......@@ -27,16 +27,14 @@ static Key key[] = {
{ 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 @@ static Key key[] = {
{ 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 **********/
......
......@@ -81,4 +81,18 @@ Append
.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
......@@ -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 **********/
......
......@@ -69,7 +69,7 @@
clients.
</li>
<li>
dwm reads from <b>stdin</b> to print arbirary status text (like the
dwm reads from <b>stdin</b> to print arbitrary status text (like the
date, load, battery charge). That's much simpler than larsremote,
wmiir and what not...
</li>
......@@ -83,7 +83,7 @@
</ul>
<h3>Screenshot</h3>
<p>
<a href="http://wmii.de/shots/dwm-20060713.png">Click here for a screenshot</a> (20060713)
<a href="http://wmii.de/shots/dwm-20060714.png">Click here for a screenshot</a> (20060714)
</p>
<h3>Development</h3>
<p>
......
......@@ -3,10 +3,12 @@
* See LICENSE file for license details.
*/
#include <errno.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <X11/cursorfont.h>
#include <X11/Xatom.h>
......@@ -19,7 +21,6 @@
char *tags[TLast] = {
[Tscratch] = "scratch",
[Tdev] = "dev",
[Tirc] = "irc",
[Twww] = "www",
[Twork] = "work",
};
......@@ -185,13 +186,13 @@ quit(Arg *arg)
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 @@ main(int argc, char *argv[])
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();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment