t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 2a88da430896de546000bf2a04f192977776f507
   DIR parent df542075b7db883c5700af6f73c19b87f833e73f
   URI Author: Stefan Hagen <sh+git[at]codevoid[dot]de>
       Date:   Tue,  5 Feb 2019 09:43:19 +0100
       
       Fix layout rule config, delete unused code
       
       Diffstat:
         M config.h                            |      15 +++++++--------
         M dwm.c                               |      44 +++----------------------------
       
       2 files changed, 11 insertions(+), 48 deletions(-)
       ---
   DIR diff --git a/config.h b/config.h
       t@@ -32,12 +32,12 @@ static const Rule rules[] = {
            // _NET_WM_ICON_NAME(UTF8_STRING) = "Buddy List"
        
                /* class                instance    title       tags mask     isfloating   monitor */
       -        { "TelegramDesktop",    NULL,       NULL,       1 << 8,       True,       -1 },
       -        { "mpv",                NULL,       NULL,       1 << 8,       True,       -1 },
       -        { "Gimp",               NULL,       NULL,       1 << 8,       True,       -1 },
       -        { "Pidgin",             NULL,       NULL,       1 << 8,       True,       -1 },
       -        { "Seafile Client",     NULL,       NULL,       1 << 8,       True,       -1 },
       -        { "QSyncthingTray",     NULL,       NULL,       1 << 8,       True,       -1 },
       +        { "TelegramDesktop",    NULL,       NULL,       -1,         True,        -1 },
       +        { "mpv",                NULL,       NULL,       -1,         True,        -1 },
       +        { "Gimp",               NULL,       NULL,       -1,         True,        -1 },
       +        { "Pidgin",             NULL,       NULL,       -1,         True,        -1 },
       +        { "Seafile Client",     NULL,       NULL,       -1,         True,        -1 },
       +        { "QSyncthingTray",     NULL,       NULL,       -1,         True,        -1 },
        };
        
        /* layout(s) */
       t@@ -48,8 +48,7 @@ static const Bool resizehints = False; /* True means respect size hints in tiled
        static const Layout layouts[] = {
                /* symbol     arrange function */
                { "[T]",      tile },    /* first entry is default */
       -        { "NULL",     NULL },    /* no layout function means floating behavior */
       -        //{ "MONO",      monocle },
       +        { "[F]",     NULL },    /* no layout function means floating behavior */
        };
        
        /* key definitions */
   DIR diff --git a/dwm.c b/dwm.c
       t@@ -34,6 +34,7 @@
        #include <X11/keysym.h>
        #include <X11/Xatom.h>
        #include <X11/Xlib.h>
       +//#include <X11/XKBlib.h>
        #include <X11/Xproto.h>
        #include <X11/Xutil.h>
        #ifdef XINERAMA
       t@@ -234,7 +235,6 @@ static void killclient(const Arg *arg);
        static void manage(Window w, XWindowAttributes *wa);
        static void mappingnotify(XEvent *e);
        static void maprequest(XEvent *e);
       -static void monocle(Monitor *m);
        static void motionnotify(XEvent *e);
        static void movemouse(const Arg *arg);
        static Client *nexttiled(Client *c);
       t@@ -264,8 +264,6 @@ static void sigchld(int unused);
        static void spawn(const Arg *arg);
        static void tag(const Arg *arg);
        static void tagmon(const Arg *arg);
       -static void tagtoleft(const Arg *arg);
       -static void tagtoright(const Arg *arg);
        static int textnw(const char *text, unsigned int len);
        static void tile(Monitor *);
        static void togglebar(const Arg *arg);
       t@@ -1247,6 +1245,7 @@ keypress(XEvent *e) {
        
                ev = &e->xkey;
                keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
       +    //keysym = XkbKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0, 0);
                for(i = 0; i < LENGTH(keys); i++)
                        if(keysym == keys[i].keysym
                        && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)
       t@@ -1362,20 +1361,6 @@ maprequest(XEvent *e) {
        }
        
        void
       -monocle(Monitor *m) {
       -        unsigned int n = 0;
       -        Client *c;
       -
       -        for(c = m->clients; c; c = c->next)
       -                if(ISVISIBLE(c))
       -                        n++;
       -        if(n > 0) /* override layout symbol */
       -                snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
       -        for(c = nexttiled(m->clients); c; c = nexttiled(c->next))
       -                resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, False);
       -}
       -
       -void
        motionnotify(XEvent *e) {
                static Monitor *mon = NULL;
                Monitor *m;
       t@@ -1544,8 +1529,9 @@ resize(Client *c, int x, int y, int w, int h, Bool interact) {
        
        void
        resizebarwin(Monitor *m) {
       -    if(m == NULL)
       +    if(m == NULL) {
                m = selmon;
       +    }
                unsigned int w = m->ww;
                if(showsystray && m == selmon)
                        w -= getsystraywidth();
       t@@ -1932,28 +1918,6 @@ tagmon(const Arg *arg) {
                sendmon(selmon->sel, dirtomon(arg->i));
        }
        
       -void
       -tagtoleft(const Arg *arg) {
       -        if(selmon->sel != NULL
       -        && __builtin_popcount(selmon->tagset[selmon->seltags] & TAGMASK) == 1
       -        && selmon->tagset[selmon->seltags] > 1) {
       -                selmon->sel->tags >>= 1;
       -                focus(NULL);
       -                arrange(selmon);
       -        }
       -}
       -
       -void
       -tagtoright(const Arg *arg) {
       -        if(selmon->sel != NULL
       -        && __builtin_popcount(selmon->tagset[selmon->seltags] & TAGMASK) == 1
       -        && selmon->tagset[selmon->seltags] & (TAGMASK >> 1)) {
       -                selmon->sel->tags <<= 1;
       -                focus(NULL);
       -                arrange(selmon);
       -        }
       -}
       -
        int
        textnw(const char *text, unsigned int len) {
                XRectangle r;