A technical idea on startup notification.
Dominik Smogór
dsmogor at o2.pl
Thu May 15 00:08:10 EEST 2003
Hello all,
I have come uu with an idea as I presume may help in solving startup
notification problems. However I'm in no way an expert in both X and
linux library handling so I can't assure it is feasible. I also don't
know if it weren't proposed before.
Startup notification solutions as I presume are currently implemented
as follows:
- as a app starts, it sends DE a message asking for display of
busy coursor.
- as the app is ready to start interaction with user is send's DE a
message asking for taking busy coursor out.
The problem with it isn't transparent and requries deliberabte support
form app programmers, leave all "legacy" software behind
The idea for such software is to use LD_PRELOAD to hook some common
library function that commonly is called just before starting
interaction with user ( XCreateWindow is what comes to my mind first).
The scenario would be as follows:
-user starts an app using some DE facility (menu or file manager)
-the facility informs DE to turn busy coursor on.
-app makes internal preparation and is ready to displaying window
and calls hooked up function
-LD_PRELOADED version asks DE to turn busy coursor off and then
calls orginal function.
Of course there may be some problems with this approach that will have
to be further resolved, like:
-it may not be possible to access orginal version of function
covered using LD_PRELOADED library
-it may not be possible to directly send a message from covered
function (e.g. if it would involve some as asynhronous processing)
-some X apps will not call XCreateWindow at all? sys tray apps?
-using LD_PRELOAD is not advisable for some reasons (security?)
-it won't work with apps started from command line or not supported
file manager
However I think it is worth to at lead look at this possibility.
Best regards,
DS.
ps.
I posted this to this list in hope that most people struggling with
startup notification problems are subscribed. After all problem of is
cross desktop nature so why not try to solve it in collaboration.
More information about the xdg
mailing list