home *** CD-ROM | disk | FTP | other *** search
- x-gateway: rodan.UU.NET from help-lucid-emacs to alt.lucid-emacs.help; Mon, 25 Jan 1993 05:25:41 EST
- Date: Mon, 25 Jan 1993 10:23:23 GMT
- From: djh@CIS.Prime.COM (David Hughes)
- Message-ID: <9301251023.AA25284@CIS.Prime.COM>
- Subject: Release of djh-imouse-2.0
- Newsgroups: alt.lucid-emacs.help
- Path: sparky!uunet!wendy-fate.uu.net!help-lucid-emacs
- Sender: help-lucid-emacs-request@lucid.com
- Lines: 237
-
- Version 2.0 of djh-imouse is now available for users of lemacs 19.3 and 19.4
- The README is enclosed below.
-
- If you wish a copy, please mail me.
-
- A big THANK YOU to my beta testers for all your useful comments and feedback.
-
- Note, it is *not* suitable for users of the ready-built versions of lemacs;
- you must have the original source files as they require a small amount of
- patching. Patch files are included in djh-imouse-2.0.
-
- --
- Regards, David
-
- 8< ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CUT HERE for file: README
- Author : David Hughes <djh@cis.prime.com>
- Date : 24th January 1993
-
- Package : djh-imouse-2.0
-
- Preamble
- ========
-
- Over a year ago, when I was still using Epoch, I came across a smart mouse
- package called imouse by Martin Boyer <gamin@ireq-robot.hydro.qc.ca> which
- I was very impressed with. I took this and customised it somewhat to be more
- suitable for my needs and to add some of my own features.
-
- Then along came Lucid Emacs19 which knocked Epoch flying... However I was not
- happy with the mouse handling that comes as standard and decided to go through
- the painful process of writing my own system based on what I had for Epoch.
-
- Comments, feedback etc are very welcome.
-
- Features of djh-imouse
- ======================
-
- * Dynamic line numbering in the modeline
-
- * The usual drag or double click select
-
- * Extending currently selected text
-
- * Selection of logical things (words, lines, strings, sexps etc)
- with a single mouse click - this where thing.el is used
-
- * Text cutting with the mouse
-
- * Paste or Move of selected text
-
- * Smart context specific mouse actions
-
- * Window splitting at arbitary positions with a single mouse click
-
- * Resizing a window by dragging the modeline up or down
-
- * Scrolling of arbitary windows by clicking on the modeline
-
- * Yanking the buffer or file-path-name by clicking on the modeline
-
- * Configurable mouse buttons - you choose which behave as "SELECT",
- "PASTE" and "MODIFY"
-
- * Prettify code with simple mouse clicks
-
- Installation
- ============
-
- 1. There are a number of patch files that need to applied first.
-
- For lemacs19.3 they are in
- djh-imouse-2.0/patch_files_19.3/{src.lisp}
-
- For lemacs19.4 they are in
- djh-imouse-2.0/patch_files_19.4/{src.lisp}
-
- For example you need to type :
-
- patch lemacs-19.4/src/data.c djh-imouse-2.0/patch_files_19.4/src/patch-data.c
-
- 2. Copy the lisp directory djh-imouse-2.0/djh-imouse into the standard area
-
- cp -r djh-imouse-2.0/djh-imouse emacs/lisp/djh-imouse
-
- Note: lisp files in djh-imouse-2.0/djh-imouse are already byte-compiled. If
- you need to recompile anything, then use the following byte-compiler
- settings:
-
- (setq byte-optimize t
- byte-optimize-log nil
- byte-compile-verbose nil
- byte-compile-delete-errors t
- byte-compile-error-on-warn nil
- byte-compile-emacs18-compatibility t
- byte-compile-warnings (list 'callargs)
- byte-compile-generate-emacs19-bytecodes nil)
-
- 3. Rebuild lemacs19
-
- 4. Add the following lines to your .emacs file :
-
- ;;;;;;;;;;;;;;;;;; Start for djh-imouse stuff ;;;;;;;;;;;;;;;;;;;;;;;;;
-
- (defconst have-x-windows (eq window-system 'x))
- (defconst running-epoch (and have-x-windows
- (boundp 'epoch::version)))
- (defconst running-emacs19 (and have-x-windows
- (not running-epoch)
- (fboundp 'compiled-function-p)))
- (defconst running-dumb-emacs (not (or running-epoch running-emacs19)))
-
- (cond (running-emacs19
- (require 'djh-imouse)
-
- ;; By default djh-imouse turns OFF zmacs regions
- ;; If you want zmacs then uncomment the following line
- ;;(setq zmacs-region t)
-
- ;; Some suggested djh-imouse key bindings
- (define-key global-map "\C-hp" 'mouse-summary)
-
- ;; these are for Sun keyboard; modify as necessary
- (define-key global-map 'f19 'kill-ring-save)
- (define-key global-map 'f18 'insert-selection)
- (define-key global-map 'SunF36 'clear-X-selection)))
-
-
- ;; djh-imouse supports automatic line-numbering in the modeline
- (defconst mode-line-line-numbering-p (not running-dumb-emacs))
- (make-variable-buffer-local 'mode-line-line-numbering-p)
-
- (defconst mode-line-buffer-info
- (if running-dumb-emacs
- '(buffer-file-name "%f " "%b [%p%]]")
- '(buffer-file-name "%f %l/%t" "%b [%p%]]")))
- (make-variable-buffer-local 'mode-line-buffer-info)
-
- ;; Refresh the mode line to set up automatic line numbering
- (refresh-mode-line t)
-
- ;; Byte Compiler Flags
- (setq byte-optimize t
- byte-optimize-log nil
- byte-compile-verbose nil
- byte-compile-delete-errors t
- byte-compile-error-on-warn nil
- byte-compile-emacs18-compatibility t
- byte-compile-warnings (list 'callargs)
- byte-compile-generate-emacs19-bytecodes nil)
-
- ;;;;;;;;;;;;;;;;;; End for djh-imouse stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Sample stuff for .Xdefaults
- ===========================
-
- !
- ! Emacs19
- !
- Emacs*menubar.background: LightSeaGreen
- Emacs*menubar.foreground: black
- Emacs*modeline.attributeFont: lucidasanstypewriter-bold-12
- Emacs*modeline.attributeForeground: black
- Emacs*modeline.attributeBackground: LightSeaGreen
- Emacs*primary-selection.attributeBackground: MediumSeaGreen
- Emacs*primary-selection.attributeForeground: black
- Emacs*primary-selection.attributeFont: lucidasanstypewriter-bold-12
- Emacs*bold.attributeFont: lucidasanstypewriter-bold-12
- Emacs*isearch.attributeBackground: gold
- Emacs*isearch.attributeForeground: black
- Emacs*bold-italic.attributeFont: courBO-12
- #ifdef COLOR
- Emacs*cursorColor: black
- Emacs*default.attributeBackground: DarkSeaGreen
- Emacs*default.attributeForeground: black
- Emacs*highlight.attributeForeground: black
- Emacs*highlight.attributeBackground: gold
- #else
- Emacs*cursorColor: white
- Emacs*default.attributeBackground: black
- Emacs*default.attributeForeground: white
- #endif
- Emacs*default.attributeFont: lucidasanstypewriter-12
- Emacs*italic.attributeFont: courO-12
- Emacs*iconic: False
- Emacs*interline: 5
- Emacs*menubar*font: -adobe-times-bold-r-normal--14-140-75-75-p-77-iso8859-1
-
-
- Usage
- =====
-
- Note - unlike the standard lemacs system, I prefer mouse selections to
- remain selected even when moving the cursor using the mouse. This
- allows you to extend the selection later and also gives you total
- control over when the selection dies. For this reason, I recommend
- hot-wiring a function key to 'clear-X-selection, a function in
- djh-imouse.el. Above, I bind F11 (SunF36) to this as an example.
-
- A reasonably intelligent user should be able to work out how to use my
- package by using the on-screen help. The package adds "Help on Mouse"
- to the Help menu on the menubar. If you use the above suggested key
- bindings you will be able to get the same help using C-h p.
-
- Your comments on the wording of this mouse help summary are invited.
-
- Briefly [using the default mouse button settings - these ARE configurable] :
-
- Mouse Buttons
- Left = SELECT
- Middle = PASTE
- Right = MODIFY
-
- Modifiers
- Control = THING
- Shift = WINDOW
- Meta = DELETE (By Meta I mean the diamond key on a sparc keyboard)
-
- SELECT (Left) PASTE (Middle) MODIFY (Right)
-
- Normal Set point or drag Paste selection Extend drag
-
- THING (Ctrl) Select thing Copy thing at point Select big thing
- WINDOW (Shft) Smart context action Return to last point Drag scroll
- DELETE (Meta) Delete character Move selection Kill region
-
- DELETE+THING Kill thing Move thing at point Kill big thing
- WINDOW+DELETE Prettify selection Split vertically Prettify func
- WINDOW+THING Line to top Line to center Line to bottom
-
- MODELINE Scroll window up Recenter window Scroll window dn
- MODELINE+THING Cut function name Paste function name Move modeline
- MODELINE+WINDOW Cut buffer pathname Paste buffer pathname Move modeline
- MODELINE+DELETE Toggle line numbering Split horizontally Toggle abbrev
- MODE+DEL+THING Delete window
- MODE+DEL+WINDOW Delete other windows
-
- C+S+Meta This summary This summary This summary
-