I'd like to programmatically access and manipulate the Desktop icon positions, their icons, etc.
This is for files and directories that you keep in ~/Desktop .
Where is this stuff stored?
Stored as GVFS metadata attributes.
To get all GVFS metadata attributes for file/directory:
gvfs-info '/home/user/Desktop/Untitled Folder/'
To get specific attribute - icon position:
gvfs-info -a 'metadata::nautilus-icon-position' '/home/user/Desktop/Untitled Document/'
To set icon position:
gvfs-set-attribute -t string '/home/user/Desktop/Untitled Document/' 'metadata::nautilus-icon-position' '500,500'
Remember to refresh desktop (F5 key) to see effect.
If lower level manipulation required there is Nautilus Extension API (via libnautilus):
https://developer.gnome.org/libnautilus-extension/stable/
and specifically:
https://developer.gnome.org/libnautilus-extension/stable/NautilusFileInfo.html