Compare commits

...

112 Commits
5.6.1 ... 6.0

Author SHA1 Message Date
26445a0dc9 bump version to 6.0 2011-12-19 15:38:30 +01:00
b5068e32e9 add sloppy monitor focus 2011-11-15 20:16:58 +01:00
f099d2d5b5 new default colour scheme 2011-11-06 20:36:23 +01:00
80a9da555e calculate window/monitor intersection 2011-11-06 20:31:29 +01:00
d21026f0a1 honour fullscreen hint on map 2011-11-06 20:30:06 +01:00
e5a1e77351 testing Brians multiscreen issue fix 2011-11-04 20:02:35 +01:00
8262d9e663 make ewmh dialog windows float 2011-11-02 12:01:28 +00:00
90af1ced3c allow 0 nmaster 2011-10-31 20:09:27 +01:00
5ccd42f807 fix big-border corner case 2011-10-30 12:14:34 +01:00
1586b7a02d added keyrelease remark to TODO 2011-10-29 10:57:27 +02:00
2420071f4c improve tile spacing 2011-10-28 23:45:12 +01:00
04c26574b8 add nmaster binds to manpage 2011-10-26 12:16:25 +01:00
b1a28ae1da apply nmaster patch 2011-10-25 20:40:46 +01:00
f68a01cd76 apply resize hints in floating layout 2011-10-25 20:08:08 +01:00
2b625eb73e hide clients to the left, not the right 2011-10-25 20:01:18 +01:00
0f1f30daca applied Connors cleanup patch of Eckehards proposed fix of applyrules(), thanks everyone involved 2011-08-15 18:44:12 +02:00
dec4850d05 applied Connors and Valentins patch to improve the unmapnotify handling of broken clients 2011-08-08 16:55:06 +00:00
0de4197cc5 applied Peter Hartlichs nice interim Xinerama and map fix patches, for debugging purposes I also added his transient test driver 2011-07-29 20:01:22 +02:00
a372248b80 applied anonymous code cleanup patch 2011-07-27 19:59:10 +02:00
69e7d7dfd3 added a marker for the flash fullscreen issue 2011-07-24 10:41:43 +01:00
c99fe7dd7d changed sleep 20 into sleep 1 in example script as suggested by Snader_LB 2011-07-20 18:56:10 +00:00
d6670a800d applied Connors aesthitic buf fix in tile(), thanks 2011-07-20 18:45:40 +00:00
6288c44697 applied Peters magic float mode bugfix 2011-07-20 18:36:15 +00:00
d5c5c52b30 applied lolilolicon's floating center patch, further investigation wrt his second issue reported needed 2011-07-20 18:33:19 +00:00
d0b4575bf4 thanks to recursions on IRC for his remark 2011-07-20 18:30:51 +00:00
03518ce49e Added tag 5.9 for changeset dd74622a4785 2011-07-10 21:25:23 +01:00
cd8bb06af5 enabled release flags 2011-07-10 21:24:17 +01:00
3150a8a1be applied Peters wintoclient/wintomon optimisation in enternotify() 2011-07-10 21:22:22 +01:00
b3c5f5435a removed unneeded offset recalculation, thanks Jukka, let's see if this breaks some other client 2011-07-10 21:18:50 +01:00
a692bdcf2b undo the focus optimisation patch for 5.9 2011-07-10 21:12:05 +01:00
d83454f6b7 applied Peters two patches, please test hg tip, if nothing breaks this is 5.9 2011-07-09 07:57:10 +01:00
27b0142203 applied Garys patch in a slightly modified way 2011-07-02 11:02:22 +02:00
867ba36030 applied Nicolas Capit's patch as interim solution until the multiscreen support is reworked in 6.0 2011-07-01 17:56:53 +01:00
e83f36db10 fixed scroll lock (thanks bogdan) 2011-06-27 20:12:42 +01:00
212f417e44 fix numlock (thanks mikhail) 2011-06-27 19:35:11 +01:00
3a392b8558 making enternotify less focus hungry 2011-06-25 09:07:28 +01:00
92fe06b501 applied Andreas Amann's patch from Oct 2010, thanks 2011-06-24 21:02:32 +01:00
6cf29bff33 applied Rudys barwidth patch, thanks Rudy 2011-06-17 20:22:54 +01:00
60c06a7cb4 don't check for monocle layout in zoom() exit condition 2011-06-14 22:28:16 +01:00
1147546122 Thanks for the pedantic review :) 2011-06-14 05:51:21 +01:00
d384cee751 fixing some minor issues, next week is dwm-5.9 release time 2011-06-11 08:33:20 +01:00
5c710cf89c rm draw.c from 5.9 branch 2011-06-04 23:02:00 +01:00
8a111c181e fix typo 2011-06-04 10:18:54 +01:00
2255bf46a0 cleaner drawing 2011-06-04 10:17:25 +01:00
04797343db update draw.c 2011-05-21 20:26:26 +01:00
e7d41cc188 added draw.h, draw.c 2011-05-20 19:10:26 +01:00
22d8818850 applied Evil_Bobs cleanup patch 2011-05-12 14:16:33 +00:00
6784429c3c applied another minor change to the README 2011-04-27 15:55:18 +00:00
37fea84de8 applied Thomas' README patch 2011-04-27 12:38:59 +00:00
c14d293e51 applied Jack's mplayer fullscreen patch 2011-04-26 08:13:39 +00:00
79b1657a19 missed declaration 2011-04-15 08:13:06 +00:00
d24837f1ad minor fix of the NetActiveWindow multi-monitor flaw, slight rearrangement 2011-04-15 08:12:20 +00:00
3c2d303c0e applied Peter/Andreas NetActiveWindow patch in a slightly modified version 2011-04-14 13:46:25 +00:00
1e20a0f78a applied Brendan MacDonell's WM_TAKE_FOCUS patch, thanks Brendan! 2011-04-12 20:19:32 +00:00
96f9855248 applied another patch of Hiltjo, thanks 2011-03-25 14:06:46 +00:00
3c48858ffa applied Hiltjos' BUGS patch from 23 Mar, sorry took a while :) 2011-03-25 13:57:54 +00:00
dd46d5b588 applied Hiltjo's multimon mouse-based resize fix 2011-03-23 08:58:57 +00:00
0bc4e41ebd applied anonymous patch, I don't think the reversed array access has semantic side-effects 2011-01-07 16:05:22 +00:00
703c4dd253 added a todo 2010-12-02 10:16:47 +00:00
b68528d85d applied Hiltjo's cleanup patch 2010-11-19 11:53:59 +00:00
a644baf674 applied Hiltjo's tiny cleanup fix 2010-09-27 07:53:44 +00:00
c1f8688bfa applied Hiltjo's tiny cleanup patch, thanks! 2010-09-25 13:39:08 +00:00
bea4dd2490 does this make a difference? 2010-09-11 19:00:18 +00:00
83d10be1c1 added TODO and bumped version to 5.9 2010-08-24 13:13:20 +01:00
1529058f27 applied Hiltjo Posthuma's line saver patch 2010-08-23 17:25:53 +01:00
36311d88af applied Hiltjo Posthuma's double-XineramaQueryScreens() patch, thanks Hiltjo! 2010-07-25 09:58:25 +01:00
f1a2a3c850 Added tag 5.8.2 for changeset a043f0800805 2010-06-04 11:41:16 +01:00
ee734fae6b increased version 2010-05-30 10:03:09 +01:00
62d3caa999 implemented better fullscreen handling, please test 2010-05-30 10:02:56 +01:00
4c9b397ff9 Added tag 5.8.1 for changeset 1ed1e75c9c2e 2010-05-29 12:48:18 +01:00
5c6545adf5 removing Sylvain's patch because it breaks more than it fixes unfortunately, re-issuing a bugfix release 5.8.1 2010-05-29 12:48:11 +01:00
a704b1ee34 Added tag 5.8 for changeset 60ea8fed13ab 2010-05-28 11:43:44 +01:00
f83d61dfe8 removed DEBUG code and added 2010 to the copyright list 2010-05-27 08:20:42 +01:00
c6180949a7 applied Sylvain Laurent's EWMH fullscreen state patch, simplified his patch a bit 2010-05-27 08:19:08 +01:00
1973ab0643 added the related bug reported by voltaic 2010-04-11 18:42:32 +01:00
427053f8d1 pretty printing bugs a bit 2010-04-01 22:34:46 +01:00
a88e0373ef selmon optimisation is needed 2010-04-01 19:39:24 +01:00
aa9f2be24e more debug output, experimental focus optimisation 2010-04-01 00:14:15 +01:00
c53b29e60b quick typo fix 2010-03-31 23:27:30 +01:00
d6bdd03d91 it's debug season for upcoming dwm 5.8, so only use this if you really want to run experimental code or debug code 2010-03-31 23:24:22 +01:00
1144e98394 another bug report 2009-11-25 13:56:17 +00:00
7671d03a90 removed misleading comment, thanks Romain Bertrand 2009-11-24 09:31:17 +00:00
bc554d45d8 added nsz's last bug corner case 2009-11-23 08:13:18 +00:00
ac4caea921 added BUGS, next version is 5.8 2009-10-31 11:45:56 +00:00
161f2d921b Added tag 5.7.2 for changeset 15761ac5e2f1 2009-09-27 20:20:14 +01:00
210378f198 applied Ryan Zheng's patch and re-releasing 5.7.2 2009-09-27 20:20:10 +01:00
7879616a75 Added tag 5.7.1 for changeset 48c3f87c335d 2009-09-27 10:31:20 +01:00
9e8dd3479d fixed the layout symbol bug reported by Nibble (but using a different approach as he suggested)
- optimised drawbar() and arrange() handling for multiple monitors, arrange only arranges the relevant monitors when applicable, same with drawbar
- need to release 5.7.1
2009-09-27 10:31:14 +01:00
0b72be924d Added tag 5.7 for changeset 257403d4cd96 2009-09-26 19:52:04 +01:00
91e902f7fe switching to release flags 2009-09-22 20:34:03 +01:00
30fed9a211 implemented nn < n case, k-zed please recheck 2009-09-22 20:33:42 +01:00
c45d46ad9a use buffer instead of pointer for mon->ltsymbol 2009-09-22 09:53:11 +01:00
6f55de8310 added missing scan 2009-09-22 09:16:48 +01:00
07ad298133 implemented different version of updategeom 2009-09-21 19:51:17 +01:00
f0a4845e7d added TODO to updategeom in order to implement a decent version of it soon 2009-09-19 11:52:16 +01:00
82ec7a7ed4 new experimental updategeom() additions that should avoid several problems with Xinerama, this is EXPERIMENTAL and might break something, the algorithms in use are quite complex and cumbersome, patches and comments welcome 2009-09-18 21:18:00 +01:00
e7300e0f6f implemented dynamic layout symbol stuff 2009-09-16 15:59:54 +01:00
c3feffa1e2 applied Tony Lainson's config.def.h patch 2009-09-15 13:50:41 +01:00
956a430054 update 2009-09-08 13:33:58 +01:00
01056b6636 hard-core destruction 2009-09-08 13:30:18 +01:00
eb260b1a41 renaming isdestroyed into destroyed 2009-09-08 13:18:05 +01:00
7fe81359d4 sync when a client is being killed 2009-09-08 13:16:54 +01:00
a3a859b4e9 added isdestroyed flag to unmanage 2009-09-08 13:13:03 +01:00
9c066c24b3 always updategeom when root is configured 2009-09-07 11:46:02 +02:00
0a668922a4 another small optimisation 2009-08-18 15:59:38 +01:00
5762964232 also update title if the client is on an unfocused monitor 2009-08-18 15:42:55 +01:00
cba6b211c2 applied nsz's dwm.1 patch, also added wmname 2009-08-16 21:39:24 +01:00
42750a621b applied Jukka's cosmetic patch 2009-08-16 08:18:54 +01:00
8ef465d592 applied Jukka's sigchld patch 2009-08-16 08:18:25 +01:00
33fe200b52 added merged patch of anydot and Neale 2009-08-13 10:45:59 +01:00
91fffb3f7d fixed nn declaration 2009-07-27 12:01:58 +01:00
1fa31efebf Added tag 5.6.1 for changeset e47a47bd3ed4 2009-07-26 14:02:28 +01:00
10 changed files with 739 additions and 416 deletions

View File

@ -62,3 +62,11 @@ e4bcaca8e6ef13d2c3b81f1218ad15e5da4d68bd 5.2
85a78d8afa0fe8b106a8223b5327e5bddb5dd5e3 5.4.1
deaa276abac17ca08fbeb936916e4c8292d293a4 5.5
5550702215773aad462f22a774dced9b87437c51 5.6
e47a47bd3ed42fd3cf023572147b75ebc2adef82 5.6.1
257403d4cd962cac03344a871ea56cc742bae38e 5.7
48c3f87c335d6606e55fbae97267fa6b39ca56e0 5.7.1
15761ac5e2f1e9010900f891616a24a22d82f128 5.7.2
60ea8fed13ab750c6717f2764cbf9c13bb6f0d0a 5.8
1ed1e75c9c2e395a2c475b52657a430bd95070c7 5.8.1
a043f08008051ca02ae87eb170cd066d8c8315a0 5.8.2
dd74622a4785e55658b05b36834fa0c41084a8c1 5.9

69
BUGS Normal file
View File

@ -0,0 +1,69 @@
---
18:17 < Biolunar> when i change my resolution in dwm (to a smaller one) and then back to the native, the top bar is not repainted. that's since 5.7.2, in 5.6 it worked fine
18:19 < Biolunar> is it just happening to me or a (known) bug?
18:24 < Biolunar> and in addition, mplayers fullscreen is limited to the small resolution after i changed it back to the native
reproducible with xrandr -s but not with --output and --mode, strange
---
yet another corner case:
open a terminal, focus another monitor, but without moving the mouse
pointer there
if there is no client on the other monitor to get the focus, then the
terminal will be unfocused but it will accept input
---
Donald Allen reported this:
starting emacs from dmenu in archlinux results in missing configure of emacs, but mod1-space or mod1-shift-space fix this problem. this problem is new and did not happen in 1.6 xorg servers
Starting emacs from xterm doesnt show this problem, he uses tag 8 for emacs
---
2009/12/7 Alexandr Krylovskiy <wing_AT_tversu.ru>:
> Fullscreen mode with flash applications (youtube, for example) doesn't
> work properly neither in tiled nor in floating mode.
> Fullscreen window closes immediately after opening.
This is a known bug (for some curiosity I received the same report via
privmail from 2 other people within one week, really strange).
The quick fix is commenting out the code in lines 817/818 in hg tip
dwm. I cannot confirm this has no side effects (I think it does) and I
will address this issue shortly with a real fix.
---
SDL seems to not like non-reparenting WMs:
> I would like to mention SDL problems, however SDL is not crucial to
> me anymore; people that really care about it should speak up and
> propose dwm / SDL patch or cooperation scheme in that matter.
Patching SDL, bugging them?
---
voltaic reports this:
When I use two monitors, one larger in resolution than the other, the
bar is drawn using the smaller x-dimension on both screens. I think
what's happening is that there are two bars drawn, but the short bar
is always on top of the long bar such that I can't see the information
under the short bar. If I switch to the small screen, hide the short
bar, and then switch to the large screen, the long bar is drawn
correctly.
A similar problem occurs when I have started dwm on a small resolution
monitor (laptop screen) and then I switch to a large external display.
When I do this, the bar itself is drawn for the original smaller
resolution, but the information to be printed on the bar is
right-aligned for a longer bar. So what I see is a bar that has the
right hand side of it cut-off. See attached screenshot.
I am using standard options for xrandr such as --output VGA1 --auto, etc.
---

11
LICENSE
View File

@ -1,16 +1,17 @@
MIT/X Consortium License
© 2006-2009 Anselm R Garbe <garbeam at gmail dot com>
© 2006-2007 Sander van Dijk <a dot h dot vandijk at gmail dot com>
© 2006-2007 Jukka Salmi <jukka at salmi dot ch>
© 2006-2011 Anselm R Garbe <anselm@garbe.us>
© 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>
© 2007-2009 Premysl Hruby <dfenze at gmail dot com>
© 2007-2009 Szabolcs Nagy <nszabolcs at gmail dot com>
© 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 Peter Hartlich <sgkkr at hartlich dot com>
© 2008 Martin Hurton <martin dot hurton at gmail dot com>
© 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
copy of this software and associated documentation files (the "Software"),

5
README
View File

@ -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
like this in your .xinitrc:
while true
while xsetroot -name "`date` `uptime | sed 's/.*,//'`"
do
xsetroot -name "`date` `uptime | sed 's/.*,//'`"
sleep 1
sleep 1
done &
exec dwm

4
TODO Normal file
View 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

View File

@ -1,13 +1,13 @@
/* See LICENSE file for copyright and license details. */
/* appearance */
static const char font[] = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";
static const char normbordercolor[] = "#cccccc";
static const char normbgcolor[] = "#cccccc";
static const char normfgcolor[] = "#000000";
static const char selbordercolor[] = "#0066ff";
static const char selbgcolor[] = "#0066ff";
static const char selfgcolor[] = "#ffffff";
static const char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
static const char normbordercolor[] = "#444444";
static const char normbgcolor[] = "#222222";
static const char normfgcolor[] = "#bbbbbb";
static const char selbordercolor[] = "#005577";
static const char selbgcolor[] = "#005577";
static const char selfgcolor[] = "#eeeeee";
static const unsigned int borderpx = 1; /* border pixel of windows */
static const unsigned int snap = 32; /* snap pixel */
static const Bool showbar = True; /* False means no bar */
@ -24,7 +24,8 @@ static const Rule rules[] = {
/* layout(s) */
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
static const Bool resizehints = True; /* False means respect size hints in tiled resizals */
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 Layout layouts[] = {
/* symbol arrange function */
@ -55,6 +56,8 @@ static Key keys[] = {
{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, 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_l, setmfact, {.f = +0.05} },
{ MODKEY, XK_Return, zoom, {0} },
@ -84,8 +87,7 @@ static Key keys[] = {
};
/* button definitions */
/* click can be a tag number (starting at 0),
* ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
/* click event mask button function argument */
{ ClkLtSymbol, 0, Button1, setlayout, {0} },

View File

@ -1,5 +1,5 @@
# dwm version
VERSION = 5.6.1
VERSION = 6.0
# Customize below to fit your system
@ -10,7 +10,7 @@ MANPREFIX = ${PREFIX}/share/man
X11INC = /usr/X11R6/include
X11LIB = /usr/X11R6/lib
# Xinerama, un-comment if you want it
# Xinerama
XINERAMALIBS = -L${X11LIB} -lXinerama
XINERAMAFLAGS = -DXINERAMA

41
dwm.1
View File

@ -20,14 +20,13 @@ Windows are grouped by tags. Each window can be tagged with one or multiple
tags. Selecting certain tags displays all windows with these tags.
.P
Each screen contains a small status bar which displays all available tags, the
layout, the number of visible windows, the title of the focused window, and the
text read from the root window name property, if the screen is focused. A
floating window is indicated with an empty square and a maximised floating
window is indicated with a filled square before the windows title. The
selected tags are indicated with a different color. The tags of the focused
window are indicated with a filled square in the top left corner. The tags
which are applied to one or more windows are indicated with an empty square in
the top left corner.
layout, the title of the focused window, and the text read from the root window
name property, if the screen is focused. A floating window is indicated with an
empty square and a maximised floating window is indicated with a filled square
before the windows title. The selected tags are indicated with a different
color. The tags of the focused window are indicated with a filled square in the
top left corner. The tags which are applied to one or more windows are
indicated with an empty square in the top left corner.
.P
dwm draws a small border around windows to indicate the focus state.
.SH OPTIONS
@ -93,12 +92,18 @@ Focus next window.
.B Mod1\-k
Focus previous window.
.TP
.B Mod1\-h
Decrease master area size.
.B Mod1\-i
Increase clients in master area.
.TP
.B Mod1\-d
Decrease clients in master area.
.TP
.B Mod1\-l
Increase master area size.
.TP
.B Mod1\-h
Decrease master area size.
.TP
.B Mod1\-Return
Zooms/cycles focused window to/from master area (tiled layouts only).
.TP
@ -149,11 +154,17 @@ code. This keeps it fast, secure and simple.
.SH BUGS
Java applications which use the XToolkit/XAWT backend may draw grey windows
only. The XToolkit/XAWT backend breaks ICCCM-compliance in recent JDK 1.5 and early
JDK 1.6 versions, because it assumes a reparenting window manager. As a workaround
you can use JDK 1.4 (which doesn't contain the XToolkit/XAWT backend) or you
can set the following environment variable (to use the older Motif
backend instead):
.BR AWT_TOOLKIT=MToolkit .
JDK 1.6 versions, because it assumes a reparenting window manager. Possible workarounds
are using JDK 1.4 (which doesn't contain the XToolkit/XAWT backend) or setting the
environment variable
.BR AWT_TOOLKIT=MToolkit
(to use the older Motif backend instead) or running
.B xprop -root -f _NET_WM_NAME 32a -set _NET_WM_NAME LG3D
or
.B wmname LG3D
(to pretend that a non-reparenting window manager is running that the
XToolkit/XAWT backend can recognize) or when using OpenJDK setting the environment variable
.BR _JAVA_AWT_WM_NONREPARENTING=1 .
.P
GTK 2.10.9+ versions contain a broken
.BR Save\-As

949
dwm.c

File diff suppressed because it is too large Load Diff

42
transient.c Normal file
View 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);
}