Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site mit-eddie.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!horswill@loon.ai.mit.edu From: horswill@loon.ai.mit.edu Newsgroups: net.emacs Subject: emacs mouse support Message-ID: <912@mit-eddie.UUCP> Date: Thu, 9-Jan-86 19:33:59 EST Article-I.D.: mit-eddi.912 Posted: Thu Jan 9 19:33:59 1986 Date-Received: Fri, 10-Jan-86 07:35:44 EST Sender: bcn@mit-eddi.UUCP Organization: MIT, Cambridge, MA Lines: 47 From: horswill@loon.ai.mit.edu A few months ago I wrote a quick kluge for the Sun workstation which I called "emacstool". It was simply a copy of the tty window driver which I had modified to send escape sequences when mouse events occurred. I never distributed it, in part because it contained SMI source code and in part because I didn't consider it "finished". After having used it for a while, I have come to believe that it is a very nice way of doing things for two reasons. First, it keeps emacs from having to contain code for talking to a particular window system. Thus the source directories do not have to have files called "mouse_smi.c", and "mouse_apollo.c", and people running emacs from dialup lines need not have all the window system crud in their address space. A second reason why I like the notion of an "ascii mouse" protocol is that it allows me to perform mouse operations even when emacs is not running on a machine with a mouse. For example, I can run emacstool on a sun, login on a vax from emacstool, and then run emacs with the mouse support code loaded, and do all of the things which I can do on a sun on the vax. In addition, if I owned a Macintosh or clone thereof, I could modify my terminal emulator to send the Sun escape sequences and, once again, do all of the things I could do on a Sun over a dialup line. I am now planning on writing a "correct" version of the mouse support code, and in particular, am planning to keep proprietary code out of it so that it may be distributed. I would like to standardize the mouse protocol so that others can use it, and in particular, can start to incorporate mouse support into their emacs packages (e.g. make the middle button visit a file in dired). My questions for the group are thus: - What work, if any, has already been done? - What sorts of mouse events should be included in the protocol? e.g. do we allow chords of buttons, double clicks, etc. - What do we do about commies who don't have three buttons? - What should the actual protocol look like? and, - What sorts of standard hooks should be incorporated into emacs? I would appreciate it if you could include explanations if and when you get into nitty-gritty elisp discussions since I am relatively unfamiliar with elisp. Thanks, Ian Horswill Univ. of Minn. CS Dept.