Marco,
The "unable to read desktop.cfg" happened again today. This time I looked at the "AppData\Roaming\PLSQL Developer 15\Worksets" folder and saw two folders: "General", which is the name of my only workset, and "General.tmp". The "General.tmp" folder had a "desktop.cfg" file along with the "file.info" and other "desktop" files with numeric extensions like "desktop.005". However, the "General" folder was missing the "desktop.cfg" and some "desktop" files with numeric extensions. I made a backup copy of the "Worksets" folder and closed PL/SQL Developer, which deleted the "General.tmp" folder and deleted everything in the "General" folder. I copied the contents of the "General.tmp" backup to the "AppData\Roaming\PLSQL Developer 15\Worksets\General" folder. When I re-opened PL/SQL Developer, the workset was restored.
Could it be that PL/SQL Developer did not save the workset properly? Can you have PL/SQL Developer look for the "General.tmp" folder if it does not find the "desktop.cfg" in the "General" folder?