diff --git a/config.def.h b/config.def.h index a784eb4..d09ee55 100644 --- a/config.def.h +++ b/config.def.h @@ -140,6 +140,7 @@ static const Key keys[] = { { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space, togglefloating, {0} }, { MODKEY, XKB_KEY_e, togglefullscreen, {0} }, { MODKEY, XKB_KEY_0, view, {.ui = ~0} }, + { MODKEY, XKB_KEY_o, winview, {0}}, { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_parenright, tag, {.ui = ~0} }, { MODKEY, XKB_KEY_comma, focusmon, {.i = WLR_DIRECTION_LEFT} }, { MODKEY, XKB_KEY_period, focusmon, {.i = WLR_DIRECTION_RIGHT} }, diff --git a/dwl.c b/dwl.c index 6f041a0..65df112 100644 --- a/dwl.c +++ b/dwl.c @@ -346,6 +346,7 @@ static void urgent(struct wl_listener *listener, void *data); static void view(const Arg *arg); static void virtualkeyboard(struct wl_listener *listener, void *data); static void virtualpointer(struct wl_listener *listener, void *data); +static void winview(const Arg *a); static Monitor *xytomon(double x, double y); static void xytonode(double x, double y, struct wlr_surface **psurface, Client **pc, LayerSurface **pl, double *nx, double *ny); @@ -2877,6 +2878,17 @@ virtualpointer(struct wl_listener *listener, void *data) wlr_cursor_map_input_to_output(cursor, &pointer.base, event->suggested_output); } +void +winview(const Arg *a) { + Arg b = {0}; + Client *sel = focustop(selmon); + if(!sel) + return; + b.ui = sel -> tags; + view(&b); + return; +} + Monitor * xytomon(double x, double y) {