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?

share|improve this question
up vote 7 down vote accepted

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

share|improve this answer
    
This works well for actual files; is it also possible to access metadata::nautilus-icon-position for the special icons that appear on the desktop for USB drives, ‘Home’, etc? gvfs-info -a 'metadata::nautilus-icon-position' '/home/user/Desktop/External-drive' says “No such file or directory”. – Honore Doktorr Jan 11 '17 at 22:17

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.