Compare commits
70 Commits
Author | SHA1 | Date | |
---|---|---|---|
26445a0dc9 | |||
b5068e32e9 | |||
f099d2d5b5 | |||
80a9da555e | |||
d21026f0a1 | |||
e5a1e77351 | |||
8262d9e663 | |||
90af1ced3c | |||
5ccd42f807 | |||
1586b7a02d | |||
2420071f4c | |||
04c26574b8 | |||
b1a28ae1da | |||
f68a01cd76 | |||
2b625eb73e | |||
0f1f30daca | |||
dec4850d05 | |||
0de4197cc5 | |||
a372248b80 | |||
69e7d7dfd3 | |||
c99fe7dd7d | |||
d6670a800d | |||
6288c44697 | |||
d5c5c52b30 | |||
d0b4575bf4 | |||
03518ce49e | |||
cd8bb06af5 | |||
3150a8a1be | |||
b3c5f5435a | |||
a692bdcf2b | |||
d83454f6b7 | |||
27b0142203 | |||
867ba36030 | |||
e83f36db10 | |||
212f417e44 | |||
3a392b8558 | |||
92fe06b501 | |||
6cf29bff33 | |||
60c06a7cb4 | |||
1147546122 | |||
d384cee751 | |||
5c710cf89c | |||
8a111c181e | |||
2255bf46a0 | |||
04797343db | |||
e7d41cc188 | |||
22d8818850 | |||
6784429c3c | |||
37fea84de8 | |||
c14d293e51 | |||
79b1657a19 | |||
d24837f1ad | |||
3c2d303c0e | |||
1e20a0f78a | |||
96f9855248 | |||
3c48858ffa | |||
dd46d5b588 | |||
0bc4e41ebd | |||
703c4dd253 | |||
b68528d85d | |||
a644baf674 | |||
c1f8688bfa | |||
bea4dd2490 | |||
83d10be1c1 | |||
1529058f27 | |||
36311d88af | |||
f1a2a3c850 | |||
ee734fae6b | |||
62d3caa999 | |||
4c9b397ff9 |
3
.hgtags
3
.hgtags
@ -67,3 +67,6 @@ e47a47bd3ed42fd3cf023572147b75ebc2adef82 5.6.1
|
|||||||
48c3f87c335d6606e55fbae97267fa6b39ca56e0 5.7.1
|
48c3f87c335d6606e55fbae97267fa6b39ca56e0 5.7.1
|
||||||
15761ac5e2f1e9010900f891616a24a22d82f128 5.7.2
|
15761ac5e2f1e9010900f891616a24a22d82f128 5.7.2
|
||||||
60ea8fed13ab750c6717f2764cbf9c13bb6f0d0a 5.8
|
60ea8fed13ab750c6717f2764cbf9c13bb6f0d0a 5.8
|
||||||
|
1ed1e75c9c2e395a2c475b52657a430bd95070c7 5.8.1
|
||||||
|
a043f08008051ca02ae87eb170cd066d8c8315a0 5.8.2
|
||||||
|
dd74622a4785e55658b05b36834fa0c41084a8c1 5.9
|
||||||
|
28
BUGS
28
BUGS
@ -8,34 +8,6 @@ reproducible with xrandr -s but not with --output and --mode, strange
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
> enternotify is handled even when the entered window is already focused
|
|
||||||
> (eg moving the mouse to the bar and back, scrolling on the border..)
|
|
||||||
>
|
|
||||||
> focusing might be expensive for some clients (eg dim/light up)
|
|
||||||
>
|
|
||||||
> a possible solution is to modify enternotify:
|
|
||||||
>
|
|
||||||
> + c = wintoclient(ev->window);
|
|
||||||
> if((m = wintomon(ev->window)) && m != selmon) {
|
|
||||||
> unfocus(selmon->sel);
|
|
||||||
> selmon = m;
|
|
||||||
> }
|
|
||||||
> + else if (c == selmon->sel || c == NULL)
|
|
||||||
> + return;
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
> another corner case:
|
|
||||||
|
|
||||||
a tiled client can be resized with mod+right click, but it only works
|
|
||||||
on the main monitor
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
dmenu appears on the monitor where the pointer is and not on selmon
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
yet another corner case:
|
yet another corner case:
|
||||||
open a terminal, focus another monitor, but without moving the mouse
|
open a terminal, focus another monitor, but without moving the mouse
|
||||||
pointer there
|
pointer there
|
||||||
|
9
LICENSE
9
LICENSE
@ -1,16 +1,17 @@
|
|||||||
MIT/X Consortium License
|
MIT/X Consortium License
|
||||||
|
|
||||||
© 2006-2010 Anselm R Garbe <anselm@garbe.us>
|
© 2006-2011 Anselm R Garbe <anselm@garbe.us>
|
||||||
© 2006-2007 Sander van Dijk <a dot h dot vandijk at gmail dot com>
|
© 2007-2011 Peter Hartlich <sgkkr at hartlich dot com>
|
||||||
|
© 2010-2011 Connor Lane Smith <cls@lubutu.com>
|
||||||
© 2006-2009 Jukka Salmi <jukka at salmi dot ch>
|
© 2006-2009 Jukka Salmi <jukka at salmi dot ch>
|
||||||
© 2007-2009 Premysl Hruby <dfenze at gmail dot com>
|
© 2007-2009 Premysl Hruby <dfenze at gmail dot com>
|
||||||
© 2007-2009 Szabolcs Nagy <nszabolcs at gmail dot com>
|
© 2007-2009 Szabolcs Nagy <nszabolcs at gmail dot com>
|
||||||
© 2007-2009 Christof Musik <christof at sendfax dot de>
|
© 2007-2009 Christof Musik <christof at sendfax dot de>
|
||||||
|
© 2009 Mate Nagy <mnagy at port70 dot net>
|
||||||
© 2007-2008 Enno Gottox Boland <gottox at s01 dot de>
|
© 2007-2008 Enno Gottox Boland <gottox at s01 dot de>
|
||||||
© 2007-2008 Peter Hartlich <sgkkr at hartlich dot com>
|
|
||||||
© 2008 Martin Hurton <martin dot hurton at gmail dot com>
|
© 2008 Martin Hurton <martin dot hurton at gmail dot com>
|
||||||
© 2008 Neale Pickett <neale dot woozle dot org>
|
© 2008 Neale Pickett <neale dot woozle dot org>
|
||||||
© 2009 Mate Nagy <mnagy@port70.net>
|
© 2006-2007 Sander van Dijk <a dot h dot vandijk at gmail dot com>
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
5
README
5
README
@ -38,10 +38,9 @@ the DISPLAY environment variable is set correctly, e.g.:
|
|||||||
In order to display status info in the bar, you can do something
|
In order to display status info in the bar, you can do something
|
||||||
like this in your .xinitrc:
|
like this in your .xinitrc:
|
||||||
|
|
||||||
while true
|
while xsetroot -name "`date` `uptime | sed 's/.*,//'`"
|
||||||
do
|
do
|
||||||
xsetroot -name "`date` `uptime | sed 's/.*,//'`"
|
sleep 1
|
||||||
sleep 1
|
|
||||||
done &
|
done &
|
||||||
exec dwm
|
exec dwm
|
||||||
|
|
||||||
|
4
TODO
Normal file
4
TODO
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
- add a flag to Key to execute the command on release (needed for commands
|
||||||
|
affecting the keyboard grab, see scrot -s for example)
|
||||||
|
- add updategeom() hook for external tools like dzen
|
||||||
|
- consider onscreenkeyboard hooks for tablet deployment
|
15
config.def.h
15
config.def.h
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
/* appearance */
|
/* appearance */
|
||||||
static const char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
|
static const char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
|
||||||
static const char normbordercolor[] = "#cccccc";
|
static const char normbordercolor[] = "#444444";
|
||||||
static const char normbgcolor[] = "#cccccc";
|
static const char normbgcolor[] = "#222222";
|
||||||
static const char normfgcolor[] = "#000000";
|
static const char normfgcolor[] = "#bbbbbb";
|
||||||
static const char selbordercolor[] = "#0066ff";
|
static const char selbordercolor[] = "#005577";
|
||||||
static const char selbgcolor[] = "#0066ff";
|
static const char selbgcolor[] = "#005577";
|
||||||
static const char selfgcolor[] = "#ffffff";
|
static const char selfgcolor[] = "#eeeeee";
|
||||||
static const unsigned int borderpx = 1; /* border pixel of windows */
|
static const unsigned int borderpx = 1; /* border pixel of windows */
|
||||||
static const unsigned int snap = 32; /* snap pixel */
|
static const unsigned int snap = 32; /* snap pixel */
|
||||||
static const Bool showbar = True; /* False means no bar */
|
static const Bool showbar = True; /* False means no bar */
|
||||||
@ -24,6 +24,7 @@ static const Rule rules[] = {
|
|||||||
|
|
||||||
/* layout(s) */
|
/* layout(s) */
|
||||||
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
|
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
|
||||||
|
static const int nmaster = 1; /* number of clients in master area */
|
||||||
static const Bool resizehints = True; /* True means respect size hints in tiled resizals */
|
static const Bool resizehints = True; /* True means respect size hints in tiled resizals */
|
||||||
|
|
||||||
static const Layout layouts[] = {
|
static const Layout layouts[] = {
|
||||||
@ -55,6 +56,8 @@ static Key keys[] = {
|
|||||||
{ MODKEY, XK_b, togglebar, {0} },
|
{ MODKEY, XK_b, togglebar, {0} },
|
||||||
{ MODKEY, XK_j, focusstack, {.i = +1 } },
|
{ MODKEY, XK_j, focusstack, {.i = +1 } },
|
||||||
{ MODKEY, XK_k, focusstack, {.i = -1 } },
|
{ MODKEY, XK_k, focusstack, {.i = -1 } },
|
||||||
|
{ MODKEY, XK_i, incnmaster, {.i = +1 } },
|
||||||
|
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
|
||||||
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
|
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
|
||||||
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
|
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
|
||||||
{ MODKEY, XK_Return, zoom, {0} },
|
{ MODKEY, XK_Return, zoom, {0} },
|
||||||
|
10
config.mk
10
config.mk
@ -1,5 +1,5 @@
|
|||||||
# dwm version
|
# dwm version
|
||||||
VERSION = 5.8.1
|
VERSION = 6.0
|
||||||
|
|
||||||
# Customize below to fit your system
|
# Customize below to fit your system
|
||||||
|
|
||||||
@ -20,10 +20,10 @@ LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${XINERAMALIBS}
|
|||||||
|
|
||||||
# flags
|
# flags
|
||||||
CPPFLAGS = -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
|
CPPFLAGS = -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
|
||||||
CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
|
#CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
|
||||||
#CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
|
CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
|
||||||
LDFLAGS = -g ${LIBS}
|
#LDFLAGS = -g ${LIBS}
|
||||||
#LDFLAGS = -s ${LIBS}
|
LDFLAGS = -s ${LIBS}
|
||||||
|
|
||||||
# Solaris
|
# Solaris
|
||||||
#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
|
#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
|
||||||
|
10
dwm.1
10
dwm.1
@ -92,12 +92,18 @@ Focus next window.
|
|||||||
.B Mod1\-k
|
.B Mod1\-k
|
||||||
Focus previous window.
|
Focus previous window.
|
||||||
.TP
|
.TP
|
||||||
.B Mod1\-h
|
.B Mod1\-i
|
||||||
Decrease master area size.
|
Increase clients in master area.
|
||||||
|
.TP
|
||||||
|
.B Mod1\-d
|
||||||
|
Decrease clients in master area.
|
||||||
.TP
|
.TP
|
||||||
.B Mod1\-l
|
.B Mod1\-l
|
||||||
Increase master area size.
|
Increase master area size.
|
||||||
.TP
|
.TP
|
||||||
|
.B Mod1\-h
|
||||||
|
Decrease master area size.
|
||||||
|
.TP
|
||||||
.B Mod1\-Return
|
.B Mod1\-Return
|
||||||
Zooms/cycles focused window to/from master area (tiled layouts only).
|
Zooms/cycles focused window to/from master area (tiled layouts only).
|
||||||
.TP
|
.TP
|
||||||
|
42
transient.c
Normal file
42
transient.c
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
/* cc transient.c -o transient -lX11 */
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
#include <X11/Xutil.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
Display *d;
|
||||||
|
Window r, f, t = None;
|
||||||
|
XSizeHints h;
|
||||||
|
XEvent e;
|
||||||
|
|
||||||
|
d = XOpenDisplay(NULL);
|
||||||
|
if (!d)
|
||||||
|
exit(1);
|
||||||
|
r = DefaultRootWindow(d);
|
||||||
|
|
||||||
|
f = XCreateSimpleWindow(d, r, 100, 100, 400, 400, 0, 0, 0);
|
||||||
|
h.min_width = h.max_width = h.min_height = h.max_height = 400;
|
||||||
|
h.flags = PMinSize | PMaxSize;
|
||||||
|
XSetWMNormalHints(d, f, &h);
|
||||||
|
XStoreName(d, f, "floating");
|
||||||
|
XMapWindow(d, f);
|
||||||
|
|
||||||
|
XSelectInput(d, f, ExposureMask);
|
||||||
|
while (1) {
|
||||||
|
XNextEvent(d, &e);
|
||||||
|
|
||||||
|
if (t == None) {
|
||||||
|
sleep(5);
|
||||||
|
t = XCreateSimpleWindow(d, r, 50, 50, 100, 100, 0, 0, 0);
|
||||||
|
XSetTransientForHint(d, t, f);
|
||||||
|
XStoreName(d, t, "transient");
|
||||||
|
XMapWindow(d, t);
|
||||||
|
XSelectInput(d, t, ExposureMask);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
XCloseDisplay(d);
|
||||||
|
exit(0);
|
||||||
|
}
|
Reference in New Issue
Block a user