@@ 159,6 159,7 @@ static const Key keys[] = {
{ MODKEY, XKB_KEY_period, focusmon, {.i = WLR_DIRECTION_RIGHT} },
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_less, tagmon, {.i = WLR_DIRECTION_LEFT} },
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_greater, tagmon, {.i = WLR_DIRECTION_RIGHT} },
+ { MODKEY, XKB_KEY_m, focusnthclient, {0} },
TAGKEYS( XKB_KEY_1, XKB_KEY_exclam, 0),
TAGKEYS( XKB_KEY_2, XKB_KEY_at, 1),
TAGKEYS( XKB_KEY_3, XKB_KEY_numbersign, 2),
@@ 319,6 319,7 @@ static void focusclient(Client *c, int lift);
static void focusmon(const Arg *arg);
static void focusnthmon(const Arg *arg);
static void focusstack(const Arg *arg);
+static void focusnthclient(const Arg *arg);
static Client *focustop(Monitor *m);
static void fullscreennotify(struct wl_listener *listener, void *data);
static size_t getunusedtag(void);
@@ 3121,6 3122,22 @@ tagnthmon(const Arg *arg)
}
void
+focusnthclient(const Arg *arg)
+{
+ Client *c;
+ unsigned int i = arg->ui;
+
+ wl_list_for_each(c, &clients, link) {
+ if (i == 0) {
+ focusclient(c, 1);
+ return;
+ }
+
+ i--;
+ }
+}
+
+void
tile(Monitor *m)
{
unsigned int mw, my, ty;