tabbed-keycode-20170508-6dc3978.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       tabbed-keycode-20170508-6dc3978.diff (4571B)
       ---
            1 diff --git a/config.def.h b/config.def.h
            2 index 2d23049..b1384e4 100644
            3 --- a/config.def.h
            4 +++ b/config.def.h
            5 @@ -36,31 +36,31 @@ static Bool npisrelative  = False;
            6  #define MODKEY ControlMask
            7  static Key keys[] = {
            8          /* modifier             key        function     argument */
            9 -        { MODKEY|ShiftMask,     XK_Return, focusonce,   { 0 } },
           10 -        { MODKEY|ShiftMask,     XK_Return, spawn,       { 0 } },
           11 +        { MODKEY|ShiftMask,     36,        focusonce,   { 0 } },
           12 +        { MODKEY|ShiftMask,     36,        spawn,       { 0 } },
           13  
           14 -        { MODKEY|ShiftMask,     XK_l,      rotate,      { .i = +1 } },
           15 -        { MODKEY|ShiftMask,     XK_h,      rotate,      { .i = -1 } },
           16 -        { MODKEY|ShiftMask,     XK_j,      movetab,     { .i = -1 } },
           17 -        { MODKEY|ShiftMask,     XK_k,      movetab,     { .i = +1 } },
           18 -        { MODKEY,               XK_Tab,    rotate,      { .i = 0 } },
           19 +        { MODKEY|ShiftMask,     46,        rotate,      { .i = +1 } },
           20 +        { MODKEY|ShiftMask,     43,        rotate,      { .i = -1 } },
           21 +        { MODKEY|ShiftMask,     44,        movetab,     { .i = -1 } },
           22 +        { MODKEY|ShiftMask,     45,        movetab,     { .i = +1 } },
           23 +        { MODKEY,               23,        rotate,      { .i = 0 } },
           24  
           25 -        { MODKEY,               XK_grave,  spawn,       SETPROP("_TABBED_SELECT_TAB") },
           26 -        { MODKEY,               XK_1,      move,        { .i = 0 } },
           27 -        { MODKEY,               XK_2,      move,        { .i = 1 } },
           28 -        { MODKEY,               XK_3,      move,        { .i = 2 } },
           29 -        { MODKEY,               XK_4,      move,        { .i = 3 } },
           30 -        { MODKEY,               XK_5,      move,        { .i = 4 } },
           31 -        { MODKEY,               XK_6,      move,        { .i = 5 } },
           32 -        { MODKEY,               XK_7,      move,        { .i = 6 } },
           33 -        { MODKEY,               XK_8,      move,        { .i = 7 } },
           34 -        { MODKEY,               XK_9,      move,        { .i = 8 } },
           35 -        { MODKEY,               XK_0,      move,        { .i = 9 } },
           36 +        { MODKEY,               49,        spawn,       SETPROP("_TABBED_SELECT_TAB") },
           37 +        { MODKEY,               10,        move,        { .i = 0 } },
           38 +        { MODKEY,               11,        move,        { .i = 1 } },
           39 +        { MODKEY,               12,        move,        { .i = 2 } },
           40 +        { MODKEY,               13,        move,        { .i = 3 } },
           41 +        { MODKEY,               14,        move,        { .i = 4 } },
           42 +        { MODKEY,               15,        move,        { .i = 5 } },
           43 +        { MODKEY,               16,        move,        { .i = 6 } },
           44 +        { MODKEY,               17,        move,        { .i = 7 } },
           45 +        { MODKEY,               18,        move,        { .i = 8 } },
           46 +        { MODKEY,               19,        move,        { .i = 9 } },
           47  
           48 -        { MODKEY,               XK_q,      killclient,  { 0 } },
           49 +        { MODKEY,               24,        killclient,  { 0 } },
           50  
           51 -        { MODKEY,               XK_u,      focusurgent, { 0 } },
           52 -        { MODKEY|ShiftMask,     XK_u,      toggle,      { .v = (void*) &urgentswitch } },
           53 +        { MODKEY,               30,        focusurgent, { .v = NULL } },
           54 +        { MODKEY|ShiftMask,     30,        toggle,      { .v = (void*) &urgentswitch } },
           55  
           56 -        { 0,                    XK_F11,    fullscreen,  { 0 } },
           57 +        { 0,                    95,        fullscreen,  { 0 } },
           58  };
           59 diff --git a/tabbed.c b/tabbed.c
           60 index ff3ada0..e30b4e2 100644
           61 --- a/tabbed.c
           62 +++ b/tabbed.c
           63 @@ -58,7 +58,7 @@ typedef union {
           64  
           65  typedef struct {
           66          unsigned int mod;
           67 -        KeySym keysym;
           68 +        KeyCode keycode;
           69          void (*func)(const Arg *);
           70          const Arg arg;
           71  } Key;
           72 @@ -653,11 +653,9 @@ keypress(const XEvent *e)
           73  {
           74          const XKeyEvent *ev = &e->xkey;
           75          unsigned int i;
           76 -        KeySym keysym;
           77  
           78 -        keysym = XkbKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0, 0);
           79          for (i = 0; i < LENGTH(keys); i++) {
           80 -                if (keysym == keys[i].keysym &&
           81 +                if (ev->keycode == keys[i].keycode &&
           82                      CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) &&
           83                      keys[i].func)
           84                          keys[i].func(&(keys[i].arg));
           85 @@ -694,7 +692,6 @@ manage(Window w)
           86                  int i, j, nextpos;
           87                  unsigned int modifiers[] = { 0, LockMask, numlockmask,
           88                                               numlockmask | LockMask };
           89 -                KeyCode code;
           90                  Client *c;
           91                  XEvent e;
           92  
           93 @@ -705,12 +702,10 @@ manage(Window w)
           94                  XSync(dpy, False);
           95  
           96                  for (i = 0; i < LENGTH(keys); i++) {
           97 -                        if ((code = XKeysymToKeycode(dpy, keys[i].keysym))) {
           98 -                                for (j = 0; j < LENGTH(modifiers); j++) {
           99 -                                        XGrabKey(dpy, code, keys[i].mod |
          100 -                                                 modifiers[j], w, True,
          101 -                                                 GrabModeAsync, GrabModeAsync);
          102 -                                }
          103 +                        for (j = 0; j < LENGTH(modifiers); ++j) {
          104 +                                XGrabKey(dpy, keys[i].keycode,
          105 +                                         keys[i].mod | modifiers[j], w,
          106 +                                         True, GrabModeAsync, GrabModeAsync);
          107                          }
          108                  }
          109