I believe that the right approach is the mixture (1) that makes the LSBackgroundOnly application, (2) using a custom transparent window, as described here and set its level to NSFloatingWindowLevel, (3) using something like this in the application’s deletion to control movements mouse, although your application is inactive and, for example, allows your window to follow the position of the mouse:
[NSEvent addGlobalMonitorForEventsMatchingMask:NSMouseMovedMask handler:^(NSEvent *event) { [window setFrameOrigin:[NSEvent mouseLocation]]; }];
In the (transparent) window, you can view the views as you like, move them and change its contents according to the position of the mouse.
source share