There is a bug in attachbelow patch. Change one line inside attachBelow() function.
- if(c->mon->sel == NULL || c->mon->sel->isfloating) { + if (c->mon->sel == NULL || c->mon->sel == c || c->mon->sel->isfloating) { Br, Jakub Leszczak On Thu, Jun 4, 2020 at 12:17 PM Cadey Alicia Ratio <ca...@firemail.cc> wrote: > > I have found a bit of a peculiar issue when using the [attachbelow][1] > patch. It seems that when you send windows between monitors using it, > it creates a circular linked list that causes the following block of > code to create an infinite loop: > > for (c = m->clients; c; c = c->next) { > occ |= c->tags; > if (c->isurgent) > urg |= c->tags; > } > > If you end up running into this while dwm is running, you can attach to > the process with gdb and do the following to unstuck it: > > bt full (to verify you are in drawbar()) > set c->next = 0x0 > > This should unbreak dwm until the next time you attempt to send a window > between monitors. > > I have tried to debug this further, but I seem to be reaching the limits > of my C knowledge trying to diagnose and fix the root cause. > > This seems to show up most often when there is only one window on the > monitor. > > Any advice would be appreciated. > > Be well, > > Cadey Ratio > > --- > > la budza pu cusku lu > <<.i ko do snura .i ko do kanro > .i ko do panpi .i ko do gleki >