dwm/aji.c

55 lines
1.5 KiB
C
Raw Normal View History

void
cyclelayout(const Arg *arg) {
Layout *next;
for (next = (Layout *)layouts; next != selmon->lt[selmon->sellt]; next++);
if ((++next - layouts) >= LENGTH(layouts))
next = (Layout *)layouts;
setlayout(&(Arg) { .v = next });
}
/** Function to shift the current view to the left/right
*
* @param: "arg->i" stores the number of tags to shift right (positive value)
* or left (negative value)
*/
void
shifttag(const Arg *arg) {
if(selmon->sel){
Arg shifted;
if(arg->i > 0) // left circular shift
shifted.ui = (selmon->tagset[selmon->seltags] << arg->i)
| (selmon->tagset[selmon->seltags] >> (LENGTH(tags) - arg->i));
else // right circular shift
shifted.ui = selmon->tagset[selmon->seltags] >> (- arg->i)
| selmon->tagset[selmon->seltags] << (LENGTH(tags) + arg->i);
selmon->sel->tags = shifted.ui & TAGMASK;
arrange(selmon);
view(&shifted);
}
}
/** Function to shift the current view to the left/right
*
* @param: "arg->i" stores the number of tags to shift right (positive value)
* or left (negative value)
*/
void
shiftview(const Arg *arg) {
Arg shifted;
if(arg->i > 0) // left circular shift
shifted.ui = (selmon->tagset[selmon->seltags] << arg->i)
| (selmon->tagset[selmon->seltags] >> (LENGTH(tags) - arg->i));
else // right circular shift
shifted.ui = selmon->tagset[selmon->seltags] >> (- arg->i)
| selmon->tagset[selmon->seltags] << (LENGTH(tags) + arg->i);
view(&shifted);
}