2026-06-12 · tweet · mirrored from twitter ↗

over the course of adding features to this app, fable found one difficult. it turns out a certain apple API for programmatically moving windows between spaces silently stopped working 2 years ago. it found extensive discussion about this and numerous hacky workarounds other apps had gone with over the years, and told me
basically my options were slow automated mouse dragging or partially disabling system integrity protection.

but this is 2026. we're in a post unit-distance-world so i knew better. i asked it to try to figure a good workaround anyway, even though apparently nobody else had.

about 30 minutes later it discovered that the api did in fact still work to swap *between displays*, and always placed the window on the active space. and switching active spaces was still easy to do programmatically. and that there was a fully functional virtual display API it could use. it composed all of this to "bounce" windows to the virtual display, shift active space, and then bounce back, as a way to quickly and programmatically bulk shift windows between spaces.

this doesn't require any disabling of SIP and relies entirely on existing macOS apis. people know about all of these things individually, but as far as i can tell no one on the internet has figured out how to compose them for programmatic window-space movement. hammerspoon still has an open issue where the best workaround is various forms of window dragging: https://t.co/8JB9L3ZIS8

maybe at this point ur role as an engineer is primarily telling fable to be even more ambitious than it thinks it should be

built a small utility macos app this afternoon. fable one-shotted the initial concept quickly. after a few further feature iteration rounds and bug reports it *entirely autonomously* decided to add a custom debugging control + probe + logging channel so it could test end to end

~/tweets/e9cda7fdbcda
sf