From e237b2a76fb3dac1f43b91e5c7b6adb9ef04c9ed Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Fri, 14 Mar 2008 14:35:45 +0000 Subject: [PATCH] some changes towards 4.9 --- config.anselm.h | 37 ++++++++++++++++++++----------------- config.def.h | 13 ++++++++----- config.mk | 2 +- dwm.c | 17 +++++++++-------- 4 files changed, 38 insertions(+), 31 deletions(-) diff --git a/config.anselm.h b/config.anselm.h index aef5947..09cccd1 100644 --- a/config.anselm.h +++ b/config.anselm.h @@ -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[] = { diff --git a/config.def.h b/config.def.h index c1eedd4..4254c43 100644 --- a/config.def.h +++ b/config.def.h @@ -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 */ diff --git a/config.mk b/config.mk index b63e2ca..5176248 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # dwm version -VERSION = 4.8 +VERSION = 4.9 # Customize below to fit your system diff --git a/dwm.c b/dwm.c index a54329a..3f896dc 100644 --- a/dwm.c +++ b/dwm.c @@ -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) { @@ -1051,7 +1052,7 @@ maprequest(XEvent *e) { } void -monocle(void) { +monocle(void) { Client *c; for(c = clients; c; c = c->next) @@ -1390,7 +1391,7 @@ setclientstate(Client *c, long state) { } void -setdefaultgeoms(void) { +setdefgeoms(void) { /* screen dimensions */ sx = 0;