[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Configuring VM for optimal spoken feedback under Emacspeak

>>>>> "Jason" == Jason White <jasonw@ariel.ucs.unimelb.edu.au> writes:

    Jason> A search of the mailing list archives revealed
    Jason> very little discussion of this topic, though
    Jason> perhaps I somehow missed it.
I'll append my vm setup to the end of this message, steal
     portions of it as you see fit.
    Jason> I am trying to configure vm 6.61 to work
    Jason> effectively with Emacspeak 9.0. Firstly, I set
    Jason> vm-inhibit-startup-message, in an effort to
    Jason> prevent vm from displaying, and Emacspeak from
    Jason> reading, this startup information. Unfortunately,
    Jason> Emacspeak still reads the startup message,
I dont see this-- see what happens after you install my
     personal config 
    Jason> inconveniently while I am already browsing
    Jason> mail. This is a minor problem, however.

    Jason> Secondly, I noticed that after having pressed
    Jason> space to display the content of a message, and
    Jason> again to move to the second page, Emacspeak
    Jason> actually re-reads a large portion of the first
    Jason> page of the message. There is often considerable

Probably due to two reasons --the default vm setup splits 
the window to show a folder summary and the message itself.
Secondly, I think I always hit C-v (scroll-up) 
rather than space bar  (which runs vm-scroll-forward)
see if hitting C-v gives the right feedback.

Also, note that hitting 'j' in a vm mail buffer will hide
cited portions of a message
so typically I hit "j" and then "'" (that is a single quote)
to read the message in its entirety at one shot.
(note: hiding blocks hits an error sometimes due to a bug in
emacs  --fixed this by working around the bug after
releasing 9.0).
    Jason> overlap when scrolling. I tried setting
    Jason> vm-mutable-windows to nil, thereby preventing the
    Jason> message from being displayed in a separate
    Jason> window. This helped a little, as point is now
    Jason> placed at the start of the message body, once the
    Jason> content is displayed. However, this is not an
    Jason> optimal solution; I would rather correct the
    Jason> scrolling problem and have Emacspeak read the
    Jason> message without the overlap.

    Jason> Third problem: when I cycle voice lock mode off
    Jason> and then back on while reading a message in vm,
    Jason> in an attempt to make the audio highlighting work
The backtrace would help here.
    Jason> better, Emacspeak sometimes returns an
    Jason> error. When this happens again, I will set
    Jason> debug-on-error and report the problem more fully.

Here is my vm setup.
Clone it only after you understand what it does so you dont
get any rude surprizes.

;;; Prepare the VM mail reader:
;;; Mon Apr 25 12:13:26 EDT 1994
;;{{{  install vm 

;;; Augment load path:
(augment-load-path "vm")
(global-set-key "\M-\C-v" 'vm-visit-folder)
;;; Include the VM mail reader. You can use it by using M-C-m to read
;;; mail from ~/mbox or M-C-v to visit an existing folder in your ~/Mail
;;; directory. 
(require 'vm)

;;{{{ customize behavior
(setq vm-index-file-suffix ".idx")
(setq vm-primary-inbox "~/mbox");; Default UNIX location.
(setq vm-keep-sent-messages 5)
(setq vm-folder-directory "~/Mail/");; Default location
;; for mail folders.
(setq vm-forwarding-subject-format
(setq vm-startup-with-summary nil);; do not Show headers by default.
(setq vm-mail-window-percentage 50);; Split 50/50.
(setq vm-inhibit-startup-message t);; No junk, please.
(setq vm-preview-lines nil);; Show everything.
(setq vm-visible-headers 
      '("From:" "To:" "Subject:" "Date:" "Cc:"
(setq vm-group-by 'sort)
(setq vm-delete-after-saving t)
(setq vm-url-browser 'w3-fetch)
(setq vm-circular-folders nil)
(setq vm-confirm-new-folders t)
(setq vm-move-after-deleting nil)
(setq vm-group-by "subject")
(setq vm-keep-sent-messages 5)

;;{{{ customize my keymap for emacspeak
(and (featurep 'emacspeak)
     (define-key vm-mode-map '[delete]
(global-set-key "\C-xm" 'vm-mail)
(define-key vm-mode-map "\M-\C-m" 'widget-button-press)
;;{{{ mime in vm 
(setq vm-auto-decode-mime-messages t)
(setq vm-auto-displayed-mime-content-type-exceptions '("text/html"))
(setq vm-mime-type-converter-alist
        ("application/pdf"	"text/plain"	"show-text -o plain -f -")
        ("application/msword"	"text/plain"	"catdoc -t - ")))

(setq  vm-mime-attachment-save-directory
       (expand-file-name "~/Mail/adobe/attachments/"))

(setq vm-mime-base64-encoder-program
      (expand-file-name "~/bin/base64-encode"))
(setq vm-mime-base64-decoder-program
      (expand-file-name "~/bin/base64-decode"))

(setq vm-mime-attachment-auto-type-alist
      (append vm-mime-attachment-auto-type-alist
                 . "Application/pdf")))vm-mime-attachment-auto-type-alist)

;;{{{ frames
(setq vm-frame-per-folder nil
      vm-frame-per-composition nil
      vm-frame-per-edit nil
      vm-frame-per-help nil
      vm-frame-per-summary nil)

;;{{{ button motion
(defun vm-next-button (n)
  "Move point to N buttons forward.
If N is negative, move backward instead."
  (interactive "p")
  (let ((function (if (< n 0) 'previous-single-property-change
	(inhibit-point-motion-hooks t)
	(backward (< n 0))
	(limit (if (< n 0) (point-min) (point-max))))
    (setq n (abs n))
    (while (and (not (= limit (point)))
		(> n 0))
      ;; Skip past the current button.
      (when (get-text-property (point) 'w3-hyperlink-info)
	(goto-char (funcall function (point) 'w3-hyperlink-info nil limit)))
      ;; Go to the next (or previous) button.
      (goto-char (funcall function (point) 'w3-hyperlink-info nil limit))
      ;; Put point at the start of the button.
      (when (and backward (not (get-text-property (point) 'w3-hyperlink-info)))
	(goto-char (funcall function (point) 'w3-hyperlink-info nil limit)))
      ;; Skip past intangible buttons.
      (when (get-text-property (point) 'intangible)
	(incf n))
      (decf n))
    (unless (zerop n)
      (message  "No more buttons"))

(define-key vm-mode-map "\M-\t" 'vm-next-button)
(add-hook 'vm-quit-hook 'vm-expunge-folder)

    Jason> Regards,

    Jason> Jason.

    Jason> -----------------------------------------------------------------------------
    Jason> To unsubscribe or change your address send mail
    Jason> to "emacspeak-request@cs.vassar.edu" with a
    Jason> subject of "unsubscribe" or "help"

Best Regards,

      Adobe Systems                 Tel: 1 408 536 3945   (W14-128)
      Advanced Technology Group     Fax: 1 408 537 4042 
      W14-128 345 Park Avenue     Email: raman@adobe.com 
      San Jose , CA 95110 -2704     Email:  raman@cs.cornell.edu
      http://labrador.corp.adobe.com/~raman/        (Adobe Intranet)
      http://cs.cornell.edu/home/raman/raman.html    (Cornell)
    Disclaimer: The opinions expressed are my own and in no way should be taken
as representative of my employer, Adobe Systems Inc.

       To unsubscribe or change your address send mail to
"emacspeak-request@cs.vassar.edu" with a subject of "unsubscribe" or "help"

Emacspeak Files | Subscribe | Unsubscribe