Implement stack_balance and assign it to M-S-<h,l>

This commit is contained in:
Yuri D'Elia 2013-04-15 18:50:42 +02:00 committed by Marco Peereboom
parent e0e24c4fa6
commit 5af4c4b26b
2 changed files with 15 additions and 0 deletions

View file

@ -350,6 +350,7 @@ See
.Ic master_del ,
.Ic stack_inc ,
.Ic stack_dec ,
.Ic stack_balance ,
and
.Ic always_raise
for more information.
@ -616,6 +617,8 @@ cycle_layout
flip_layout
.It Cm M-S- Ns Aq Cm Space
stack_reset
.It Cm M-S-h
stack_balance
.It Cm M-h
master_shrink
.It Cm M-l
@ -753,6 +756,8 @@ Cycle layout.
Swap the master and stacking areas.
.It Cm stack_reset
Reset layout.
.It Cm stack_balance
Balance master/stacking area.
.It Cm master_shrink
Shrink master area.
.It Cm master_grow

View file

@ -627,6 +627,7 @@ union arg {
#define SWM_ARG_ID_FLIPLAYOUT (24)
#define SWM_ARG_ID_STACKRESET (30)
#define SWM_ARG_ID_STACKINIT (31)
#define SWM_ARG_ID_STACKBALANCE (32)
#define SWM_ARG_ID_CYCLEWS_UP (40)
#define SWM_ARG_ID_CYCLEWS_DOWN (41)
#define SWM_ARG_ID_CYCLERG_UP (42)
@ -893,6 +894,7 @@ enum keyfuncid {
KF_STACK_INC,
KF_STACK_DEC,
KF_STACK_RESET,
KF_STACK_BALANCE,
KF_SWAP_MAIN,
KF_SWAP_NEXT,
KF_SWAP_PREV,
@ -4944,6 +4946,9 @@ vertical_config(struct workspace *ws, int id)
ws->l_state.vertical_mwin = 1;
ws->l_state.vertical_stacks = 1;
break;
case SWM_ARG_ID_STACKBALANCE:
ws->l_state.vertical_msize = SWM_V_SLICE / (ws->l_state.vertical_stacks + 1);
break;
case SWM_ARG_ID_MASTERSHRINK:
if (ws->l_state.vertical_msize > 1)
ws->l_state.vertical_msize--;
@ -4994,6 +4999,9 @@ horizontal_config(struct workspace *ws, int id)
ws->l_state.horizontal_msize = SWM_H_SLICE / 2;
ws->l_state.horizontal_stacks = 1;
break;
case SWM_ARG_ID_STACKBALANCE:
ws->l_state.horizontal_msize = SWM_H_SLICE / (ws->l_state.horizontal_stacks + 1);
break;
case SWM_ARG_ID_MASTERSHRINK:
if (ws->l_state.horizontal_msize > 1)
ws->l_state.horizontal_msize--;
@ -6708,6 +6716,7 @@ struct keyfunc {
{ "stack_inc", stack_config, {.id = SWM_ARG_ID_STACKINC} },
{ "stack_dec", stack_config, {.id = SWM_ARG_ID_STACKDEC} },
{ "stack_reset", stack_config, {.id = SWM_ARG_ID_STACKRESET} },
{ "stack_balance", stack_config, {.id = SWM_ARG_ID_STACKBALANCE} },
{ "swap_main", swapwin, {.id = SWM_ARG_ID_SWAPMAIN} },
{ "swap_next", swapwin, {.id = SWM_ARG_ID_SWAPNEXT} },
{ "swap_prev", swapwin, {.id = SWM_ARG_ID_SWAPPREV} },
@ -7510,6 +7519,7 @@ setup_keys(void)
setkeybinding(MODKEY_SHIFT, XK_comma, KF_STACK_INC, NULL);
setkeybinding(MODKEY_SHIFT, XK_period, KF_STACK_DEC, NULL);
setkeybinding(MODKEY_SHIFT, XK_space, KF_STACK_RESET, NULL);
setkeybinding(MODKEY_SHIFT, XK_h, KF_STACK_BALANCE, NULL);
setkeybinding(MODKEY, XK_Return, KF_SWAP_MAIN, NULL);
setkeybinding(MODKEY_SHIFT, XK_j, KF_SWAP_NEXT, NULL);
setkeybinding(MODKEY_SHIFT, XK_k, KF_SWAP_PREV, NULL);