From: CRDGW2::CRDGW2::MRGATE::"SMTP::PREP.AI.MIT.EDU::HELP-GNU-EMACS-REQUEST" 7-MAR-1991 20:42:39.52 To: ARISIA::EVERHART CC: Subj: Re: Mouse under X From: help-gnu-emacs-request@prep.ai.mit.edu@SMTP@CRDGW2 To: Everhart@Arisia@MRGATE Received: by crdgw1.ge.com (5.57/GE 1.89) id AA11152; Thu, 7 Mar 91 19:25:30 EST Received: by life.ai.mit.edu (4.1/AI-4.10) id AA05570; Tue, 5 Mar 91 13:43:57 EST Return-Path: Received: from tut.cis.ohio-state.edu by life.ai.mit.edu (4.1/AI-4.10) id AA05518; Tue, 5 Mar 91 13:42:34 EST Received: by tut.cis.ohio-state.edu (5.61-kk/5.910301) id AA22855; Tue, 5 Mar 91 13:38:41 -0500 Received: from USENET by tut.cis.ohio-state.edu with netnews for help-gnu-emacs@prep.ai.mit.edu (help-gnu-emacs@prep.ai.mit.edu) (contact usenet@tut.cis.ohio-state.edu if you have questions) Date: 5 Mar 91 16:21:44 GMT From: ucivax!megatek!tau!hollen@cis.ohio-state.edu (Dion Hollenbeck) Organization: Megatek Corporation, San Diego, California Subject: Re: Mouse under X Message-Id: References: <1991Mar2.020840.20301@uicbert.eecs.uic.edu> Sender: help-gnu-emacs-request@prep.ai.mit.edu To: help-gnu-emacs@prep.ai.mit.edu In article <1991Mar2.020840.20301@uicbert.eecs.uic.edu> sloan@uicbert.eecs.uic.edu (Bob Sloan) writes: > I just built emacs 18.57 for my Sun SLC, running SunOS4.1.1 > with X11 with XMenu. All is well, except that the mouse doesn't > perform quite as advertised in the manual pages. > > When I try to find out what the keys are bound to with ctrl-h k, > for all mouse combinations I get back C-x C-@, x-flush-mouse-queue, > which is obviously a lie. > 1) This is not a lie. Before I fixed things, indeed, these were the bindings. I did not take the time to find out why. 2) Here is what I do to set up for both mouse and sun keypad, both in and out of X. I finally wrote it all into one file since I have mailed snippets of it numerous times to various people, I have made it into a generic key/mouse whacking information package. ;;=============================================================== HOW TO SET UP SUN FUNCTION KEYPAD IN OR OUT OF X WINDOWS AND ALSO SET UP MOUSE FOR X WINDOWS ----------------------------------------------------- It must be understood that these are my mappings and are not necessarily RIGHT for everyone, but give examples of how to get control over these functions as well as set up a second level keypad mapping system like used in VAX/VMS EDT and EVE. Also, do not try to implement these files AS IS. The key mappings refer to many functions not in the standard distribution. Tested on GNU Emacs 18.55, but should work on later versions too. For more information contact: hollen@megatek.uucp (Dion Hollenbeck) ;================================================== Add the following to ..../lisp/term/x-win.el: (defvar x-win-hook nil "Hook to run things like key setup and such.") and at the end of the function x-new-display: ;; Run any user's hooks (run-hooks 'x-win-hook) ;=============================================== In your .emacs: (defun my-x-win-hook() (load "x-sunkeys" nil t nil) ) (setq x-win-hook 'my-x-win-hook) (load "goldkeys" nil t nil ) ;; Set up to define Sun keymap (defun myterm-setup-hook () ;; ABSOLUTELY DO NOT LOAD THE BYTE-COMPILED VERSION !!!!! ;; May have already been done by ../term/x-win.el calling x-sunkeys.el ;; so don't do it again (if (eq window-system 'x) (load "mod-x-mouse.el" nil t nil)) (if (eq mysunkeys-defined nil) (load "sunkeys.el" nil t nil)) ) (setq sun-esc-bracket t) (setq term-setup-hook 'myterm-setup-hook) ;;====================== mod-x-mouse.el =============== ;; ;; mod-x-mouse.el ;; ;; Make our own mouse mappings ;; This should be run out of the terminal hook function ;; (define-key mouse-map x-button-left 'x-mouse-set-point) (define-key mouse-map x-button-middle 'x-mouse-set-mark) (define-key mouse-map x-button-right 'x-mouse-ignore) (define-key mouse-map x-button-s-left 'x-cut-text) (define-key mouse-map x-button-s-middle 'x-cut-and-wipe-text) (define-key mouse-map x-button-s-right 'x-paste-text) (define-key mouse-map x-button-c-left 'x-mouse-ignore) (define-key mouse-map x-button-c-middle 'x-mouse-ignore) (define-key mouse-map x-button-c-right 'x-mouse-ignore) ;=================== x-sunkeys.el ========================= ;; ;; SUN console keyboard stuff for X-Windows ;; ;; Loaded from: ...term/x-win.el (setq mysunkeys-defined t) (defvar sun-raw-map (make-sparse-keymap) "*Keymap for ESC-[ encoded keyboard") ;; set up prefix through ESCAPE map (define-key esc-map "[" sun-raw-map) ; Install sun-raw-map ;; R keys (define-key sun-raw-map "208z" 'GOLD-prefix) ; R1 ("gold") (define-key sun-raw-map "209z" 'query-replace) ; R2 (define-key sun-raw-map "210z" 'yank) ; R3 (define-key sun-raw-map "211z" 'set-mark-command) ; R4 (define-key sun-raw-map "212z" 'kill-region) ; R5 (define-key sun-raw-map "213z" 'copy-region-as-kill) ; R6 (define-key sun-raw-map "214z" 'beginning-of-buffer) ; R7 (define-key sun-raw-map "215z" 'previous-line) ; R8 (up-arrow) (define-key sun-raw-map "216z" 'scroll-down) ; R9 (define-key sun-raw-map "217z" 'backward-char) ; R10 (rt-arrow) (define-key sun-raw-map "219z" 'forward-char) ; R12 (dn-arrow) (define-key sun-raw-map "221z" 'next-line) ; R14 (lf-arrow) (define-key sun-raw-map "218z" 'recenter) ; R11 (define-key sun-raw-map "220z" 'end-of-buffer) ; R13 (define-key sun-raw-map "222z" 'scroll-up) ; R15 ;; L keys ;;NOTE: L1 does not work ;;(define-key sun-raw-map "192z" 'nothing) ; L1 ;;(define-key sun-raw-map "193z" 'nothing) ; L2 (define-key sun-raw-map "194z" 'next-start-of-line) ; L3 (define-key sun-raw-map "195z" 'next-end-of-line) ; L4 (define-key sun-raw-map "196z" 'delete-char) ; L5 (define-key sun-raw-map "197z" 'delete-current-word) ; L6 (define-key sun-raw-map "198z" 'kill-line) ; L7 (define-key sun-raw-map "199z" 'delete-current-line) ; L8 ;;(define-key sun-raw-map "200z" 'nothing) ; L9 ;;(define-key sun-raw-map "201z" 'nothing) ; L10 ;========================x-sunkeys.el ======================== ;; ;; SUN console keyboard stuff for X-Windows ;; ;; Loaded from: ...term/x-win.el (setq mysunkeys-defined t) (defvar sun-raw-map (make-sparse-keymap) "*Keymap for ESC-[ encoded keyboard") ;; set up prefix through ESCAPE map (define-key esc-map "[" sun-raw-map) ; Install sun-raw-map ;; R keys (define-key sun-raw-map "208z" 'GOLD-prefix) ; R1 ("gold") (define-key sun-raw-map "209z" 'query-replace) ; R2 (define-key sun-raw-map "210z" 'yank) ; R3 (define-key sun-raw-map "211z" 'set-mark-command) ; R4 (define-key sun-raw-map "212z" 'kill-region) ; R5 (define-key sun-raw-map "213z" 'copy-region-as-kill) ; R6 (define-key sun-raw-map "214z" 'beginning-of-buffer) ; R7 (define-key sun-raw-map "215z" 'previous-line) ; R8 (up-arrow) (define-key sun-raw-map "216z" 'scroll-down) ; R9 (define-key sun-raw-map "217z" 'backward-char) ; R10 (rt-arrow) (define-key sun-raw-map "219z" 'forward-char) ; R12 (dn-arrow) (define-key sun-raw-map "221z" 'next-line) ; R14 (lf-arrow) (define-key sun-raw-map "218z" 'recenter) ; R11 (define-key sun-raw-map "220z" 'end-of-buffer) ; R13 (define-key sun-raw-map "222z" 'scroll-up) ; R15 ;; L keys ;;NOTE: L1 does not work ;;(define-key sun-raw-map "192z" 'nothing) ; L1 ;;(define-key sun-raw-map "193z" 'nothing) ; L2 (define-key sun-raw-map "194z" 'next-start-of-line) ; L3 (define-key sun-raw-map "195z" 'next-end-of-line) ; L4 (define-key sun-raw-map "196z" 'delete-char) ; L5 (define-key sun-raw-map "197z" 'delete-current-word) ; L6 (define-key sun-raw-map "198z" 'kill-line) ; L7 (define-key sun-raw-map "199z" 'delete-current-line) ; L8 ;;(define-key sun-raw-map "200z" 'nothing) ; L9 ;;(define-key sun-raw-map "201z" 'nothing) ; L10 ;==================== goldkeys.el ====================== ;; set up GOLD keymap for both sun and wyse (setq GOLD-map (make-keymap)) (fset 'GOLD-prefix GOLD-map) (defvar GOLD-map nil "GOLD-map maps the function keys on the keyboard preceeded by the GOLD key. GOLD is PF1 on Wyse-75 and R1 on Sun console") (defun define-keypad-key (keymap function-keymap-slot definition) (let ((function-key-sequence (function-key-sequence function-keymap-slot))) (if function-key-sequence (define-key keymap function-key-sequence definition)))) ;;Bind GOLD/Keyboard keys (define-key GOLD-map "\C-g" 'keyboard-quit) ; just for safety (define-key GOLD-map "\C-m" 'newline-and-indent) ;"Return" (define-key GOLD-map " " 'undo) ;"Spacebar" (define-key GOLD-map "=" 'goto-line) ; "=" (define-key GOLD-map "%" 'match-it) ; "%" (define-key GOLD-map "]" 'call-last-kbd-macro) ; "]" (define-key GOLD-map "`" 'what-line) ; "`" (define-key GOLD-map "/" 'c-comment) ; "/" ; several defs deleted to convserve bandwidth, but you can imagine (define-key GOLD-map "0" 'insert-hfile) ; "0" ;; letter combinations: (define-key GOLD-map "b" 'buffer-writeable) ; "b" (define-key GOLD-map "B" 'buffer-writeable) ; "B" (define-key GOLD-map "c" 'case-flip-character) ; "c" (define-key GOLD-map "C" 'case-flip-character) ; "C" (define-key GOLD-map "d" 'compare-windows) ; "d" (define-key GOLD-map "D" 'compare-windows) ; "D" (define-key GOLD-map "f" 'fill-paragraph) ; "f" ; several defs deleted to convserve bandwidth, but you can imagine (define-key GOLD-map "w" 'other-window) ; "w" (define-key GOLD-map "W" 'other-window) ; "W" ;=================== end ============================= -- ----- Dion Hollenbeck (619) 455-5590 x2814 Megatek Corporation, 9645 Scranton Road, San Diego, CA 92121 uunet!megatek!hollen or hollen@megatek.uucp