Re: [Xpert]XFIXES extension proposal

2002-12-06 Thread Keith Packard
Around 16 o'clock on Dec 6, Juliusz Chroboczek wrote:

> Thanks.  The performance issue is clear.  What's the semantics problem?

One obvious issue is that transfering selection owner would allow only a 
single application to track the selection contents.

Another involves targets with side effects (DELETE, INSERT_SELECTION and 
INSERT_PROPERTY).  These couldn't be correctly executed by a secondary
agent.

A third is that the external agent would have to understand the data 
format and content of every possible selection target to avoid losing the 
format of interest between two clients.

Keith PackardXFree86 Core TeamHP Cambridge Research Lab


___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert



Re: [Xpert]XFIXES extension proposal

2002-12-06 Thread Juliusz Chroboczek
KP> PRIMARY semantics don't really permit that, and it's a large performance 
KP> problem for some selection types (ever done cut&paste in the gimp?); to 
KP> fully support selection content, you'd have to fetch every possible 
KP> representation of the data and store it in a separate agent.

Thanks.  The performance issue is clear.  What's the semantics problem?

Juliusz
___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert



Re: [Xpert]XFIXES extension proposal

2002-12-03 Thread Keith Packard
Around 21 o'clock on Dec 3, Juliusz Chroboczek wrote:

> Why can't klipper take the ownership of the selection, as xclipboard
> does ?

PRIMARY semantics don't really permit that, and it's a large performance 
problem for some selection types (ever done cut&paste in the gimp?); to 
fully support selection content, you'd have to fetch every possible 
representation of the data and store it in a separate agent.

Also, 'klipper' doesn't generally advertise PRIMARY; one of it's many uses 
is as a passive "assistant" where it monitors the contents of PRIMARY and 
suggestions actions based on them -- select 'http://...' and klipper 
offers to launch mozilla for you.  For that operation, it just wants the 
contents in text form, but prefers to leave the actual selection resident 
in the original application.

Remember that one of the chief benefits of selections is that the data 
doesn't actually get transfered through the X server until it's requested, 
so applications are free to advertise selections for things which will 
probably not ever be copied to another client.

> (I'm not arguing against this extension, as I think that making
> client-visible state changes observable is a Good Thing.  Just idle
> curiosity.)

I've struggled with the current protocol for 15 years without this 
notification; there's no doubt in my mind that it's a good idea.  I'm
not the originator here either, although I'm a bit fuzzy as to whether it 
was Havoc Pennington or Owen Talyor that suggested it a couple of 
weeks ago.  One of the problems of doing design meetings via IRC is that 
you don't automatically get a permanent record.

Keith PackardXFree86 Core TeamHP Cambridge Research Lab


___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert



Re: [Xpert]XFIXES extension proposal

2002-12-03 Thread Juliusz Chroboczek
KP> Applications like the KDE 'klipper' monitor selection contents to save 
KP> them and also perform actions based on them.  Right now, this happens by 
KP> having these clients contantly polling the selection.

Why can't klipper take the ownership of the selection, as xclipboard
does ?

(I'm not arguing against this extension, as I think that making
client-visible state changes observable is a Good Thing.  Just idle
curiosity.)

Juliusz
___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert



Re: [Xpert]XFIXES extension proposal

2002-12-02 Thread kwall
On Sun, Dec 01, 2002 at 10:04:40PM -0800, Keith Packard wrote:
> Around 21 o'clock on Dec 1, [EMAIL PROTECTED] wrote:
> 
> > No joy. :-( Poking around in xc/lib/Imakefile, I saw a conditional
> > with BuildXFixesLibrary, so I added " #define BuildXFixesLibrary No" 
> > to config/cf/host.def and tried "make World" again. Still no joy,
> > but the breakage is slightly different: 
> 
> $ rm xmakefile
> $ make World

Ah, I see. Thanks.

Is this something I would have known if I knew more about the innards
of imake?

> should fix things.  You'll want to leave Xfixes disabled; it won't be 
> included in XFree86 4.3 as it really isn't ready yet.

Okay. I understand that CVS is you-pays-your-money-and-takes-your-chances
grade software, though, so I'm prepared to be a crash test dummy. I've
got a working 4.2.1 installation around here somewhere if I need it.

In any event, thanks again for the tip.

K
-- 
"It's kind of fun to do the impossible."
-- Walt Disney
___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert



Re: [Xpert]XFIXES extension proposal

2002-12-01 Thread Keith Packard
Around 21 o'clock on Dec 1, [EMAIL PROTECTED] wrote:

> No joy. :-( Poking around in xc/lib/Imakefile, I saw a conditional
> with BuildXFixesLibrary, so I added " #define BuildXFixesLibrary No" 
> to config/cf/host.def and tried "make World" again. Still no joy,
> but the breakage is slightly different: 

$ rm xmakefile
$ make World

should fix things.  You'll want to leave Xfixes disabled; it won't be 
included in XFree86 4.3 as it really isn't ready yet.

Keith PackardXFree86 Core TeamHP Cambridge Research Lab


___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert



Re: [Xpert]XFIXES extension proposal

2002-12-01 Thread kwall
On Sat, Nov 30, 2002 at 07:29:12PM -0800, Keith Packard wrote:
> We've been working around various problems with the core X protocol for 
> about 15 years now.  I think it's time to build an extension that includes 
> small changes that fix big problems.

Cool.


[...]

> I've stuck these features into a new XFIXES extension and included that in
> XFree86 CVS so that others might see the code and specification and test
> whether they solve the issues they're supposed to.  This does not represent
> any endorsement by the XFree86 project or it's members (other than me), nor
> any assurance that the extension will be included in future XFree86
> releases.

I updated CVS tonight (1 December 2002, about 01:00:00 UTC). "make World"
says:
[...]
cleaning in lib/Xfixes...
make: Entering an unknown directory
make: *** Xfixes: No such file or directory.  Stop.
make: Leaving an unknown directory
make[2]: *** [clean] Error 2
make[2]: Leaving directory `/home/kwall/X/cvs/build/lib'
make[1]: *** [clean] Error 2
make[1]: Leaving directory `/home/kwall/X/cvs/build'
make: *** [World] Error 2

No joy. :-( Poking around in xc/lib/Imakefile, I saw a conditional
with BuildXFixesLibrary, so I added " #define BuildXFixesLibrary No" 
to config/cf/host.def and tried "make World" again. Still no joy,
but the breakage is slightly different: 

$ make World 
[...]
cleaning in programs/Xserver/xfixes...
make: Entering an unknown directory
make: *** xfixes: No such file or directory.  Stop.
make: Leaving an unknown directory
make[3]: *** [clean] Error 2
make[3]: Leaving directory `/home/kwall/X/cvs/build/programs/Xserver'
make[2]: *** [clean] Error 2
make[2]: Leaving directory `/home/kwall/X/cvs/build/programs'
make[1]: *** [clean] Error 2
make[1]: Leaving directory `/home/kwall/X/cvs/build'
make: *** [World] Error 2

My build tree is a shadow tree created using lndir, if that makes
a difference.

Kurt
-- 
If two men agree on everything, you may be sure that one of them is
doing the thinking.
-- Lyndon Baines Johnson
___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert



Re: [Xpert]XFIXES extension proposal

2002-12-01 Thread James Hawtin
On Sat, 30 Nov 2002, Keith Packard wrote:

> Around 0 o'clock on Dec 1, Boris wrote:
>
> > What XFree *really* needs is much more data compression when sending data
> > to a remote display
>
> I'm doing some packet level analysis of this problem; at ethernet speeds,
> most X applications spend a lot more time waiting for round trips than
> they do waiting for space on the wire to transmit more packets.
>
> The only time this isn't true is during image transport, so some kind of
> image compression is clearly indicated.
>
> The kind of image compression (essentially PNG vs JPEG), it's interactions
> with Render and shared memory are still unresolved issues my view.
>
> > The X protocol uses alot of Bandwidth when dealing with *alot* of clients.
>
> That's not always true; applications sending a lot of images do consume
> some transient bandwidth, but many applications can be easily run with
> 128Kb or less of bandwidth.  X applications are often very dependent on
> network latency for reasonable performance though, much of that dependence
> can be attributed to "sloppy" code in toolkits which don't always
> carefully avoid every round trip possible.
>

I never quite understood why lbxproxy had to be run as a seperate puedo
server. It would be much nicer if Xlib could detect if it was present
the (extension on the Xserver) and  enable it if present when not talking
to a local server.

James

___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert



Re: [Xpert]XFIXES extension proposal

2002-12-01 Thread James Hawtin
On Sat, 30 Nov 2002, Keith Packard wrote:

> Around 3 o'clock on Dec 1, James Hawtin wrote:
>
> > The only problem with the fixes extension will people use it, as they
> > will have to write the code twice so it supports "legancy" ie not Xfree86
> > systems. (thinking of selection tracking here)
>
> That's been the argument against such extensions over the last 15 years,
> and it's certainly valid as far as it goes, but I think we can now look
> toward more rapid adoption of extensions in the general population,
> certainly rapidly enough to provide incentive for application developers
> to support the new mechanisms in addition to the old.
>

But that should not be a reason not to try it, Look how long uuencode
lasted on usenet, along came yenc (which many people didn't like) and
within 2 months 75% of the traffic changed! Various venders have tried
extisions some stick and some don't (News (fail) GL(success) ,
DPS(limited success)). I think however, that Xfree86 is the perfect place
to try introduce those changes, its user base is not affraid to try
something new and is quite large, and its code is freely available.
Better to do it now than to look back in another 15 years and go, hay I
which this core problems would be fixed ;-)

James

___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert



Re: [Xpert]XFIXES extension proposal

2002-11-30 Thread Keith Packard
Around 0 o'clock on Dec 1, Boris wrote:

> What XFree *really* needs is much more data compression when sending data
> to a remote display

I'm doing some packet level analysis of this problem; at ethernet speeds, 
most X applications spend a lot more time waiting for round trips than 
they do waiting for space on the wire to transmit more packets.

The only time this isn't true is during image transport, so some kind of 
image compression is clearly indicated.

The kind of image compression (essentially PNG vs JPEG), it's interactions 
with Render and shared memory are still unresolved issues my view.

> The X protocol uses alot of Bandwidth when dealing with *alot* of clients.

That's not always true; applications sending a lot of images do consume 
some transient bandwidth, but many applications can be easily run with 
128Kb or less of bandwidth.  X applications are often very dependent on 
network latency for reasonable performance though, much of that dependence 
can be attributed to "sloppy" code in toolkits which don't always 
carefully avoid every round trip possible.

Keith PackardXFree86 Core TeamHP Cambridge Research Lab


___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert



Re: [Xpert]XFIXES extension proposal

2002-11-30 Thread Boris
What XFree *really* needs is much more data compression when sending data to
a remote display. It seems XFree is being used more and more for diskless
clients and to display remote screens. The X protocol uses alot of Bandwidth
when dealing with *alot* of clients.
- Original Message -
From: "Keith Packard" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: "Keith Packard" <[EMAIL PROTECTED]>
Sent: Saturday, November 30, 2002 10:19 PM
Subject: Re: [Xpert]XFIXES extension proposal


> Around 3 o'clock on Dec 1, James Hawtin wrote:
>
> > The only problem with the fixes extension will people use it, as they
> > will have to write the code twice so it supports "legancy" ie not
Xfree86
> > systems. (thinking of selection tracking here)
>
> That's been the argument against such extensions over the last 15 years,
> and it's certainly valid as far as it goes, but I think we can now look
> toward more rapid adoption of extensions in the general population,
> certainly rapidly enough to provide incentive for application developers
> to support the new mechanisms in addition to the old.
>
> > As kludges exist for some of these fixes, a compatibility library could
be
> > made so people who wrote code in the "new" way, would have some kind of
> > support on other systems, but still could write things "clean", in the
> > case of selection tracking, it would do the polling, but return events
as
> > if the XFIXES was there.
>
> Perhaps that would be possible at the toolkit level, but down at the
> protocol library level, there's no flow of control to manage timeouts and
> the like.  As XFree86 doesn't really have control over the dominate
> toolkits, we'll have to see what those groups manage to implement,
> although we might give them some suggestions.
>
> Keith PackardXFree86 Core TeamHP Cambridge Research Lab
>
>
> ___
> Xpert mailing list
> [EMAIL PROTECTED]
> http://XFree86.Org/mailman/listinfo/xpert
>

___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert



Re: [Xpert]XFIXES extension proposal

2002-11-30 Thread Keith Packard
Around 3 o'clock on Dec 1, James Hawtin wrote:

> The only problem with the fixes extension will people use it, as they
> will have to write the code twice so it supports "legancy" ie not Xfree86
> systems. (thinking of selection tracking here)

That's been the argument against such extensions over the last 15 years, 
and it's certainly valid as far as it goes, but I think we can now look 
toward more rapid adoption of extensions in the general population, 
certainly rapidly enough to provide incentive for application developers 
to support the new mechanisms in addition to the old.

> As kludges exist for some of these fixes, a compatibility library could be
> made so people who wrote code in the "new" way, would have some kind of
> support on other systems, but still could write things "clean", in the
> case of selection tracking, it would do the polling, but return events as
> if the XFIXES was there.

Perhaps that would be possible at the toolkit level, but down at the 
protocol library level, there's no flow of control to manage timeouts and 
the like.  As XFree86 doesn't really have control over the dominate 
toolkits, we'll have to see what those groups manage to implement, 
although we might give them some suggestions.

Keith PackardXFree86 Core TeamHP Cambridge Research Lab


___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert



Re: [Xpert]XFIXES extension proposal

2002-11-30 Thread James Hawtin
On Sat, 30 Nov 2002, Keith Packard wrote:

> 2) Selection Tracking
>
> Applications like the KDE 'klipper' monitor selection contents to save
> them and also perform actions based on them.  Right now, this happens by
> having these clients contantly polling the selection.
>
> The proposal is to have a event delivered whenever the selection changes.
>

Oh yes to this one! I rember back in the openlook(XView) days writing a
program to move selections between x and openlook. It was an absolute pain
having to poll it. Which I did every second!

The only problem with the fixes extension will people use it, as they
will have to write the code twice so it supports "legancy" ie not Xfree86
systems. (thinking of selection tracking here)

As kludges exist for some of these fixes, a compatibility library could be
made so people who wrote code in the "new" way, would have some kind of
support on other systems, but still could write things "clean", in the
case of selection tracking, it would do the polling, but return events as
if the XFIXES was there.

James

___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert



[Xpert]XFIXES extension proposal

2002-11-30 Thread Keith Packard
We've been working around various problems with the core X protocol for 
about 15 years now.  I think it's time to build an extension that includes 
small changes that fix big problems.

Such an extension would be limited to problems with existing core 
functionality that can be easily fixed in the server but for which client 
side workarounds are kludgy or broken.

I've got three proposed problems and fixes implemented already and would 
like to hear other issues of interest to the community.

1) XEMBED error recovery

The XEMBED specification http://www.freedesktop.org/standards/xembed/html
uses nested windows to place one application window within another.  One of
the authors (Owen Taylor) brought a problem with error recover in this
model to my attention and proposed a solution.  The problem is caused by
how SaveSet processing is done within the X server during (abnormal) client
termination.  Normal SaveSet processing reparents (embedded) windows to the
nearest enclosing non-client window.  In an embedding environment, that
will be the window manager frame holding the embedding application.  The
window manager won't expect new windows to suddenly appear in this context 
and (generally) ignores them and goes about destroying the frame which 
takes the embedded application window along with the frame.

The proposal is to select the root window as the SaveSet target window so 
that the window manager simply sees them as regular windows.

A further refinement is to permit these windows to remain unmapped instead 
of suddenly popping up on the screen.

2) Selection Tracking

Applications like the KDE 'klipper' monitor selection contents to save 
them and also perform actions based on them.  Right now, this happens by 
having these clients contantly polling the selection.

The proposal is to have a event delivered whenever the selection changes.

3) Cursor Image Echoing

Applications like VNC or screen magnifiers work by duplicating the 
contents of the screen, but cannot succesfully track the cursor image in 
the duplicate screen.  This makes the forwarded environment harder to use 
as the cursor image often contains significant semantic content -- like 
the precise location of window borders or application state like busy/idle.

The proposal is to have an event reported when the cursor image changes 
and a request to fetch the current cursor image.

I've stuck these features into a new XFIXES extension and included that in
XFree86 CVS so that others might see the code and specification and test
whether they solve the issues they're supposed to.  This does not represent
any endorsement by the XFree86 project or it's members (other than me), nor
any assurance that the extension will be included in future XFree86
releases.

Keith PackardXFree86 Core TeamHP Cambridge Research Lab


___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert