URI: 
       focus urgent tabs - tabbed - tab interface for application supporting Xembed
  HTML git clone git://git.suckless.org/tabbed
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 5d0c5be1028c67f3b499017c5c39019f4b1d8c10
   DIR parent 55dc32b27b73c121cab18009bf087e95ef3d9c18
  HTML Author: Jonas Rabenstein <jonas.rabenstein@studium.uni-erlangen.de>
       Date:   Wed, 19 Aug 2015 21:11:15 +0200
       
       focus urgent tabs
       
       With a lot of open tabs its quite annoying to toggle through all tabs
       until reaching the next one with an urgent hint set. Also with using
       Ctrl-[0..9] to get to the first 10 tabs, in some cases this may have
       disadvantages:
       1. with more than 10 tabs, you can not use that quickselection
       2. with a small tabbed window, you do not see every tab in the
          statusbar and therefore do not know which tab got urgent
       
       Therefore I created a function, which iterates over all currently
       managed tabs, focus the first urgent tab found or stays at the current
       tab, if there is no urgent-tab. By default, that function is mapped to
       Ctrl-u.
       
       Signed-off-by: Jonas Rabenstein <jonas.rabenstein@studium.uni-erlangen.de>
       Signed-off-by: Christoph Lohmann <20h@r-36.net>
       
       Diffstat:
         M config.def.h                        |       2 ++
         M tabbed.1                            |       3 +++
         M tabbed.c                            |      12 ++++++++++++
       
       3 files changed, 17 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/config.def.h b/config.def.h
       @@ -55,6 +55,8 @@ static Key keys[] = { \
        
                { MODKEY,                       XK_q,      killclient,     { 0 } },
        
       +        { MODKEY,                       XK_u,      focusurgent,    { .v = NULL } },
       +
                { 0,                            XK_F11,    fullscreen,     { 0 } },
        };
        
   DIR diff --git a/tabbed.1 b/tabbed.1
       @@ -134,6 +134,9 @@ an already existing tab.
        .B Ctrl\-q
        close tab
        .TP
       +.B Ctrl\-u
       +focus next urgent tab
       +.TP
        .B Ctrl\-[0..9]
        jumps to nth tab
        .TP
   DIR diff --git a/tabbed.c b/tabbed.c
       @@ -104,6 +104,7 @@ static void expose(const XEvent *e);
        static void focus(int c);
        static void focusin(const XEvent *e);
        static void focusonce(const Arg *arg);
       +static void focusurgent(const Arg *);
        static void fullscreen(const Arg *arg);
        static char* getatom(int a);
        static int getclient(Window w);
       @@ -492,6 +493,17 @@ focusonce(const Arg *arg) {
        }
        
        void
       +focusurgent(const Arg *args) {
       +        int c;
       +        for(c = (sel+1)%nclients; c != sel; c = (c+1)%nclients) {
       +                if(clients[c]->urgent) {
       +                        focus(c);
       +                        return;
       +                }
       +        }
       +}
       +
       +void
        fullscreen(const Arg *arg) {
                XEvent e;