1
0
mirror of git://git.suckless.org/dwm synced 2025-07-30 19:52:13 -07:00

Compare commits

...

141 Commits
4.8 ... 5.0

Author SHA1 Message Date
Anselm R Garbe
d8fad9bf7a branch merge 2008-06-17 11:20:18 +01:00
Anselm R Garbe
f25cc5678f tiled layout resizehints should be respected by default 2008-06-17 11:19:17 +01:00
Anselm R Garbe
5a92420fce restored y-coordinate fixing of client windows 2008-06-17 09:57:13 +01:00
arg@suckless.org
ae1d865ac0 s/tags ref/tags mask/ 2008-06-15 23:27:08 +02:00
Anselm R Garbe
1ce173402f updated man page regarding Mod1-m 2008-06-15 18:59:52 +01:00
Anselm R Garbe
a06b9193c7 minor fixes towards 5.0 2008-06-15 10:52:57 +01:00
Anselm R Garbe
43bb77a569 removed explicit warp in movemouse 2008-06-14 15:15:15 +01:00
Anselm R Garbe
e3da222c1e removed scroll-wheel based focussing on window title clicks 2008-06-14 11:25:42 +01:00
Anselm R Garbe
66608a60fe fix of swapped focusstack mouse buttons 2008-06-14 11:23:16 +01:00
Anselm R Garbe
b6aa84e51b removed the ButtonPressMask for root windows as well 2008-06-14 11:22:22 +01:00
Anselm R Garbe
9ff5143acb removed root window click handling 2008-06-14 11:21:50 +01:00
Anselm R Garbe
1edf6a7866 removed font and color definitions 2008-06-14 10:38:18 +01:00
Anselm R Garbe
4db2f44277 minor fix 2008-06-13 17:37:43 +01:00
Anselm R Garbe
1f1a132784 fixed tag click handling, however ClkRootWin doesn't work for me 2008-06-12 23:04:55 +01:00
Anselm R Garbe
512541bfbd update 2008-06-12 16:37:03 +01:00
Anselm R Garbe
709da0b858 some bugfixes of the patch application yesterday 2008-06-12 13:10:14 +01:00
Anselm R Garbe
5cd65f8cd8 integrated yiyus mouse.diff (though the bar click handling is slightly broken, I'm to tired to debug it now, yiyus could you please?) 2008-06-11 20:41:28 +01:00
Anselm R Garbe
e3838e8585 made Xinerama screen index customizable 2008-06-11 19:55:07 +01:00
Anselm R Garbe
016dca4f69 removed trailing spaces reported by Soleen 2008-06-11 19:47:20 +01:00
Anselm R Garbe
8f052596b2 crash fix 2008-06-11 19:42:24 +01:00
Anselm R Garbe
9463d5354b made lt visible again in config.def.h 2008-06-11 17:01:30 +01:00
Anselm R Garbe
d662f98d89 added nsz' patch 2008-06-11 14:10:18 +01:00
Anselm R Garbe
e5a965a274 added SHCMD support for pipe-based commands due the new spawn() versio 2008-06-11 13:20:17 +01:00
Anselm R Garbe
5d422bb1ce using foo layout during cleanup (suggested by Gottox), add Arg->v handling for togglelayout() suggested by anydot 2008-06-11 10:26:57 +01:00
Anselm R Garbe
38a43c2dcc lt will point to a foo-layout during cleanup now (Gottox' suggestion), and togglelayout respects Arg->v 2008-06-11 10:25:02 +01:00
Anselm R Garbe
c56533615f integrated Peter Hartlich's patch, removed const char *c from union, simplified togglelayout 2008-06-11 09:34:00 +01:00
Anselm R Garbe
a8e0772c4d applied anydot's patchset.diff 2008-06-11 09:12:06 +01:00
arg@suckless.org
98e7950be8 final version -- Gottox verified it using the test driver 2008-06-09 11:24:33 +02:00
arg@suckless.org
88e6eb4a3a revert of introduced problem 2008-06-09 11:05:20 +02:00
arg@suckless.org
0840c1367c applied nsz' textnw patch thank you 2008-06-09 10:26:01 +02:00
arg@suckless.org
077d3e435b updated the for-loop with Gottox' proposal 2008-06-09 10:05:40 +02:00
arg@suckless.org
d26b60b43e minor change 2008-06-06 11:49:31 +02:00
arg@suckless.org
32f36ab2d5 applied nsz's patches (many thanks!) 2008-06-04 11:49:46 +02:00
arg@suckless.org
08bcf721b4 small change to drawtext 2008-06-02 12:19:02 +02:00
Anselm R Garbe
fc578c57e4 fixed the tile() issue with xpdf 2008-06-01 17:51:22 +01:00
Anselm R Garbe
c8eaab21b6 using anydot's memcpy-approach in drawtext, however it still looks awkward to me 2008-06-01 17:41:15 +01:00
Anselm R Garbe
c26e22ccee Gottox' drawtext simplification 2008-06-01 11:58:19 +01:00
Anselm R Garbe
c2784e4a38 applied noviewprev.diff, fix.diff and unusedflags.diff 2008-06-01 10:54:02 +01:00
Anselm R Garbe
6e9387793b fix 2008-05-31 17:37:13 +01:00
Anselm R Garbe
92f3c181c3 lt->arrange in mfact 2008-05-31 17:05:28 +01:00
Anselm R Garbe
d589f7679a isfixed implies isfloating 2008-05-30 23:03:03 +01:00
Anselm R Garbe
75690c808d applied nibbles fixes, slightly modified 2008-05-29 18:42:53 +01:00
Anselm R Garbe
fde58d5e63 applied yiyus tip patch from tue 2008-05-29 18:22:51 +01:00
Anselm R Garbe
e1002745fa core dump fix in cleanup 2008-05-28 10:45:18 +01:00
Anselm R Garbe
940a4cc6c6 updated the initial comment to reflect the use of bit arrays 2008-05-26 11:43:51 +01:00
Anselm R Garbe
64243ab05b slight changes 2008-05-26 11:42:02 +01:00
Anselm R Garbe
32c5046635 removed bx and bw, unnecessary 2008-05-26 10:28:18 +01:00
Anselm R Garbe
6c8618f502 renamed domax into ismax 2008-05-26 10:13:51 +01:00
Anselm R Garbe
9189f7a12d simplified tile() 2008-05-26 10:10:33 +01:00
Anselm R Garbe
2d4faae522 removed Layout->updategeom, unnecessary 2008-05-26 09:54:34 +01:00
Anselm R Garbe
5d2385b636 removed TEXTW 2008-05-26 09:45:34 +01:00
Anselm R Garbe
0fe2e783e9 applied yiyus domax patch with slight modifications 2008-05-26 09:39:57 +01:00
Anselm R Garbe
cd3d83f571 replaced isvisible with a macro 2008-05-22 14:15:30 +01:00
Anselm R Garbe
0a9ef560c0 removed emallocz 2008-05-22 14:10:00 +01:00
Anselm R Garbe
0528a37c79 s/int/uint/ in config.h 2008-05-22 14:02:31 +01:00
Anselm R Garbe
56b2fece9e removed debug output, sanitized tag limit check 2008-05-22 13:35:45 +01:00
Anselm R Garbe
9f569fac74 setmfact argument was wrong 2008-05-22 12:00:50 +01:00
Anselm R Garbe
48d0c56eac Key.mod is uint, Client.[old]bw is int 2008-05-22 11:50:18 +01:00
Anselm R Garbe
825d6cb93a s/unsigned long/ulong/ 2008-05-22 11:16:23 +01:00
Anselm R Garbe
f852504014 s/nextunfloating/nexttiled/, changed zoom() behavior 2008-05-22 11:12:22 +01:00
Anselm R Garbe
c3fa9e879f s/unsigned int/uint/ 2008-05-22 11:10:08 +01:00
Anselm R Garbe
8e05f6c592 s/void */const void */ 2008-05-22 11:08:07 +01:00
Anselm R Garbe
39d1ecd5b0 applied Gottox bitmask + void *arg patch 2008-05-22 11:04:19 +01:00
anselm@anselm1
103fb58a44 some minor fixes 2008-05-19 20:29:57 +01:00
anselm@anselm1
5f55af40ae simplification 2008-05-19 20:13:24 +01:00
anselm@anselm1
f806a17692 reverted dist target in Makefile 2008-05-19 20:08:31 +01:00
anselm@anselm1
822101dd5b merged tile.c again into dwm.c 2008-05-19 20:07:12 +01:00
Anselm R Garbe
6bdef73a4f take bar into account 2008-05-19 17:27:30 +01:00
Anselm R Garbe
234b12eb73 be more polite to clients which like to appear outside the window area, but still on the screen 2008-05-19 17:23:49 +01:00
Anselm R Garbe
bd4deaebfc fixed comment 2008-05-19 15:36:45 +01:00
Anselm R Garbe
499315c22c fix 2008-05-19 15:09:16 +01:00
Anselm R Garbe
f22d047d41 make it easier for the user, if Xinerama support is given, always use the screen 0 as window area/bar area, everything else can be used for floating clients 2008-05-19 15:05:46 +01:00
Anselm R Garbe
4a5c8d84db improving space usage if master is left of stack (default) 2008-05-19 14:44:53 +01:00
Anselm R Garbe
71365a524f only snap within window area 2008-05-19 13:41:58 +01:00
Anselm R Garbe
3afca3e6a1 s/DEFGEOM/CUSTOMGEOM/ 2008-05-19 13:37:46 +01:00
Anselm R Garbe
bdc80bdad6 update 2008-05-19 13:32:43 +01:00
Anselm R Garbe
64707da963 updatetilegeom should be fine for setmfact 2008-05-19 12:42:26 +01:00
Anselm R Garbe
549726869b recent changes, introduced togglebar, changed some defines into variable declarations where possible 2008-05-19 12:34:54 +01:00
Anselm R Garbe
42cb2bd3be new stuff 2008-05-17 14:51:12 +01:00
Anselm R Garbe
585294ce0f removed the <M> togglelayout call 2008-05-17 14:50:37 +01:00
Anselm R Garbe
a864a82b34 s/tilegeom/updatetilegeom/ 2008-05-17 14:48:04 +01:00
Anselm R Garbe
bd67a82fb5 removed monocle for now 2008-05-17 14:46:06 +01:00
Anselm R Garbe
14d8d828ab removed the exact focus mechanism of next/prev window 2008-05-17 14:41:41 +01:00
Anselm R Garbe
4246affc15 moved all tile()-related stuff into tile.c which is included from config.def.h, the default dwm is now nearly independent from the arrange() algorithm in use 2008-05-17 14:38:22 +01:00
Anselm R Garbe
42c4b31003 removed tileh, renamed tilev into tile again, removed counttiles, tilemaster 2008-05-17 14:23:05 +01:00
Anselm R Garbe
a785a0d712 removed Layout->isfloating 2008-05-17 14:17:18 +01:00
Anselm R Garbe
489ac07e83 removed reapply() -- unnecessary 2008-05-17 14:06:41 +01:00
Anselm R Garbe
349d768b57 renamed setlayout into togglelayout 2008-05-17 14:04:27 +01:00
Anselm R Garbe
6dfa7cac56 removed temporary wildcard handling 2008-05-15 10:51:37 +01:00
Anselm R Garbe
71681c21a5 added wild-card handling for tags 2008-05-15 10:47:26 +01:00
Anselm R Garbe
704781875c applied nsz's another style patch 2008-05-14 11:24:35 +01:00
Anselm R Garbe
d7cc0f6416 applied nsz's style.diff patch 2008-05-13 14:33:02 +01:00
Anselm R Garbe
6b79f3f326 just added a comment 2008-05-13 11:27:20 +01:00
Anselm R Garbe
446fa8c671 minor fixes 2008-05-11 20:27:01 +01:00
Anselm R Garbe
fa244aa7fb having monocle on Mod1-m 2008-05-11 20:25:24 +01:00
Anselm R Garbe
7ac4f8a4af hotfix 2008-05-11 20:22:20 +01:00
Anselm R Garbe
7eb26288fc removed Geom stuff, introduced updategeom() again, still view is somewhat broken? 2008-05-11 20:20:53 +01:00
Anselm R Garbe
93a4fe1052 cleaned up config.def.h 2008-05-11 14:54:45 +01:00
Anselm R Garbe
5602f44b29 implemented exact focus next, if arg != NULL to focus{next,prev} 2008-05-11 14:40:37 +01:00
Anselm R Garbe
b848f4bda8 applied the proposal by nsz 2008-05-06 15:52:44 +01:00
Anselm R Garbe
86c4797f2c applied JUCE patch 2008-05-06 15:13:36 +01:00
Anselm R Garbe
c094ed2473 simplification of view() as proposed by anydot 2008-04-27 18:36:11 +01:00
Anselm R Garbe
bfd6079a15 applied yiyus tagset patch 2008-04-27 18:33:31 +01:00
Anselm R Garbe
7f70d90219 applied yiyus fgeom patch 2008-04-27 18:22:52 +01:00
Anselm R Garbe
858251de46 applied dfenze drawtext simplifications 2008-04-27 18:00:45 +01:00
anselm@anselm1
d26c28c1e7 this is the correct way 2008-04-20 19:09:30 +01:00
anselm@anselm1
b6335776e4 copyright notice is in LICENSE 2008-04-20 19:09:00 +01:00
anselm@anselm1
c059625128 applied Ph's seltags-simplification with some modifications 2008-04-20 18:35:11 +01:00
anselm@anselm1
874837f653 applied Ph's MIN/MAX patch, nice work! 2008-04-20 18:28:21 +01:00
anselm@anselm1
5fa559dbfc applied Ph's patch regarding geom and lt initialization 2008-04-20 18:23:59 +01:00
anselm@anselm1
146ff227fe applied Gottox' applyrules() fix 2008-04-20 18:17:33 +01:00
Anselm R Garbe
bb0a328978 geometry fix proposed by Jukka 2008-04-08 11:49:35 +01:00
Anselm R Garbe
721b208478 applied applyrules-fix by Jukka, thank you Jukka! 2008-04-07 09:05:41 +01:00
Anselm R Garbe
6229ed20c2 fix 2008-04-05 19:04:53 +01:00
Anselm R Garbe
940240e5e6 applied the proposed monocle patch from the mailinglist 2008-04-05 18:23:31 +01:00
Anselm R Garbe
08c596ed10 next version is 5.0 2008-04-04 11:15:37 +01:00
anselm@anselm1
9ce6abb95c Added tag 4.9 for changeset 22c669b2dd36 2008-04-03 21:57:32 +01:00
Anselm R Garbe
0e21794e02 yet another cleanup 2008-04-03 14:39:19 +01:00
Anselm R Garbe
d477fb6927 some cleanup changes 2008-04-03 14:38:58 +01:00
anselm@anselm1
3d6630b7d2 uncommented dual layout in preparation of dwm 4.9 2008-04-02 22:18:09 +01:00
anselm@anselm1
c982bb1389 applied Peter Hartlich's simplification patch of setmfact and his revival of MFACT, appliead Janness Hofmann's simplification of grabbuttons() -- thanks guys! 2008-04-02 22:10:55 +01:00
Anselm R Garbe
6cf73e706a aspects hints seem broken for fullscreen apps 2008-04-01 15:46:00 +01:00
Anselm R Garbe
a520ba3c0b removed uneccessary line 2008-03-31 10:09:48 +01:00
Anselm R Garbe
0c71b16b92 bugfix 2008-03-25 09:41:14 +00:00
Anselm R Garbe
00c28a7ef2 setmfact should not have any effect if in floating layout 2008-03-24 14:31:02 +00:00
Anselm R Garbe
5a3a2d6b63 minor fix 2008-03-24 14:24:57 +00:00
Anselm R Garbe
a355782a77 revival of mfact and setmfact 2008-03-24 14:23:28 +00:00
Anselm R Garbe
20cd336087 setlayout and setgeom are now togglable again 2008-03-24 13:49:19 +00:00
Anselm R Garbe
a6a216f28c geom indicator and layout indicator is only displayed if there are several geoms/layouts 2008-03-24 13:33:32 +00:00
anselm@anselm1
2c2063bc75 hotfix of idxoftag 2008-03-22 16:53:37 +00:00
anselm@anselm1
e6ede461a9 blw/bgw calculation bugfix 2008-03-22 12:47:12 +00:00
Anselm R Garbe
6877205e9d updated configurenotify 2008-03-19 09:27:17 +00:00
anselm@anselm1
fb5f99d935 minor bugfix in applyrules 2008-03-17 23:45:46 +00:00
Anselm R Garbe
7ebab7533a added sample of {grow,shrink}master to config.def.h 2008-03-17 17:33:25 +00:00
Anselm R Garbe
9fa5ca3538 renamed c->border into c->bw, fixed monocle to subtract c->bw from each h/w value 2008-03-17 16:29:50 +00:00
Anselm R Garbe
fe6b0c0fc1 geoms are now drawed in the status bar 2008-03-17 16:26:06 +00:00
Anselm R Garbe
aa2395b6a8 removed the string-based setgeom approach, introduced a new Geom type instead and a helper macro 2008-03-17 14:56:11 +00:00
Anselm R Garbe
dba22848c7 made the string-based setgeom working 2008-03-15 14:17:42 +00:00
Anselm R Garbe
33b1960220 some experimental state DO NOT USE THIS, I plan to have a nicer interface to change geometries 2008-03-14 17:17:08 +00:00
Anselm R Garbe
e237b2a76f some changes towards 4.9 2008-03-14 14:35:45 +00:00
Anselm R Garbe
dd9ee6d248 Added tag 4.8 for changeset 607015ddb091 2008-03-13 16:56:11 +00:00
8 changed files with 653 additions and 975 deletions

View File

@@ -51,3 +51,5 @@ e0ec0d5d8b1ef3ee04a83c7c0fee5853aa2ac6a6 4.3
2acc60d6dfe28c101a8cd44a8aa710a38ae3607c 4.5
bcd7e18e196a00cc2e97ff3a4a58f3cdaba13856 4.6
d6d3085307d8d98b8b012b669e858fd787befeb1 4.7
607015ddb091d49cbd3457af41713691aa69f4d6 4.8
22c669b2dd3673785c3476b9976da21e8783f745 4.9

18
LICENSE
View File

@@ -12,16 +12,16 @@ Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

View File

@@ -1,5 +1,5 @@
# dwm - dynamic window manager
# © 2006-2007 Anselm R. Garbe, Sander van Dijk
# See LICENSE file for copyright and license details.
include config.mk
@@ -35,7 +35,7 @@ clean:
dist: clean
@echo creating dist tarball
@mkdir -p dwm-${VERSION}
@cp -R LICENSE Makefile README config.*.h config.mk \
@cp -R LICENSE Makefile README config.def.h config.mk \
dwm.1 ${SRC} dwm-${VERSION}
@tar -cf dwm-${VERSION}.tar dwm-${VERSION}
@gzip dwm-${VERSION}.tar

View File

@@ -1,151 +0,0 @@
/* See LICENSE file for copyright and license details. */
/* appearance */
#define BORDERPX 1
#define FONT "-*-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*"
#define NORMBORDERCOLOR "#cccccc"
#define NORMBGCOLOR "#cccccc"
#define NORMFGCOLOR "#000000"
#define SELBORDERCOLOR "#0066ff"
#define SELBGCOLOR "#0066ff"
#define SELFGCOLOR "#ffffff"
/* tagging */
const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
Rule rules[] = {
/* class:instance:title substr tags ref isfloating */
{ "Firefox", tags[8], False },
{ "Gimp", NULL, True },
{ "MPlayer", NULL, True },
{ "Acroread", NULL, True },
};
/* layout(s) */
#define RESIZEHINTS True /* False - respect size hints in tiled resizals */
#define SNAP 32 /* snap pixel */
Layout layouts[] = {
/* symbol function isfloating */
{ "[]|", tileh, False }, /* first entry is default */
{ "[]=", tilev, False },
{ "><>", floating, True },
{ "[M]", monocle, True },
};
void
setanselmgeoms(void) {
/* screen dimensions */
sx = 0;
sy = 0;
sw = DisplayWidth(dpy, screen);
sh = DisplayHeight(dpy, screen);
/* bar position */
bx = sx;
by = sy;
bw = 1280;
bh = dc.font.height + 2;
/* window area */
wx = sx;
wy = sy + bh;
ww = sw;
wh = sh - bh;
/* master area */
mx = wx;
my = wy;
mw = 1280;
mh = 800 - bh;
/* tile area */
tx = 1280;
ty = 0;
tw = sw - 1280;
th = sh;
/* monocle area */
mox = mx;
moy = my;
mow = mw;
moh = mh;
}
void
anselmgeoms(const char *arg) {
setgeoms = setanselmgeoms;
setgeoms();
updatebarpos();
setlayout("[]|");
}
void
defgeoms(const char *arg) {
setgeoms = setdefaultgeoms;
setgeoms();
updatebarpos();
setlayout("[]=");
}
/* key definitions */
#define MODKEY Mod1Mask
Key keys[] = {
/* modifier key function argument */
{ MODKEY, XK_p, spawn,
"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"' -x 0 -y 0 -w 1280" },
{ MODKEY|ShiftMask, XK_Return, spawn, "exec uxterm" },
{ MODKEY, XK_a, anselmgeoms, NULL },
{ MODKEY, XK_d, defgeoms, NULL },
{ MODKEY, XK_j, focusnext, NULL },
{ MODKEY, XK_k, focusprev, NULL },
{ MODKEY, XK_r, reapply, NULL },
{ MODKEY, XK_Return, zoom, NULL },
{ MODKEY, XK_Tab, viewprevtag, NULL },
{ MODKEY, XK_m, setlayout, "[M]" },
{ MODKEY, XK_f, setlayout, "><>" },
{ MODKEY, XK_v, setlayout, "[]=" },
{ MODKEY, XK_h, setlayout, "[]|" },
{ MODKEY|ShiftMask, XK_space, togglefloating, NULL },
{ MODKEY|ShiftMask, XK_c, killclient, NULL },
{ MODKEY, XK_0, view, NULL },
{ MODKEY, XK_1, view, tags[0] },
{ MODKEY, XK_2, view, tags[1] },
{ MODKEY, XK_3, view, tags[2] },
{ MODKEY, XK_4, view, tags[3] },
{ MODKEY, XK_5, view, tags[4] },
{ MODKEY, XK_6, view, tags[5] },
{ MODKEY, XK_7, view, tags[6] },
{ MODKEY, XK_8, view, tags[7] },
{ MODKEY, XK_9, view, tags[8] },
{ MODKEY|ControlMask, XK_1, toggleview, tags[0] },
{ MODKEY|ControlMask, XK_2, toggleview, tags[1] },
{ MODKEY|ControlMask, XK_3, toggleview, tags[2] },
{ MODKEY|ControlMask, XK_4, toggleview, tags[3] },
{ MODKEY|ControlMask, XK_5, toggleview, tags[4] },
{ MODKEY|ControlMask, XK_6, toggleview, tags[5] },
{ MODKEY|ControlMask, XK_7, toggleview, tags[6] },
{ MODKEY|ControlMask, XK_8, toggleview, tags[7] },
{ MODKEY|ControlMask, XK_9, toggleview, tags[8] },
{ MODKEY|ShiftMask, XK_0, tag, NULL },
{ MODKEY|ShiftMask, XK_1, tag, tags[0] },
{ MODKEY|ShiftMask, XK_2, tag, tags[1] },
{ MODKEY|ShiftMask, XK_3, tag, tags[2] },
{ MODKEY|ShiftMask, XK_4, tag, tags[3] },
{ MODKEY|ShiftMask, XK_5, tag, tags[4] },
{ MODKEY|ShiftMask, XK_6, tag, tags[5] },
{ MODKEY|ShiftMask, XK_7, tag, tags[6] },
{ MODKEY|ShiftMask, XK_8, tag, tags[7] },
{ MODKEY|ShiftMask, XK_9, tag, tags[8] },
{ MODKEY|ControlMask|ShiftMask, XK_1, toggletag, tags[0] },
{ MODKEY|ControlMask|ShiftMask, XK_2, toggletag, tags[1] },
{ MODKEY|ControlMask|ShiftMask, XK_3, toggletag, tags[2] },
{ MODKEY|ControlMask|ShiftMask, XK_4, toggletag, tags[3] },
{ MODKEY|ControlMask|ShiftMask, XK_5, toggletag, tags[4] },
{ MODKEY|ControlMask|ShiftMask, XK_6, toggletag, tags[5] },
{ MODKEY|ControlMask|ShiftMask, XK_7, toggletag, tags[6] },
{ MODKEY|ControlMask|ShiftMask, XK_8, toggletag, tags[7] },
{ MODKEY|ControlMask|ShiftMask, XK_9, toggletag, tags[8] },
{ MODKEY|ShiftMask, XK_q, quit, NULL },
};

View File

@@ -1,93 +1,111 @@
/* See LICENSE file for copyright and license details. */
/* appearance */
#define BORDERPX 1
#define FONT "-*-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*"
#define NORMBORDERCOLOR "#cccccc"
#define NORMBGCOLOR "#cccccc"
#define NORMFGCOLOR "#000000"
#define SELBORDERCOLOR "#0066ff"
#define SELBGCOLOR "#0066ff"
#define SELFGCOLOR "#ffffff"
static const char font[] = "-*-terminus-medium-r-normal-*-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 uint borderpx = 1; /* border pixel of windows */
static uint snap = 32; /* snap pixel */
static Bool showbar = True; /* False means no bar */
static Bool topbar = True; /* False means bottom bar */
#ifdef XINERAMA
static uint xidx = 0; /* Xinerama screen index to use */
#endif
/* tagging */
const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
static const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
Rule rules[] = {
/* class:instance:title substr tags ref isfloating */
{ "Firefox", tags[8], False },
{ "Gimp", NULL, True },
{ "MPlayer", NULL, True },
{ "Acroread", NULL, True },
static Rule rules[] = {
/* class instance title tags mask isfloating */
{ "Gimp", NULL, NULL, 0, True },
{ "Firefox", NULL, NULL, 1 << 8, True },
};
/* layout(s) */
#define RESIZEHINTS True /* False - respect size hints in tiled resizals */
#define SNAP 32 /* snap pixel */
static float mfact = 0.55;
static Bool resizehints = True; /* False means respect size hints in tiled resizals */
Layout layouts[] = {
/* symbol function isfloating */
{ "[]=", tilev, False }, /* first entry is default */
{ "[]|", tileh, False },
{ "><>", floating, True },
{ "[M]", monocle, True },
static Layout layouts[] = {
/* symbol arrange function */
{ "[]=", tile }, /* first entry is default */
{ "><>", NULL }, /* no layout function means floating behavior */
};
/* key definitions */
#define MODKEY Mod1Mask
Key keys[] = {
/* modifier key function argument */
{ MODKEY, XK_p, spawn,
"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" },
{ MODKEY|ShiftMask, XK_Return, spawn, "exec uxterm" },
{ MODKEY, XK_j, focusnext, NULL },
{ MODKEY, XK_k, focusprev, NULL },
{ MODKEY, XK_r, reapply, NULL },
{ MODKEY, XK_Return, zoom, NULL },
{ MODKEY, XK_Tab, viewprevtag, NULL },
{ MODKEY, XK_m, setlayout, "[M]" },
{ MODKEY, XK_f, setlayout, "><>" },
{ MODKEY, XK_v, setlayout, "[]=" },
{ MODKEY, XK_h, setlayout, "[]|" },
{ MODKEY|ShiftMask, XK_space, togglefloating, NULL },
{ MODKEY|ShiftMask, XK_c, killclient, NULL },
{ MODKEY, XK_0, view, NULL },
{ MODKEY, XK_1, view, tags[0] },
{ MODKEY, XK_2, view, tags[1] },
{ MODKEY, XK_3, view, tags[2] },
{ MODKEY, XK_4, view, tags[3] },
{ MODKEY, XK_5, view, tags[4] },
{ MODKEY, XK_6, view, tags[5] },
{ MODKEY, XK_7, view, tags[6] },
{ MODKEY, XK_8, view, tags[7] },
{ MODKEY, XK_9, view, tags[8] },
{ MODKEY|ControlMask, XK_1, toggleview, tags[0] },
{ MODKEY|ControlMask, XK_2, toggleview, tags[1] },
{ MODKEY|ControlMask, XK_3, toggleview, tags[2] },
{ MODKEY|ControlMask, XK_4, toggleview, tags[3] },
{ MODKEY|ControlMask, XK_5, toggleview, tags[4] },
{ MODKEY|ControlMask, XK_6, toggleview, tags[5] },
{ MODKEY|ControlMask, XK_7, toggleview, tags[6] },
{ MODKEY|ControlMask, XK_8, toggleview, tags[7] },
{ MODKEY|ControlMask, XK_9, toggleview, tags[8] },
{ MODKEY|ShiftMask, XK_0, tag, NULL },
{ MODKEY|ShiftMask, XK_1, tag, tags[0] },
{ MODKEY|ShiftMask, XK_2, tag, tags[1] },
{ MODKEY|ShiftMask, XK_3, tag, tags[2] },
{ MODKEY|ShiftMask, XK_4, tag, tags[3] },
{ MODKEY|ShiftMask, XK_5, tag, tags[4] },
{ MODKEY|ShiftMask, XK_6, tag, tags[5] },
{ MODKEY|ShiftMask, XK_7, tag, tags[6] },
{ MODKEY|ShiftMask, XK_8, tag, tags[7] },
{ MODKEY|ShiftMask, XK_9, tag, tags[8] },
{ MODKEY|ControlMask|ShiftMask, XK_1, toggletag, tags[0] },
{ MODKEY|ControlMask|ShiftMask, XK_2, toggletag, tags[1] },
{ MODKEY|ControlMask|ShiftMask, XK_3, toggletag, tags[2] },
{ MODKEY|ControlMask|ShiftMask, XK_4, toggletag, tags[3] },
{ MODKEY|ControlMask|ShiftMask, XK_5, toggletag, tags[4] },
{ MODKEY|ControlMask|ShiftMask, XK_6, toggletag, tags[5] },
{ MODKEY|ControlMask|ShiftMask, XK_7, toggletag, tags[6] },
{ MODKEY|ControlMask|ShiftMask, XK_8, toggletag, tags[7] },
{ MODKEY|ControlMask|ShiftMask, XK_9, toggletag, tags[8] },
{ MODKEY|ShiftMask, XK_q, quit, NULL },
#define MODKEY Mod1Mask
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
/* commands */
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
static const char *termcmd[] = { "uxterm", NULL };
static Key keys[] = {
/* modifier key function argument */
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
{ MODKEY, XK_m, togglemax, {0} },
{ MODKEY, XK_Return, zoom, {0} },
{ MODKEY, XK_Tab, view, {0} },
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
{ MODKEY, XK_space, togglelayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
TAGKEYS( XK_1, 0)
TAGKEYS( XK_2, 1)
TAGKEYS( XK_3, 2)
TAGKEYS( XK_4, 3)
TAGKEYS( XK_5, 4)
TAGKEYS( XK_6, 5)
TAGKEYS( XK_7, 6)
TAGKEYS( XK_8, 7)
TAGKEYS( XK_9, 8)
{ MODKEY|ShiftMask, XK_q, quit, {0} },
};
/* button definitions */
#define TAGBUTTONS(TAG) \
{ TAG, 0, Button1, view, {.ui = 1 << TAG} }, \
{ TAG, 0, Button3, toggleview, {.ui = 1 << TAG} }, \
{ TAG, MODKEY, Button1, tag, {.ui = 1 << TAG} }, \
{ TAG, MODKEY, Button3, toggletag, {.ui = 1 << TAG} },
/* click can be a tag number (starting at 0),
* ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
/* click event mask button function argument */
{ ClkLtSymbol, 0, Button1, togglelayout, {0} },
{ ClkLtSymbol, 0, Button3, togglemax, {0} },
{ ClkWinTitle, 0, Button2, zoom, {0} },
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
TAGBUTTONS(0)
TAGBUTTONS(1)
TAGBUTTONS(2)
TAGBUTTONS(3)
TAGBUTTONS(4)
TAGBUTTONS(5)
TAGBUTTONS(6)
TAGBUTTONS(7)
TAGBUTTONS(8)
};

View File

@@ -1,5 +1,5 @@
# dwm version
VERSION = 4.8
VERSION = 5.0
# Customize below to fit your system
@@ -10,20 +10,22 @@ MANPREFIX = ${PREFIX}/share/man
X11INC = /usr/X11R6/include
X11LIB = /usr/X11R6/lib
# Xinerama, comment if you don't want it
XINERAMALIBS = -L${X11LIB} -lXinerama
XINERAMAFLAGS = -DXINERAMA
# includes and libs
INCS = -I. -I/usr/include -I${X11INC}
LIBS = -L/usr/lib -lc -L${X11LIB} -lX11
LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${XINERAMALIBS}
# flags
CFLAGS = -Os ${INCS} -DVERSION=\"${VERSION}\"
CPPFLAGS = -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
LDFLAGS = -s ${LIBS}
#CFLAGS = -g -std=c99 -pedantic -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\" -DWORK
#LDFLAGS = -g ${LIBS}
# Solaris
#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
#LDFLAGS = ${LIBS}
#CFLAGS += -xtarget=ultra
# compiler and linker
CC = cc

28
dwm.1
View File

@@ -57,17 +57,11 @@ click on a tag label adds/removes that tag to/from the focused window.
Start
.BR xterm.
.TP
.B Mod1\-f
Applies floating layout.
.B Mod1\-b
Toggles bar on and off.
.TP
.B Mod1\-m
Applies monocle layout.
.TP
.B Mod1\-v
Applies vertical tiled layout.
.TP
.B Mod1\-h
Applies horizontal tiled layout.
.B Mod1\-space
Toggles between layouts.
.TP
.B Mod1\-j
Focus next window.
@@ -75,6 +69,15 @@ Focus next window.
.B Mod1\-k
Focus previous window.
.TP
.B Mod1\-h
Decrease master area size.
.TP
.B Mod1\-l
Increase master area size.
.TP
.B Mod1\-m
Toggle between maximisation meta-layout and active layout.
.TP
.B Mod1\-Return
Zooms/cycles focused window to/from master area (tiled layouts only).
.TP
@@ -87,9 +90,6 @@ Toggle focused window between tiled and floating state.
.B Mod1\-Tab
Toggles to the previously selected tags.
.TP
.B Mod1\-r
Re-applies tagging rules to all windows.
.TP
.B Mod1\-Shift\-[1..n]
Apply
.RB nth
@@ -124,7 +124,7 @@ Quit dwm.
Move focused window while dragging. Tiled windows will be toggled to the floating state.
.TP
.B Mod1\-Button2
Zooms/cycles focused window to/from master area. If it is floating (but not fixed) it will be toggled to the tiled state instead.
Toggles focused window between floating and tiled state.
.TP
.B Mod1\-Button3
Resize focused window while dragging. Tiled windows will be toggled to the floating state.

1235
dwm.c

File diff suppressed because it is too large Load Diff