mirror of
https://git.suckless.org/dwm
synced 2024-12-27 03:16:32 +00:00
implemented dwm reading status text from stdin
This commit is contained in:
parent
6458d72572
commit
0e5c8198bc
6 changed files with 58 additions and 25 deletions
10
config.mk
10
config.mk
|
@ -14,12 +14,12 @@ VERSION = 0.0
|
||||||
LIBS = -L${PREFIX}/lib -L/usr/lib -lc -L${X11LIB} -lX11
|
LIBS = -L${PREFIX}/lib -L/usr/lib -lc -L${X11LIB} -lX11
|
||||||
|
|
||||||
# Linux/BSD
|
# 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}\"
|
# -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
|
# Solaris
|
||||||
|
|
15
dev.c
15
dev.c
|
@ -27,16 +27,14 @@ static Key key[] = {
|
||||||
{ Mod1Mask, XK_m, max, { 0 } },
|
{ Mod1Mask, XK_m, max, { 0 } },
|
||||||
{ Mod1Mask, XK_0, view, { .i = Tscratch } },
|
{ Mod1Mask, XK_0, view, { .i = Tscratch } },
|
||||||
{ Mod1Mask, XK_1, view, { .i = Tdev } },
|
{ Mod1Mask, XK_1, view, { .i = Tdev } },
|
||||||
{ Mod1Mask, XK_2, view, { .i = Tirc } },
|
{ Mod1Mask, XK_2, view, { .i = Twww } },
|
||||||
{ Mod1Mask, XK_3, view, { .i = Twww } },
|
{ Mod1Mask, XK_3, view, { .i = Twork } },
|
||||||
{ Mod1Mask, XK_4, view, { .i = Twork } },
|
|
||||||
{ Mod1Mask, XK_space, tiling, { 0 } },
|
{ Mod1Mask, XK_space, tiling, { 0 } },
|
||||||
{ Mod1Mask|ShiftMask, XK_space, floating, { 0 } },
|
{ Mod1Mask|ShiftMask, XK_space, floating, { 0 } },
|
||||||
{ Mod1Mask|ShiftMask, XK_0, ttrunc, { .i = Tscratch } },
|
{ Mod1Mask|ShiftMask, XK_0, ttrunc, { .i = Tscratch } },
|
||||||
{ Mod1Mask|ShiftMask, XK_1, ttrunc, { .i = Tdev } },
|
{ Mod1Mask|ShiftMask, XK_1, ttrunc, { .i = Tdev } },
|
||||||
{ Mod1Mask|ShiftMask, XK_2, ttrunc, { .i = Tirc } },
|
{ Mod1Mask|ShiftMask, XK_2, ttrunc, { .i = Twww } },
|
||||||
{ Mod1Mask|ShiftMask, XK_3, ttrunc, { .i = Twww } },
|
{ Mod1Mask|ShiftMask, XK_3, ttrunc, { .i = Twork } },
|
||||||
{ Mod1Mask|ShiftMask, XK_4, ttrunc, { .i = Twork } },
|
|
||||||
{ Mod1Mask|ShiftMask, XK_c, ckill, { 0 } },
|
{ Mod1Mask|ShiftMask, XK_c, ckill, { 0 } },
|
||||||
{ Mod1Mask|ShiftMask, XK_q, quit, { 0 } },
|
{ Mod1Mask|ShiftMask, XK_q, quit, { 0 } },
|
||||||
{ Mod1Mask|ShiftMask, XK_Return, spawn, { .argv = term } },
|
{ Mod1Mask|ShiftMask, XK_Return, spawn, { .argv = term } },
|
||||||
|
@ -44,9 +42,8 @@ static Key key[] = {
|
||||||
{ Mod1Mask|ShiftMask, XK_l, spawn, { .argv = xlock } },
|
{ Mod1Mask|ShiftMask, XK_l, spawn, { .argv = xlock } },
|
||||||
{ ControlMask, XK_0, tappend, { .i = Tscratch } },
|
{ ControlMask, XK_0, tappend, { .i = Tscratch } },
|
||||||
{ ControlMask, XK_1, tappend, { .i = Tdev } },
|
{ ControlMask, XK_1, tappend, { .i = Tdev } },
|
||||||
{ ControlMask, XK_2, tappend, { .i = Tirc } },
|
{ ControlMask, XK_2, tappend, { .i = Twww } },
|
||||||
{ ControlMask, XK_3, tappend, { .i = Twww } },
|
{ ControlMask, XK_3, tappend, { .i = Twork } },
|
||||||
{ ControlMask, XK_4, tappend, { .i = Twork } },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/********** CUSTOMIZE **********/
|
/********** CUSTOMIZE **********/
|
||||||
|
|
16
dwm.1
16
dwm.1
|
@ -81,4 +81,18 @@ Append
|
||||||
.B nth
|
.B nth
|
||||||
tag to cureent
|
tag to cureent
|
||||||
.B window
|
.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
|
||||||
|
|
4
dwm.h
4
dwm.h
|
@ -9,13 +9,13 @@
|
||||||
|
|
||||||
#define FONT "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*"
|
#define FONT "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*"
|
||||||
#define BGCOLOR "#666699"
|
#define BGCOLOR "#666699"
|
||||||
#define FGCOLOR "#ffffff"
|
#define FGCOLOR "#eeeeee"
|
||||||
#define BORDERCOLOR "#9999CC"
|
#define BORDERCOLOR "#9999CC"
|
||||||
#define MASTERW 52 /* percent */
|
#define MASTERW 52 /* percent */
|
||||||
#define WM_PROTOCOL_DELWIN 1
|
#define WM_PROTOCOL_DELWIN 1
|
||||||
|
|
||||||
/* tags */
|
/* tags */
|
||||||
enum { Tscratch, Tdev, Tirc, Twww, Twork, TLast };
|
enum { Tscratch, Tdev, Twww, Twork, TLast };
|
||||||
|
|
||||||
/********** CUSTOMIZE **********/
|
/********** CUSTOMIZE **********/
|
||||||
|
|
||||||
|
|
4
dwm.html
4
dwm.html
|
@ -69,7 +69,7 @@
|
||||||
clients.
|
clients.
|
||||||
</li>
|
</li>
|
||||||
<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,
|
date, load, battery charge). That's much simpler than larsremote,
|
||||||
wmiir and what not...
|
wmiir and what not...
|
||||||
</li>
|
</li>
|
||||||
|
@ -83,7 +83,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
<h3>Screenshot</h3>
|
<h3>Screenshot</h3>
|
||||||
<p>
|
<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>
|
</p>
|
||||||
<h3>Development</h3>
|
<h3>Development</h3>
|
||||||
<p>
|
<p>
|
||||||
|
|
34
main.c
34
main.c
|
@ -3,10 +3,12 @@
|
||||||
* See LICENSE file for license details.
|
* See LICENSE file for license details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
#include <X11/cursorfont.h>
|
#include <X11/cursorfont.h>
|
||||||
#include <X11/Xatom.h>
|
#include <X11/Xatom.h>
|
||||||
|
@ -19,7 +21,6 @@
|
||||||
char *tags[TLast] = {
|
char *tags[TLast] = {
|
||||||
[Tscratch] = "scratch",
|
[Tscratch] = "scratch",
|
||||||
[Tdev] = "dev",
|
[Tdev] = "dev",
|
||||||
[Tirc] = "irc",
|
|
||||||
[Twww] = "www",
|
[Twww] = "www",
|
||||||
[Twork] = "work",
|
[Twork] = "work",
|
||||||
};
|
};
|
||||||
|
@ -185,13 +186,13 @@ quit(Arg *arg)
|
||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int i;
|
int i, n;
|
||||||
|
fd_set rd;
|
||||||
XSetWindowAttributes wa;
|
XSetWindowAttributes wa;
|
||||||
unsigned int mask;
|
unsigned int mask;
|
||||||
Window w;
|
Window w;
|
||||||
XEvent ev;
|
XEvent ev;
|
||||||
|
|
||||||
/* command line args */
|
|
||||||
for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {
|
for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {
|
||||||
switch (argv[i][1]) {
|
switch (argv[i][1]) {
|
||||||
case 'v':
|
case 'v':
|
||||||
|
@ -278,10 +279,31 @@ main(int argc, char *argv[])
|
||||||
scan_wins();
|
scan_wins();
|
||||||
draw_bar();
|
draw_bar();
|
||||||
|
|
||||||
|
/* main event loop, reads status text from stdin as well */
|
||||||
while(running) {
|
while(running) {
|
||||||
XNextEvent(dpy, &ev);
|
FD_ZERO(&rd);
|
||||||
if(handler[ev.type])
|
FD_SET(0, &rd);
|
||||||
(handler[ev.type])(&ev); /* call handler */
|
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();
|
cleanup();
|
||||||
|
|
Loading…
Reference in a new issue