1
0
mirror of git://git.suckless.org/dwm synced 2025-08-04 14:12:30 -07:00

Compare commits

...

10 Commits
2.9 ... 3.0

Author SHA1 Message Date
Anselm R. Garbe
f679125206 removing to allow nmaster=0 2007-01-12 12:15:06 +01:00
Anselm R. Garbe
58beead14d this looks better now ;) 2007-01-11 16:38:45 +01:00
Anselm R. Garbe
e1811c37ca switching to arabic tags 2007-01-11 16:03:06 +01:00
Anselm R. Garbe
a24a6701c8 small fix of initial numlockmask value 2007-01-11 15:51:15 +01:00
Anselm R. Garbe
d108cfa7fc allowing nmaster=0 (I think that's a straight idea) 2007-01-11 13:43:38 +01:00
Anselm R. Garbe
92cb5ebb7c added Button{4,5} description to dwm.1 2007-01-10 12:56:49 +01:00
Anselm R. Garbe
653826572d added comment to %u in config.default.h, added Button{4.5} support on mode label 2007-01-10 12:54:23 +01:00
Anselm R. Garbe
5a5851bac2 reorganized 2007-01-08 17:36:56 +01:00
Anselm R. Garbe
1d4a24dae0 implemented nmaster appearance in mode label (using %u) 2007-01-08 17:33:24 +01:00
Anselm R. Garbe
a768ea93fd Added tag 2.9 for changeset 3a5910fac3cc 2007-01-08 13:01:37 +01:00
10 changed files with 72 additions and 22 deletions

View File

@@ -28,3 +28,4 @@ c7f84f23ec5aef29988dcdc4ec22a7352ee8f58e 2.5.1
5308dd22b6ee8e3218c81d9e7e4125f235bb5778 2.6
21951c0dfbae5af68ed77821a4d87253ee91803f 2.7
107719a9ce3bd0c79f9f1f626596eb338a276561 2.8
3a5910fac3ccb522a98aeeba7af7008530b25092 2.9

View File

@@ -3,19 +3,19 @@
*/
#define TAGS \
const char *tags[] = { "home", "net", "www", "mon", "fnord", NULL };
const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", NULL };
#define DEFMODE dotile /* dofloat */
#define FLOATSYMBOL "><>"
#define TILESYMBOL "[]="
#define TILESYMBOL "[%u]=" /* %u is replaced with nmaster */
#define FONT "-*-terminus-medium-r-*-*-14-*-*-*-*-*-*-*"
#define NORMBGCOLOR "#111111"
#define NORMFGCOLOR "#cccccc"
#define SELBGCOLOR "#336699"
#define SELFGCOLOR "#eeeeee"
#define STATUSBGCOLOR "#222222"
#define STATUSFGCOLOR "#dddddd"
#define NORMBGCOLOR "#222"
#define NORMFGCOLOR "#ccc"
#define SELBGCOLOR "#444"
#define SELFGCOLOR "#fff"
#define STATUSBGCOLOR "#333"
#define STATUSFGCOLOR "#9cf"
#define MASTER 600 /* per thousand */
#define MODKEY Mod1Mask
@@ -26,7 +26,7 @@ const char *tags[] = { "home", "net", "www", "mon", "fnord", NULL };
static Key key[] = { \
/* modifier key function argument */ \
{ MODKEY|ShiftMask, XK_Return, spawn, \
{ .cmd = "exec uxterm -bg black -fg '#eeeeee' -cr '#eeeeee' +sb -fn '"FONT"'" } }, \
{ .cmd = "exec uxterm -bg '#222' -fg '#eee' -cr '#eee' +sb -fn '"FONT"'" } }, \
{ MODKEY, XK_p, spawn, \
{ .cmd = "exe=\"$(lsx `echo $PATH | sed 's/:/ /g'` | sort -u " \
" | dmenu -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' " \
@@ -44,11 +44,19 @@ static Key key[] = { \
{ MODKEY|ShiftMask, XK_3, tag, { .i = 2 } }, \
{ MODKEY|ShiftMask, XK_4, tag, { .i = 3 } }, \
{ MODKEY|ShiftMask, XK_5, tag, { .i = 4 } }, \
{ MODKEY|ShiftMask, XK_6, tag, { .i = 5 } }, \
{ MODKEY|ShiftMask, XK_7, tag, { .i = 6 } }, \
{ MODKEY|ShiftMask, XK_8, tag, { .i = 7 } }, \
{ MODKEY|ShiftMask, XK_9, tag, { .i = 8 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_1, toggletag, { .i = 0 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_2, toggletag, { .i = 1 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_3, toggletag, { .i = 2 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_4, toggletag, { .i = 3 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_5, toggletag, { .i = 4 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_6, toggletag, { .i = 5 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_7, toggletag, { .i = 6 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_8, toggletag, { .i = 7 } }, \
{ MODKEY|ControlMask|ShiftMask, XK_9, toggletag, { .i = 8 } }, \
{ MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \
{ MODKEY, XK_space, togglemode, { 0 } }, \
{ MODKEY|ShiftMask, XK_space, togglefloat, { 0 } }, \
@@ -58,18 +66,26 @@ static Key key[] = { \
{ MODKEY, XK_3, view, { .i = 2 } }, \
{ MODKEY, XK_4, view, { .i = 3 } }, \
{ MODKEY, XK_5, view, { .i = 4 } }, \
{ MODKEY, XK_6, view, { .i = 5 } }, \
{ MODKEY, XK_7, view, { .i = 6 } }, \
{ MODKEY, XK_8, view, { .i = 7 } }, \
{ MODKEY, XK_9, view, { .i = 8 } }, \
{ MODKEY|ControlMask, XK_1, toggleview, { .i = 0 } }, \
{ MODKEY|ControlMask, XK_2, toggleview, { .i = 1 } }, \
{ MODKEY|ControlMask, XK_3, toggleview, { .i = 2 } }, \
{ MODKEY|ControlMask, XK_4, toggleview, { .i = 3 } }, \
{ MODKEY|ControlMask, XK_5, toggleview, { .i = 4 } }, \
{ MODKEY|ControlMask, XK_6, toggleview, { .i = 5 } }, \
{ MODKEY|ControlMask, XK_7, toggleview, { .i = 6 } }, \
{ MODKEY|ControlMask, XK_8, toggleview, { .i = 7 } }, \
{ MODKEY|ControlMask, XK_9, toggleview, { .i = 8 } }, \
{ MODKEY|ShiftMask, XK_q, quit, { 0 } }, \
};
#define RULES \
static Rule rule[] = { \
/* class:instance:title regex tags regex isfloat */ \
{ "Firefox.*", "www", False }, \
{ "Firefox.*", "3", False }, \
{ "Gimp.*", NULL, True }, \
{ "MPlayer.*", NULL, True }, \
{ "Acroread.*", NULL, True }, \

View File

@@ -7,7 +7,7 @@ const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", NULL };
#define DEFMODE dotile /* dofloat */
#define FLOATSYMBOL "><>"
#define TILESYMBOL "[]="
#define TILESYMBOL "[%u]=" /* %u is replaced with nmaster */
#define FONT "-*-fixed-medium-r-normal-*-13-*-*-*-*-*-*-*"
#define NORMBGCOLOR "#333366"

View File

@@ -1,5 +1,5 @@
# dwm version
VERSION = 2.9
VERSION = 3.0
# Customize below to fit your system

2
draw.c
View File

@@ -120,7 +120,7 @@ drawstatus(void) {
dc.x += dc.w;
}
dc.w = bmw;
drawtext(arrange == dofloat ? FLOATSYMBOL : TILESYMBOL, dc.status, False, False);
drawtext(mtext, dc.status, False, False);
x = dc.x + dc.w;
dc.w = textw(stext);
dc.x = bw - dc.w;

6
dwm.1
View File

@@ -44,6 +44,12 @@ label toggles between tiling and floating mode.
.B Button3
click on a tag label adds/removes all windows with that tag to/from the view.
.TP
.B Button4
click on the mode label increases the number of windows in the master area (tiling mode only).
.TP
.B Button5
click on the mode label decreases the number of windows in the master area (tiling mode only).
.TP
.B Mod1-Button1
click on a tag label applies that tag to the focused window.
.TP

2
dwm.h
View File

@@ -93,6 +93,7 @@ struct Client {
extern const char *tags[]; /* all tags */
extern char stext[1024]; /* status text */
extern char mtext[32]; /* mode text */
extern int bx, by, bw, bh, bmw; /* bar geometry, bar mode label width */
extern int screen, sx, sy, sw, sh; /* screen geometry */
extern int wax, way, wah, waw; /* windowarea geometry */
@@ -167,5 +168,6 @@ extern void restack(void); /* restores z layers of all clients */
extern void togglefloat(Arg *arg); /* toggles focusesd client between floating/non-floating state */
extern void togglemode(Arg *arg); /* toggles global arrange function (dotile/dofloat) */
extern void toggleview(Arg *arg); /* toggles the tag with arg's index (in)visible */
extern void updatemodetext(void); /* updates mtext */
extern void view(Arg *arg); /* views the tag with arg's index */
extern void zoom(Arg *arg); /* zooms the focused client to master area, arg is ignored */

14
event.c
View File

@@ -131,8 +131,20 @@ buttonpress(XEvent *e) {
return;
}
}
if((ev->x < x + bmw) && (ev->button == Button1))
if(ev->x < x + bmw)
switch(ev->button) {
case Button1:
togglemode(NULL);
break;
case Button4:
a.i = 1;
incnmaster(&a);
break;
case Button5:
a.i = -1;
incnmaster(&a);
break;
}
}
else if((c = getclient(ev->window))) {
focus(c);

5
main.c
View File

@@ -17,7 +17,7 @@
/* extern */
char stext[1024];
char stext[1024], mtext[32];
Bool *seltag;
int bx, by, bw, bh, bmw, masterd, screen, sx, sy, sw, sh, wax, way, waw, wah;
unsigned int master, nmaster, ntags, numlockmask;
@@ -101,6 +101,7 @@ setup(void) {
cursor[CurResize] = XCreateFontCursor(dpy, XC_sizing);
cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur);
/* init modifier map */
numlockmask = 0;
modmap = XGetModifierMapping(dpy);
for (i = 0; i < 8; i++) {
for (j = 0; j < modmap->max_keypermod; j++) {
@@ -128,12 +129,12 @@ setup(void) {
dc.status[ColFG] = getcolor(STATUSFGCOLOR);
setfont(FONT);
/* geometry */
bmw = textw(TILESYMBOL) > textw(FLOATSYMBOL) ? textw(TILESYMBOL) : textw(FLOATSYMBOL);
sx = sy = 0;
sw = DisplayWidth(dpy, screen);
sh = DisplayHeight(dpy, screen);
master = MASTER;
nmaster = NMASTER;
updatemodetext();
/* bar */
bx = sx;
by = sy;

18
view.c
View File

@@ -2,6 +2,7 @@
* See LICENSE file for license details.
*/
#include "dwm.h"
#include <stdio.h>
/* static */
@@ -75,10 +76,10 @@ dotile(void) {
for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next))
n++;
/* window geoms */
mw = (n > nmaster) ? (waw * master) / 1000 : waw;
mh = (n > nmaster) ? wah / nmaster : wah / (n > 0 ? n : 1);
tw = waw - mw;
mw = (n > nmaster) ? (waw * master) / 1000 : waw;
th = (n > nmaster) ? wah / (n - nmaster) : 0;
tw = waw - mw;
for(i = 0, c = clients; c; c = c->next)
if(isvisible(c)) {
@@ -149,10 +150,14 @@ focusprev(Arg *arg) {
void
incnmaster(Arg *arg) {
if((nmaster + arg->i < 1) || (wah / (nmaster + arg->i) < bh))
if((arrange == dofloat) || (nmaster + arg->i < 1) || (wah / (nmaster + arg->i) < bh))
return;
nmaster += arg->i;
updatemodetext();
if(sel)
arrange();
else
drawstatus();
}
Bool
@@ -218,6 +223,7 @@ togglefloat(Arg *arg) {
void
togglemode(Arg *arg) {
arrange = (arrange == dofloat) ? dotile : dofloat;
updatemodetext();
if(sel)
arrange();
else
@@ -235,6 +241,12 @@ toggleview(Arg *arg) {
arrange();
}
void
updatemodetext() {
snprintf(mtext, sizeof mtext, arrange == dofloat ? FLOATSYMBOL : TILESYMBOL, nmaster);
bmw = textw(mtext);
}
void
view(Arg *arg) {
unsigned int i;