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?