Perhaps with 4.0 the extension definition could be changed to support an even more modular approach. If .desktop items were separate then I could achieve a single Applications menu and, in fact, all extensions would be ondemand. Imagine how fast to boot and would make for a more simple system. It is something that I am toying with.
I've been thinking about this too. I'll just write down my ideas here:
Current ondemand is inconsistent, onboot.lst has a completely different structure.
Thus I propose these changes:
1. The tool ondemand is a shell script containing "tce-load -i $0".
2. For every extension there is a symlink pointing to the ondemand script. They all lie in a directory at the end of PATH.
3. In order to create the symlinks we can use e.g. ondemand.lst with the same whitelist/blacklist approach we already know from onboot.lst and copy2fs.lst.
4. Ondemand currently doesn't work well with copy2fs. So we put the ondemand tool and symlink dir somewhere in the root file system.
To complicate things further the script might also be able to find the right extension name for symlinks created from .desktop items.
And instead of .desktop files we could also use other means to find the extensions even of arbitrary executables: extension.lst files, provides.sh, user files.
One might even have one global ondemand.lst including all executables from every extension.
We may eventually want to maintain a buffer for mapping executables to extensions efficiently, but that should not be visible to the user!