surf-modal-20190209-d068a38.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       surf-modal-20190209-d068a38.diff (6157B)
       ---
            1 From 74a98d9600c50d50b9323cf8e459c88eb15da557 Mon Sep 17 00:00:00 2001
            2 From: efe <efe@efe.kim>
            3 Date: Sat, 9 Feb 2019 13:16:51 -0500
            4 Subject: [PATCH] Modal behaviour, 'i' to insert 'Esc' to get to the normal
            5  mode
            6 
            7 ---
            8  config.def.h | 53 +++++++++++++++++++++++++++-------------------------
            9  surf.c       | 14 +++++++++++++-
           10  2 files changed, 41 insertions(+), 26 deletions(-)
           11 
           12 diff --git a/config.def.h b/config.def.h
           13 index 34265f6..8b7d5a2 100644
           14 --- a/config.def.h
           15 +++ b/config.def.h
           16 @@ -130,41 +130,44 @@ static SiteSpecific certs[] = {
           17   */
           18  static Key keys[] = {
           19          /* modifier              keyval          function    arg */
           20 -        { MODKEY,                GDK_KEY_g,      spawn,      SETPROP("_SURF_URI", "_SURF_GO", PROMPT_GO) },
           21 -        { MODKEY,                GDK_KEY_f,      spawn,      SETPROP("_SURF_FIND", "_SURF_FIND", PROMPT_FIND) },
           22 -        { MODKEY,                GDK_KEY_slash,  spawn,      SETPROP("_SURF_FIND", "_SURF_FIND", PROMPT_FIND) },
           23 +        { 0,                     GDK_KEY_g,      spawn,      SETPROP("_SURF_URI", "_SURF_GO", PROMPT_GO) },
           24 +        { 0,                     GDK_KEY_f,      spawn,      SETPROP("_SURF_FIND", "_SURF_FIND", PROMPT_FIND) },
           25 +        { 0,                     GDK_KEY_slash,  spawn,      SETPROP("_SURF_FIND", "_SURF_FIND", PROMPT_FIND) },
           26  
           27 -        { 0,                     GDK_KEY_Escape, stop,       { 0 } },
           28 -        { MODKEY,                GDK_KEY_c,      stop,       { 0 } },
           29 +        { 0,                     GDK_KEY_i,      insert,     { .i = 1 } },
           30 +        { 0,                     GDK_KEY_Escape, insert,     { .i = 0 } },
           31  
           32 -        { MODKEY|GDK_SHIFT_MASK, GDK_KEY_r,      reload,     { .i = 1 } },
           33 -        { MODKEY,                GDK_KEY_r,      reload,     { .i = 0 } },
           34 +        { 0,                     GDK_KEY_c,      stop,       { 0 } },
           35  
           36 -        { MODKEY,                GDK_KEY_l,      navigate,   { .i = +1 } },
           37 -        { MODKEY,                GDK_KEY_h,      navigate,   { .i = -1 } },
           38 +        { MODKEY,                GDK_KEY_r,      reload,     { .i = 1 } },
           39 +        { 0,                     GDK_KEY_r,      reload,     { .i = 0 } },
           40 +
           41 +        { 0,                     GDK_KEY_l,      navigate,   { .i = +1 } },
           42 +        { 0,                     GDK_KEY_h,      navigate,   { .i = -1 } },
           43  
           44          /* vertical and horizontal scrolling, in viewport percentage */
           45 -        { MODKEY,                GDK_KEY_j,      scrollv,    { .i = +10 } },
           46 -        { MODKEY,                GDK_KEY_k,      scrollv,    { .i = -10 } },
           47 -        { MODKEY,                GDK_KEY_space,  scrollv,    { .i = +50 } },
           48 -        { MODKEY,                GDK_KEY_b,      scrollv,    { .i = -50 } },
           49 -        { MODKEY,                GDK_KEY_i,      scrollh,    { .i = +10 } },
           50 -        { MODKEY,                GDK_KEY_u,      scrollh,    { .i = -10 } },
           51 +        { 0,                     GDK_KEY_j,      scrollv,    { .i = +10 } },
           52 +        { 0,                     GDK_KEY_k,      scrollv,    { .i = -10 } },
           53 +        { 0,                     GDK_KEY_space,  scrollv,    { .i = +50 } },
           54 +        { 0,                     GDK_KEY_b,      scrollv,    { .i = -50 } },
           55 +        { 0,                     GDK_KEY_i,      scrollh,    { .i = +10 } },
           56 +        { 0,                     GDK_KEY_u,      scrollh,    { .i = -10 } },
           57  
           58  
           59 -        { MODKEY|GDK_SHIFT_MASK, GDK_KEY_j,      zoom,       { .i = -1 } },
           60 -        { MODKEY|GDK_SHIFT_MASK, GDK_KEY_k,      zoom,       { .i = +1 } },
           61 -        { MODKEY|GDK_SHIFT_MASK, GDK_KEY_q,      zoom,       { .i = 0  } },
           62 -        { MODKEY,                GDK_KEY_minus,  zoom,       { .i = -1 } },
           63 -        { MODKEY,                GDK_KEY_plus,   zoom,       { .i = +1 } },
           64 +        { 0|GDK_SHIFT_MASK,      GDK_KEY_j,      zoom,       { .i = -1 } },
           65 +        { 0|GDK_SHIFT_MASK,      GDK_KEY_k,      zoom,       { .i = +1 } },
           66 +        { 0|GDK_SHIFT_MASK,      GDK_KEY_q,      zoom,       { .i = 0  } },
           67 +        { 0,                     GDK_KEY_minus,  zoom,       { .i = -1 } },
           68 +        { 0|GDK_SHIFT_MASK,      GDK_KEY_plus,   zoom,       { .i = +1 } },
           69 +        { 0,                     GDK_KEY_equal,  zoom,       { .i = 0  } },
           70  
           71 -        { MODKEY,                GDK_KEY_p,      clipboard,  { .i = 1 } },
           72 -        { MODKEY,                GDK_KEY_y,      clipboard,  { .i = 0 } },
           73 +        { 0,                     GDK_KEY_p,      clipboard,  { .i = 1 } },
           74 +        { 0,                     GDK_KEY_y,      clipboard,  { .i = 0 } },
           75  
           76 -        { MODKEY,                GDK_KEY_n,      find,       { .i = +1 } },
           77 -        { MODKEY|GDK_SHIFT_MASK, GDK_KEY_n,      find,       { .i = -1 } },
           78 +        { 0,                     GDK_KEY_n,      find,       { .i = +1 } },
           79 +        { 0|GDK_SHIFT_MASK,      GDK_KEY_n,      find,       { .i = -1 } },
           80  
           81 -        { MODKEY|GDK_SHIFT_MASK, GDK_KEY_p,      print,      { 0 } },
           82 +        { MODKEY,                GDK_KEY_p,      print,      { 0 } },
           83          { MODKEY,                GDK_KEY_t,      showcert,   { 0 } },
           84  
           85          { MODKEY|GDK_SHIFT_MASK, GDK_KEY_a,      togglecookiepolicy, { 0 } },
           86 diff --git a/surf.c b/surf.c
           87 index 2b54e3c..f4cbe68 100644
           88 --- a/surf.c
           89 +++ b/surf.c
           90 @@ -175,6 +175,7 @@ static void spawn(Client *c, const Arg *a);
           91  static void msgext(Client *c, char type, const Arg *a);
           92  static void destroyclient(Client *c);
           93  static void cleanup(void);
           94 +static int insertmode = 0;
           95  
           96  /* GTK/WebKit */
           97  static WebKitWebView *newview(Client *c, WebKitWebView *rv);
           98 @@ -231,6 +232,7 @@ static void togglefullscreen(Client *c, const Arg *a);
           99  static void togglecookiepolicy(Client *c, const Arg *a);
          100  static void toggleinspector(Client *c, const Arg *a);
          101  static void find(Client *c, const Arg *a);
          102 +static void insert(Client *c, const Arg *a);
          103  
          104  /* Buttons */
          105  static void clicknavigate(Client *c, const Arg *a, WebKitHitTestResult *h);
          106 @@ -1333,7 +1335,11 @@ winevent(GtkWidget *w, GdkEvent *e, Client *c)
          107                  updatetitle(c);
          108                  break;
          109          case GDK_KEY_PRESS:
          110 -                if (!curconfig[KioskMode].val.i) {
          111 +                if (!curconfig[KioskMode].val.i &&
          112 +                    !insertmode ||
          113 +                    CLEANMASK(e->key.state) == (MODKEY|GDK_SHIFT_MASK) ||
          114 +                    CLEANMASK(e->key.state) == (MODKEY) ||
          115 +                    gdk_keyval_to_lower(e->key.keyval) == (GDK_KEY_Escape)) {
          116                          for (i = 0; i < LENGTH(keys); ++i) {
          117                                  if (gdk_keyval_to_lower(e->key.keyval) ==
          118                                      keys[i].keyval &&
          119 @@ -1947,6 +1953,12 @@ find(Client *c, const Arg *a)
          120          }
          121  }
          122  
          123 +void
          124 +insert(Client *c, const Arg *a)
          125 +{
          126 +                insertmode = (a->i);
          127 +}
          128 +
          129  void
          130  clicknavigate(Client *c, const Arg *a, WebKitHitTestResult *h)
          131  {
          132 -- 
          133 2.20.1
          134