!7 cm CropAndJPEGify > DynPrintLogAndEnabled { transient FileWatchService watchService; transient ReliableSingleThread_Multi rst = dm_rstMulti(me(), lambda1 processFile); switchable int width = 1280; // width of right monitor in fact switchable bool left; start { ownResource(watchService = new FileWatchService); File dir = desktopDir(); watchService.addListener(dir, f -> rst.add(f), jdk_watchService_allEventKinds()); print("Watching " + dir); } void processFile(File f) { if (!enabled) ret; if (!fileExtensionIs(f, ".png")) ret; if (contains(fileName(f), "uncropped") || fileExists(appendToBaseFileName(f, ".uncropped"))) ret; sleepSeconds(1); // allow file to settle if (!fileExists(f)) ret; if (left) cropToLeftScreenInPlace(f, screenWidth(0)); else cropToRightScreenInPlace(f, width); jpegify(f); } }