some changes towards 4.9

master
Anselm R Garbe 2008-03-14 14:35:45 +00:00
parent dd9ee6d248
commit e237b2a76f
4 changed files with 38 additions and 31 deletions

View File

@ -14,24 +14,15 @@
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 },
/* class instance title tags ref isfloating */
{ NULL, NULL, "Firefox", tags[8], False },
{ NULL, NULL, "Gimp", NULL, True },
{ NULL, NULL, "MPlayer", NULL, True },
{ NULL, NULL, "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 },
};
/* geometry function */
void (*setgeoms)(void) = setdefgeoms;
void
setanselmgeoms(void) {
@ -83,12 +74,24 @@ anselmgeoms(const char *arg) {
void
defgeoms(const char *arg) {
setgeoms = setdefaultgeoms;
setgeoms = setdefgeoms;
setgeoms();
updatebarpos();
setlayout("[]=");
}
/* 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 },
};
/* key definitions */
#define MODKEY Mod1Mask
Key keys[] = {

View File

@ -14,13 +14,16 @@
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 },
/* class instance title tags ref isfloating */
{ NULL, NULL, "Firefox", tags[8], False },
{ NULL, NULL, "Gimp", NULL, True },
{ NULL, NULL, "MPlayer", NULL, True },
{ NULL, NULL, "Acroread", NULL, True },
};
/* geometry function */
void (*setgeoms)(void) = setdefgeoms;
/* layout(s) */
#define RESIZEHINTS True /* False - respect size hints in tiled resizals */
#define SNAP 32 /* snap pixel */

View File

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

15
dwm.c
View File

@ -99,7 +99,9 @@ typedef struct {
} Layout;
typedef struct {
const char *prop;
const char *class;
const char *instance;
const char *title;
const char *tag;
Bool isfloating;
} Rule;
@ -161,7 +163,7 @@ void restack(void);
void run(void);
void scan(void);
void setclientstate(Client *c, long state);
void setdefaultgeoms(void);
void setdefgeoms(void);
void setlayout(const char *arg);
void setup(void);
void spawn(const char *arg);
@ -224,7 +226,6 @@ Display *dpy;
DC dc = {0};
Layout *lt = NULL;
Window root, barwin;
void (*setgeoms)(void) = setdefaultgeoms;
/* configuration, allows nested code to access above variables */
#include "config.h"
@ -244,9 +245,9 @@ applyrules(Client *c) {
XGetClassHint(dpy, c->win, &ch);
for(i = 0; i < LENGTH(rules); i++) {
r = &rules[i];
if(strstr(c->name, r->prop)
|| (ch.res_class && strstr(ch.res_class, r->prop))
|| (ch.res_name && strstr(ch.res_name, r->prop)))
if(strstr(c->name, r->title)
|| (ch.res_class && r->class && strstr(ch.res_class, r->class))
|| (ch.res_name && r->instance && strstr(ch.res_name, r->instance)))
{
c->isfloating = r->isfloating;
if(r->tag) {
@ -1390,7 +1391,7 @@ setclientstate(Client *c, long state) {
}
void
setdefaultgeoms(void) {
setdefgeoms(void) {
/* screen dimensions */
sx = 0;