mirror of
https://codeberg.org/dwl/dwl.git
synced 2025-01-15 05:17:29 -08:00
apply rotatetags patch
This commit is contained in:
parent
325145d4c6
commit
184340c86c
2 changed files with 41 additions and 1 deletions
13
config.def.h
13
config.def.h
|
@ -13,6 +13,13 @@ static const float urgentcolor[] = COLOR(0xff0000ff);
|
||||||
/* To conform the xdg-protocol, set the alpha to zero to restore the old behavior */
|
/* To conform the xdg-protocol, set the alpha to zero to restore the old behavior */
|
||||||
static const float fullscreen_bg[] = {0.1, 0.1, 0.1, 1.0}; /* You can also use glsl colors */
|
static const float fullscreen_bg[] = {0.1, 0.1, 0.1, 1.0}; /* You can also use glsl colors */
|
||||||
|
|
||||||
|
enum {
|
||||||
|
VIEW_L = -1,
|
||||||
|
VIEW_R = 1,
|
||||||
|
SHIFT_L = -2,
|
||||||
|
SHIFT_R = 2,
|
||||||
|
} RotateTags;
|
||||||
|
|
||||||
/* tagging - TAGCOUNT must be no greater than 31 */
|
/* tagging - TAGCOUNT must be no greater than 31 */
|
||||||
#define TAGCOUNT (9)
|
#define TAGCOUNT (9)
|
||||||
|
|
||||||
|
@ -124,7 +131,11 @@ static const Key keys[] = {
|
||||||
{ MODKEY, XKB_KEY_j, focusstack, {.i = +1} },
|
{ MODKEY, XKB_KEY_j, focusstack, {.i = +1} },
|
||||||
{ MODKEY, XKB_KEY_k, focusstack, {.i = -1} },
|
{ MODKEY, XKB_KEY_k, focusstack, {.i = -1} },
|
||||||
{ MODKEY, XKB_KEY_i, incnmaster, {.i = +1} },
|
{ MODKEY, XKB_KEY_i, incnmaster, {.i = +1} },
|
||||||
{ MODKEY, XKB_KEY_d, incnmaster, {.i = -1} },
|
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_i, incnmaster, {.i = -1} },
|
||||||
|
{ MODKEY, XKB_KEY_a, rotatetags, {.i = VIEW_L} },
|
||||||
|
{ MODKEY, XKB_KEY_d, rotatetags, {.i = VIEW_R} },
|
||||||
|
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_a, rotatetags, {.i = SHIFT_L} },
|
||||||
|
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_d, rotatetags, {.i = SHIFT_R} },
|
||||||
{ MODKEY, XKB_KEY_h, setmfact, {.f = -0.05} },
|
{ MODKEY, XKB_KEY_h, setmfact, {.f = -0.05} },
|
||||||
{ MODKEY, XKB_KEY_l, setmfact, {.f = +0.05} },
|
{ MODKEY, XKB_KEY_l, setmfact, {.f = +0.05} },
|
||||||
{ MODKEY, XKB_KEY_Return, zoom, {0} },
|
{ MODKEY, XKB_KEY_Return, zoom, {0} },
|
||||||
|
|
29
dwl.c
29
dwl.c
|
@ -327,6 +327,7 @@ static Monitor *xytomon(double x, double y);
|
||||||
static void xytonode(double x, double y, struct wlr_surface **psurface,
|
static void xytonode(double x, double y, struct wlr_surface **psurface,
|
||||||
Client **pc, LayerSurface **pl, double *nx, double *ny);
|
Client **pc, LayerSurface **pl, double *nx, double *ny);
|
||||||
static void zoom(const Arg *arg);
|
static void zoom(const Arg *arg);
|
||||||
|
static void rotatetags(const Arg *arg);
|
||||||
|
|
||||||
/* variables */
|
/* variables */
|
||||||
static const char broken[] = "broken";
|
static const char broken[] = "broken";
|
||||||
|
@ -2739,6 +2740,34 @@ zoom(const Arg *arg)
|
||||||
arrange(selmon);
|
arrange(selmon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
rotatetags(const Arg *arg)
|
||||||
|
{
|
||||||
|
Arg newarg;
|
||||||
|
int i = arg->i;
|
||||||
|
int nextseltags = 0, curseltags = selmon->tagset[selmon->seltags];
|
||||||
|
bool shift = false;
|
||||||
|
|
||||||
|
switch(abs(i)) {
|
||||||
|
default: break;
|
||||||
|
case SHIFT_R:
|
||||||
|
shift = true;
|
||||||
|
break;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (i > 0)
|
||||||
|
nextseltags = (curseltags << 1) | (curseltags >> (TAGCOUNT - 1));
|
||||||
|
else
|
||||||
|
nextseltags = (curseltags >> 1) | (curseltags << (TAGCOUNT - 1));
|
||||||
|
|
||||||
|
newarg.i = nextseltags;
|
||||||
|
|
||||||
|
if (shift) {
|
||||||
|
tag(&newarg);
|
||||||
|
} else
|
||||||
|
view(&newarg);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef XWAYLAND
|
#ifdef XWAYLAND
|
||||||
void
|
void
|
||||||
activatex11(struct wl_listener *listener, void *data)
|
activatex11(struct wl_listener *listener, void *data)
|
||||||
|
|
Loading…
Reference in a new issue