Registry problems.

From the API reference docs

‘datadir’ : the path to the dir where scripts should store and retrieve their data files, including saved configuration (can be None, if not found).

‘udatadir’: the path to the user defined data dir. This may not be available (is None if not found), but users that define uscriptsdir have a place for their own scripts and script data that won’t be erased when a new version of Blender is installed. For this reason we recommend scripts check this dir first and use it, if available.

‘scriptsdir’: the path to the main dir where scripts are stored.

‘uscriptsdir’: the path to the user defined dir for scripts.

Under Linux:
Using Blender.Get(‘datadir’) returns ~/.blender/scripts/bpydata, and Blender.Get(‘udatadir’) return /usr/blender/share/scripts/bpydata. Under linux I’ve always had to set Python: /usr/blender/share/scripts/ in the ‘File Paths’ to get the included scripts into the menus, and ~/.blender/scripts/ is always ‘auto detected’.

Something is arse about face here, how do you fix it?

I got bored, so patched the, and co-opted it into my script modules, now I call SaveConfigData and LoadConfigData from that module instead, and write data to the correct place, depending on sys.platform.