I wrote a small C program to accomplish this, as this cannot be done any other way effectively.

You'll need Xcode installed to compile it.

https://github.com/stnvh/cgorigin

----------


    #import <Foundation/Foundation.h>
    #import <ApplicationServices/ApplicationServices.h>
    
    #define MAX_DISPLAYS 10
    
    static CGDisplayCount dispCount = MAX_DISPLAYS;
    static CGDirectDisplayID dispOnline[MAX_DISPLAYS];
    
    int main(int argc, const char * argv[]) {
    	CGDisplayCount dispOnlineCount;
    	CGDisplayErr errActive = CGGetOnlineDisplayList(dispCount, dispOnline, &dispOnlineCount);
    
    	CGDisplayConfigRef configRef;
    	CGError err = CGBeginDisplayConfiguration(&configRef);
    
    	if(!argv[1]) {
    		printf("usage: [-l | --list] [[-o | --origin] x y index] \n");
    		return 1;
    	}
    
    	for(int i = 0; i < dispOnlineCount; i++) {
    		if(dispOnline[i]) {
    			int dispWidth = CGDisplayPixelsWide(dispOnline[i]);
    			int dispHeight = CGDisplayPixelsHigh(dispOnline[i]);
    			CGPoint dispOrigin = CGDisplayBounds(dispOnline[i]).origin;
    
    			if(strcmp(argv[1], "--list") == 0 || strcmp(argv[1], "-l") == 0) {
    				printf("display %d: %dx%d %ldx%ld\n", i, dispWidth, dispHeight, (long)dispOrigin.x, (long)dispOrigin.y);
    			}
    
    			if(strcmp(argv[1], "--origin") == 0 || strcmp(argv[1], "-o") == 0) {
    				int posX = dispOrigin.x;
    				int posY = dispOrigin.y;
    				int dispInd = 1;
    
    				if(argv[2]) {
    					posX = strtol(argv[2], NULL, 0);
    				}
    				if(argv[3]) {
    					posY = strtol(argv[3], NULL, 0);
    				}
    				if(argv[4]) {
    					long _dispInd = strtol(argv[4], NULL, 0);
    
    					if(_dispInd < dispOnlineCount) {
    						dispInd = _dispInd;
    					}
    				}
    
    				if(dispInd == i) {
    					err = CGConfigureDisplayOrigin(configRef, dispOnline[i], posX, posY);
    				}
    			}
    		}
    	}
    
    	err = CGCompleteDisplayConfiguration(configRef, kCGConfigurePermanently);
    	if(err != 0) NSLog(@"Error with applying configuration: %d\n", err);
    
    	return 1;
    } 

Save to a file called `main.m`, then run:

    clang -Wall -framework Foundation -framework ApplicationServices main.m -o cgorigin

----------

Example (from Github):

> *assuming we have two monitors connected, both at 1920x1080*
> 
> `cgorigin --origin -1920 0  # positions the second monitor to the left of the main display` 

> `cgorigin --origin 0 0  # positions the second monitor to the right of the main display` 

> `cgorigin --origin -1920 1080 0  # positions the first monitor below the second display`