Previous: Q3.10.5, Up: Customisation
This actually is an X Windows question, although you’ll notice it with keyboard operations as well as while using the GUI. Basically, there are four ways to communicate interprogram via the X server:
a transient selection that gets replaced every time a new selection is made
for "exchanging" with the primary selection
a clipboard internal to the X server (deprecated)
a selection with a notification protocol that allows a separate app to manage the clipboard
The cut buffers are deprecated because managing them is even more inefficient than the clipboard notification protocol. The primary selection works fine for many users and applications, but is not very robust under intensive or sophisticated use.
In Motif, a clipboard has become the primary means for managing cut and paste. These means that "modern" applications tend to be oriented toward a true clipboard, rather than the primary selection. It’s not that SXEmacs doesn’t support the simple primary selection method, it’s that more and more other applications don’t.
So the slowdown occurs because SXEmacs now engages in the clipboard notification protocol on every kill. This is especially slow on Motif.
With most people running most clients and server on the same host, and many of the rest working over very fast communication, you may expect that the situation is not going to improve.
There are a number of workarounds. The most effective is to use a
special command to do selection ownership only when you intend to paste
to another application. Useful commands are kill-primary-selection
and copy-primary-selection
. These work only on text selected
with the mouse (probably; experiment), and are bound by default to the
Cut and Copy, respectively, buttons on the toolbar.
copy-primary-selection
is also bound to C-Insert. You can
yank the clipboard contents with yank-primary-selection
, bound to
the Paste toolbar button and Sh-Insert.
If you are communicating by cut and paste with applications that use the
primary selection, then you can customize
interprogram-cut-function
to nil
, restoring the XEmacs
version 20 behavior. How can you tell if a program will support this?
Motifly-correct programs require the clipboard; you lose. For others,
only by trying it. You also need to customize the complementary
interprogram-paste-function
to nil
. (Otherwise
SXEmacs-to-SXEmacs pastes will not work correctly.)
You may get some relief on Motif by setting
x-selection-strict-motif-ownership
to nil, but this means you will
only intermittently be able to paste SXEmacs kills to Motif applications.
Thanks to Jeff Mincy and Glynn Clements for corrections.
Previous: Q3.10.5, Up: Customisation