Warning: session_start(): open(/var/lib/php/sessions/sess_cn0mqno7vbta79i6tj9a0t3pea, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
compact module LinuxWindowList > DynObjectTable {
bool inZOrder = false;
S switchableFields() { ret 'inZOrder; }
start {
if (!isLinux())
ret with setModuleName("Sorry, wrong OS - LINUX Window List");
dontPersist();
set fieldsInOrder;
defaultAction = voidfunc(wmctrl_Entry e) { wmctrl_activateWindow(e) };
doEvery(0.0, 10.0, r updateMe);
}
afterVisualize {
popupMenuItem_top("Close window", r { wmctrl_closeWindow(selected()) });
popupMenuItem_top("Switch to window", defaultAction);
popupMenuItem_top("Shoot window", rThread { showImage(shootSystemWindow(selected())) });
}
void update {
S output = backtick("wmctrl -lpG");
L l = linux_parse_wmctrl_lpG_output(output);
if (inZOrder) {
LS order = map last7chars(regexpExtractAll("0x[a-f0-9]+", backtick("xprop -root _NET_CLIENT_LIST_STACKING")));
final Map map = mapItemsToListIndex(order);
l = sortedByCalculatedFieldDesc(l, func(wmctrl_Entry e) {
map.get(last7chars(e.windowIdentity))
});
}
setData(l);
}
}