Re: Application Launch Detection



> >1. avoid use of LD_PRELOAD
> >2. do not patch Xlib
> 
> As well as technical concerns there's issues of protocol compatibility. 
> We're really talking about patching XFree86, not Xlib. Even if this were 
> technically the right thing to do (no comment on that), this would only 
> reach people running XFree, at least in the short term. 

True, but we reach almost all Linux users and some more. People using
other Xlib implementations can:

1) Use LD_PRELOAD hack (as everyone know, it sucks. But it also works in
most cases. I've been running it for a year or so now, and it has not
happened a single time that a app has failed for me)

2) Use the XFree86 Xlib with their vendors X-server (anyone knows if this
works?). 

3) Wait for their vendor to implement the feedback-enabled Xlib. After
all, there aren't that many commercial Xservers out there. If people agree
on that this is the right thing to do, I don't think it will to hard to
convince the Xserver vendors to include the patch. Or at least, I think it
will be far more easy to convince the five or so big Xserver vendors than
to convince all toolkit vendors/developers. How many toolkits are there
out there? http://www.geocities.com/SiliconValley/Vista/7184/guitool.html
lists at least 50 or so.

4) (a good solution, IMHO) Only use "mappingmode", eg do not distinguish
between new windows. This doesn't work perfect when starting two or more
apps at the same time, but I don't think it's a big problem. 

> I imagine revising 
> the X protocol would be a) tedious, b) slow and c) not something to do for 
> a small change. 

Adding an small hook to Xlib is not the same thing as changing the X
protocol. No one has talked about changing the X protocol. 

Applications that don't use Xlib but use the X protocol directly will not
work with my suggested approach, but since these are so rare I don't think
this is a problem. I've only seem one such app yet, and it was some kind
of a game. 


-- 
/Peter Astrand <astrand lysator liu se>








[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]