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>
This commit is contained in:
parent
55dc32b27b
commit
5d0c5be102
|
@ -55,6 +55,8 @@ static Key keys[] = { \
|
||||||
|
|
||||||
{ MODKEY, XK_q, killclient, { 0 } },
|
{ MODKEY, XK_q, killclient, { 0 } },
|
||||||
|
|
||||||
|
{ MODKEY, XK_u, focusurgent, { .v = NULL } },
|
||||||
|
|
||||||
{ 0, XK_F11, fullscreen, { 0 } },
|
{ 0, XK_F11, fullscreen, { 0 } },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
3
tabbed.1
3
tabbed.1
|
@ -134,6 +134,9 @@ an already existing tab.
|
||||||
.B Ctrl\-q
|
.B Ctrl\-q
|
||||||
close tab
|
close tab
|
||||||
.TP
|
.TP
|
||||||
|
.B Ctrl\-u
|
||||||
|
focus next urgent tab
|
||||||
|
.TP
|
||||||
.B Ctrl\-[0..9]
|
.B Ctrl\-[0..9]
|
||||||
jumps to nth tab
|
jumps to nth tab
|
||||||
.TP
|
.TP
|
||||||
|
|
12
tabbed.c
12
tabbed.c
|
@ -104,6 +104,7 @@ static void expose(const XEvent *e);
|
||||||
static void focus(int c);
|
static void focus(int c);
|
||||||
static void focusin(const XEvent *e);
|
static void focusin(const XEvent *e);
|
||||||
static void focusonce(const Arg *arg);
|
static void focusonce(const Arg *arg);
|
||||||
|
static void focusurgent(const Arg *);
|
||||||
static void fullscreen(const Arg *arg);
|
static void fullscreen(const Arg *arg);
|
||||||
static char* getatom(int a);
|
static char* getatom(int a);
|
||||||
static int getclient(Window w);
|
static int getclient(Window w);
|
||||||
|
@ -491,6 +492,17 @@ focusonce(const Arg *arg) {
|
||||||
nextfocus = True;
|
nextfocus = True;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
void
|
||||||
fullscreen(const Arg *arg) {
|
fullscreen(const Arg *arg) {
|
||||||
XEvent e;
|
XEvent e;
|
||||||
|
|
Loading…
Reference in a new issue