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

Re: Rewrite of "advice for new user"



This reading really helped me to fill many gaps in my Emacs education  
(been tangling with the Ctrl key for too long).
Few non-debian comments (SuSE 8.1, in my case):
emacs2.kmap.gz can be found at 
 usr/share/kbd/keymaps/i386/qwerty/emacs2.kmap.gz .
Even when it's not possible to use rpm/apt-get  since no such  package 
exists,
newcomers should not be intimidated from building and installing 
software from source.
In my case, once downloaded and extracted the flite/eflite source code 
packages (wrongly chased DecTalk and Viavoice before that),
reading the README and INSTALL files was enough to make the installation 
process as easy as configure, make, make install.


Robert J. Chassell wrote:

>    If you might find the time to delete references to the particular
>    questionner's father, I'd like to include the document in the
>    Emacspeak distribution.
>
>Here is a rewrite.  I have changed it considerably.
>
>I fear I made mistakes in the third part of this message, the part on
>installing Debian and espeakf.  I cannot remember what I did to
>install Emacspeak; and in any case, I have a non-standard set up.
>
>Please check this all out and tell me what to change.
>
>This is in plain text form.  If you like, I could convert it to Texinfo.
>
>
>
>Advice for a new user of Emacspeak
>
>by Robert J. Chassell
>2003 Apr 23
>
>This essay contains advice for a new user of Emacspeak.  It consists
>of six parts:
>
>  * Introduction
>
>      A short introductory segment, for orienting yourself.  I ask
>      two rhetorical questions.
>
>  * Introducing Emacspeak
>
>      The advice itself.  This is the longest part
>
>  * A short digression:  free books and music
>
>      How to downloadtexts, such as "Alice in Wonderland", from the
>      Gutenberg Project.
>
>  * Two software text-to-speech synthesizers
>
>      A discussion of eflite and espeakf, neither of which are mature
>      programs; each of which has virtues.
>
>  * Emacspeak Installation
>
>      A segment on installing Emacspeak in Debian with both eflite and
>      espeakf.  I am least certain about this part, even though I am
>      now running two instances of Emacspeak, one using eflite and the
>      other using espeakf.  This is because so much of my Emacs and
>      other installation is from sources.  I don't know what a
>      standard Debian or standard Emacspeak installation involves.  I
>      think what I describe is correct; but am not sure.
>
>  * A sample ~/.emacs initialization and customization file.  
>
>      I cannot imagine running Emacspeak without customizing it.
>
>
>Introduction
>
>My first question is whether you already know and use Emacspeak and
>are introducing someone else to an already running Emacspeak with
>which you have experience, or whether you are the new user and must
>not only learn to use Emacspeak yourself, but must also install it?
>(I know there are other alternatives, but these are critical.)
>
>My hope is that you are the first: that you, the reader, are someone
>who already knows and uses Emacspeak and are introducing it to someone
>else; but my fear is that you are the second.  The second path is
>harder.
>
>I will mention installation again, but before that I want you to
>think about the kind of text-to-speech facility you use.
>
>Do you expect to use a hardware card for text-to-speech generation or
>do you expect to use a software text-to-speech package such as eflite
>or espeakf?  I run both those two software packages, neither of which
>are mature.  In the installation section, I will talk about them.  I
>am told that a hardware card is better, and that if you can, you
>should use one.  Emacspeak was originally written for a hardware card.
>
>Introducing Emacspeak
>
>Let me hope that you, the reader, already know and use Emacspeak and
>are introducing it to someone else.  You may not be that person, but
>I will write this section as if you are.  You are introducing a
>friend to Emacspeak.
>
>First of all, in Info, listen together with your friend to the
>beginnings of the Emacspeak manual.  You might want to start with the
>Introduction node.  It is well written.  You can use the opportunity
>to introduce various Emacspeak commands and to discuss the philosophy
>or world-view behind Emacspeak.
>
>You can also explain the meaning of some of the jargon, such as
>`point' to mean the place in the text where commands operate, `visit'
>to mean opening a file in a buffer, and `string' to mean a `string of
>characters'.
>
>Sighted people tend to work with the three contemporary user
>interfaces: command line, graphical, and Emacs.  Each is different.
>
>A key to Emacspeak is to understand that it provides a fourth type of
>user interface.
>
>Emacspeak is different from the shell command line interface that uses
>commands such as `ls'.  It is different from a graphic user interface
>such as GNOME/sawfish that uses a package such as `Mozilla'.
>Moreover, although it is based on the virtual lisp machine interface
>that is GNU Emacs, it is different from it, too.
>
>Put another way, Emacs and Emacspeak are both integrated user
>interfaces, like a shell, plus `vi', plus `ls', plus `gdb', plus
>`gcc', plus Mozilla, and so on.  While related to each other, they
>are also different.
>
>Emacspeak is a complete audio desktop; it is not a visual desktop.
>T. V. Raman describes it in his Emacspeak manual.
>
>Your friend will want to learn a great many keystroke commands, but if
>he is like me, he will continually forget them, too.
>
>So you need to teach him how to use Info, which is where he can listen
>to the Emacspeak manual.  And you need to teach him how to use help.
>This way, he can always learn more, or relearn what he has forgot.
>
>The first commands I learned were:
>
>    C-h C-e
>        Give a brief overview of Emacspeak.  I use this command all
>        the time, to remind me of other commands.
>
>    C-e {
>         Speak paragraph.  With prefix arg, speak the rest of the
>         current paragraph.  A negative prefix arg will read from
>         start of current paragraph to point.
>
>    C-e [
>         Speak a page.  With a prefix arg, speak the rest of the
>         current page.
>
>         I often use the `C-u C-e [' command.
>
>    C-h s
>        Stop speech.
>
>    C-h i
>        Start Info
>
>               In Info, press "h" for an Info tutorial
>
>    C-h t
>        Start the Emacs Tutorial
>
>    C-u
>        The `universal-argument', which you use as a prefix to some
>        interactive commands, as with  `C-u C-e ['.
>
>Your friend will also need to learn the regular movement and search
>keys.  The Emacs Tutorial is good for that.  But first teach him how
>to listen to Info and to use the online help.
>
>As for movement:  incremental search, bound to `C-s', is the most
>important way of moving around documents.  Often people do not think
>of a search command as a movement command, but it is.  Moreover,
>Emacs incremental search provides the single best user interface for
>a search command that exists.  Many other search commands require that
>you figure out your search string before you type, which means that
>the search fails when you type too little.  Incremental search is
>nicer to use.
>
>The character and word movement keys, and the character and word
>deletion keys, are reasonably easy for English speakers to learn,
>since they use English language mnemonics:  C-f to move forward a
>character, M-f to move forward a word.  p is for previous, n is for
>next, b is for backwards, and d is for delete.
>
>Control key commands are often (but not always) for character
>movement; meta key commands are often (but not always) for word
>movement.
>
>Hmmm ... you will want to explain the use of Meta.  You might tell
>your friend that on many modern keyboards, a Meta key is what is now,
>generally erroneously, labeled ALT.  (Genuine ALT keys can and do
>exist; but the default keybinding for many machines automatically
>makes the key labeled ALT be a Meta key.  Naturally, you should set up
>the machine so that a genuine ALT key takes on a Meta keybinding, for
>example with the `install-keymap emacs2' command.)
>
>Worse, in some cases, people press the Escape key to simulate a Meta
>keypress.  No one in their right mind does this, unless forced by a
>really old keyboard.
>
>While I am speaking of keybindings, and to be complete, please be sure
>to make sure the control key is the key to the left of the `A' key.
>This is something you should set up; you don't need to explain any of
>this.
>
>You may have to change the keybinding.  On some keyboards, the key to
>the left of the `A' key is labeled `Caps_Lock'.  It is as if the
>keyboard manufacturers think that computers are typewriters from 1885.
>Worse, they put the key labeled `Control' in an awkward spot, and then
>provide default keybindings that match the labels.  You have to change
>the keybindings.
>
>Generally, the proper keymap is in
>
>    /usr/share/keymaps/i386/qwerty/emacs2.kmap.gz
>
>You can install the keymap permanently on your system for a console
>with the shell command:
>
>    install-keymap emacs2
>
>(This may be a Debian specific command; it copies the emacs2.kmap.gz
>file to the /etc/console/boottime.kmap.gz file, which is loaded into
>the kernel at boot-time.  The older and widely used command is
>`loadkeys'; when you run it, you have to specify the full path to the
>file.  For example, you might type
>
>    loadkeys /usr/share/keymaps/i386/qwerty/emacs2.kmap.gz
>
>to install the proper keymap.  Note that since files in the /usr/
>directory are sometimes not available early on during boot, it is a
>good idea to copy the `/usr/share/keymaps/i386/qwerty/emacs2.kmap.gz'
>to the `/etc/console/boottime.kmap.gz' file.  This is what the
>`install-keymap' does.  If you don't have an `install-keymap' command,
>you can copy the file yourself and put a
>`loadkeys /etc/console/boottime.kmap.gz' command into one of
>your boot scripts.)
>
>If you are using a graphical user interface, you may need to specify
>the keymap that X uses in addition to specifying the keymap used by a
>console.
>
>You can put the following commands in your .xsession or .xinitrc file:
>
>    xmodmap -e "clear Lock"
>    xmodmap -e "add Control = Caps_Lock"
>
>Some systems reverse the meaning of the Help key, Control-h, and the
>Delete key.  The node, "Keyboard Translations" in the Emacs manual
>describes what to do.
>
>You can go directly to that node in Info by evaluating the following
>expression, that is to say, by positioning point after the final
>parenthesis and typing `C-x C-e':
>
>    (info "(emacs)Keyboard Translations")
>
>(Please remember to note my use of the jargon word `point'; it needs
>to be explained.)
>
>Returning to what you might talk about early on with your friend:
>
>He may want to set the voice synthesizers speech rate.  I use both the
>`dtk-set-predefined-speech-rate' commands:
>
>    C-e d 1
>    C-e d 2
>    C-e d 3
>
>and the `dtk-set-rate' commands, such as
>
>    C-e d r 230
>
>Probably it is a good idea to pick one of these commands.  Two sets of
>commands may overload his memory.
>
>As he gains more experience, your friend will be able to understand
>text spoken faster and faster, and will want to increase its speed.
>
>Note that in both set-rate commands, an interactive prefix means to
>set the speech rate globally.  Otherwise, it is set only for the
>current buffer.
>
>Your friend may want to set rates globally, so it is worth telling
>him about typing `C-u' first.
>
>
>For a description of the basic commands, see the node `Reading' in the
>Info file emacspeak.info
>
>    (info "(emacspeak)Reading")
>
>As I said earlier, you can go directly to that node by evaluating the
>Emacs Lisp expression: position point after the final parenthesis and
>type `C-x C-e'.
>
>Perhaps evaluation is too much too soon, since it means remembering a
>new command as well as figuring out where `point' is.  On the other
>hand, I think it is worth illustrating the action, since the it opens
>up future possibilities.
>
>Incidentally, you can go directly to the Introduction node by
>evaluating:
>
>    (info "(emacspeak)Introduction")
>
>
>My hope is that you will inspire your friend to experiment with many
>commands and learn a few of them; you will inspire him to learn how to
>use the help features, to listen to the Emacspeak Info manual, and
>then to listen to the Emacs manual.
>
>After that, he can start using Emacs W3 or Emacs W3m mode to browse
>the Web, Emacs RMAIL mode to listen to Email, and Emacs mail mode to
>send it.  You may need to make sure his machine is properly configured
>for all this.
>
>While listening to the Emacspeak Info manual, it is worth explaining
>some of the problems people have with the Emacs manual, to which he
>should listen next, or at least listen to part of it.  I do not
>recommend listening to it all at once.
>
>The Emacs manual is tightly written.  When I first read it, I found I
>sometimes had to spend several minutes puzzling out a concise meaning.
>The good news is that it is accurate and well written.  And after you
>understand it, the sentences make perfect sense.
>
>When I first started, I read the manual in segments over 2 years.
>(This was in the 1980s.)  I did not understand all that I could do at
>first.  Indeed, for the longest time, I did not switch from using
>`ls -al' in a command line to using Dired mode.
>
>Some people say that the Emacs learning curve is steep.
>
>In my experience, this is not true.  It took me about five minutes to
>start to use Emacs productively.  But I could not and did not do much
>at first, except write.
>
>However, the learning curve will be steep if you try all at once to
>use many of the features that Emacs provides.  I have described
>GNU Emacs as
>
>    like having a dragon's cave of treasures.
>
>You should not try to be too greedy and over-stuff yourself all one
>sitting.
>
>(That quotation is from the Info node "On Reading this Text" in the
>Info manual that introduces programming in Emacs Lisp:
>
>    (info "(eintr)On Reading this Text")
>
>I wrote that text "as an elementary introduction for people who are
>not programmers", but presupposed experience with Emacs.  So I doubt
>you or your friend will want to look at it early on.  But I hope that
>he will keep it in mind for the future.)
>
>Returning the Emacs manual.   RMS (Richard Stallman) wrote it.
>
>Unfortunately, RMS thinks of editing as having a very large meaning.
>He writes as if using `ls' and `rm' in a command line is the shell
>equivalent of editing Emacspeak.  People who use a shell do not not
>think of this as editing.
>
>However, if you think about it, it is true that the Emacspeak actions
>in Dired mode are a kind of editing.  But they are not the same kind
>of editing as people do in an editor like `vi' when they press the
>`h', `j', `k', and `l' keys to move around.  People are fooled by the
>language.
>
>The words `mode' and `library' are not confusing, but may not be
>understood immediately.  The two provide the features that programs
>have in other interfaces.  Thus `Dired mode' provides the same
>features in Emacs that the combination of `ls', `mv', `chown',
>`chgrp', `gzip', `more', `vi', and `rm' provide in a shell.  A
>`library' provides a `mode'.
>
>Because of the adaption of Xerox Parc style windowing systems over the
>past generation, many people are confused by Emacs' use of the words
>`window' and `frame'.  Emacs provides for multiple windows within a
>frame, as it always has.
>
>You will probably not use a graphic user interface at all; but enough
>people do that you will hear what they say.
>
>Nowadays, sighted people often think of a `window' on a computer
>screen as being a contiguous, usually rectangular space, what in Emacs
>is called a `frame'.  That is because Emacs was designed initially to
>fill a complete display as a tiling window manager.  (A tiling window
>manager is one in which windows do not overlap, but are contiguous,
>like physical tiles.)  Parts of the display were called `windows'
>because they enabled a sighted person to look at all or part of a
>buffer.
>
>Companies like Apple and Sun, and the X Consortium, copied Emacs
>jargon for their own `windows', to mean a part of a screen.  (Or else
>the notion of a `window' was generic and commonplace.)
>
>Thus, the term `window' started out and continues to mean a `part of a
>display'.
>
>But when Apple, Sun, and the X Consortium, and their followers adopted
>the term `window' to mean a `part of a display', they lacked a term to
>handle a part of a `window'.  (The word `pane' was suggested, but
>never popular, because it sounds similar to the word `pain', spelled
>p a i n, and because some people were accustomed to material windows
>that were not made up of multiple `panes of glass'.)
>
>However, in those days, mostly the 1980s, `windows' seldom contained
>parts, other than a menu or tool bar or panel that applied to a whole
>`window'.  Thus, one spreadsheet would appear in one window; one file
>would appear in another.
>
>Indeed, many of the non-Emacs programs I use today in a graphic user
>interface still tend to put one set of contents, with its associated
>panels and tool bars, into one `window': for example, XMMS, Mozilla,
>or gnome-apt.
>
>With Emacs, on the other hand, you could always put a directory
>listing, two files, and an email message into four different parts of
>an Apple or X style `window' (although most people keep to one or two
>parts most of the time).  These different parts had always been
>themselves called `windows', and so they remained.  Hence, the
>invention of the term `frame' to refer to a segment of a display as
>produced by an X or Sun user interface program.
>
>Nowadays, you can start different frames in an instance of Emacspeak
>that is not running in a graphical user interface.  One frame overlies
>another.  The mode line will tell you which frame you are in.  (Type
>`C-e m' to listen to the mode line.  That key chord calls the
>`emacspeak-speak-mode-line' command.)
>
>Emacs jargon can be brutal.  Some people are upset by the use of the
>word `kill' to mean `cut' as in `cut and paste'.  (The word `cut' also
>upsets some people, but generally less than the word `kill'.)  In
>Emacs, an entity `killed' can be resurrected, which I think of as a
>Christian form of meaning.
>
>Some years ago, at the transition from Emacs version 18 to version 19,
>I offered to convert every use in Emacs of the word `kill' to `clip'.
>There were more than 400 such uses.  You could `clip' a segment of
>text, and if it were never put back, it would be deleted.
>Alternatively, you could yank the segment from `clip-ring'.  I picked
>`clip' as the replacement word since it has four letters and fits the
>older formatting and language without requiring much rewriting.
>
>Moreover, had I changed the term to `cut', people would have expected
>me to replace the word `yank' with `paste', to fit the phrase `cut and
>paste'.  But I do not like the word `paste'; I no longer literally
>paste clips onto a sheet of paper as I did when I was young.  It makes
>more sense to me to `yank' a segment back from the `clip-ring'.
>
>However, RMS never wanted me to make the replacement.  I think part of
>the reason is that at that time, RMS still enjoyed what I think of as
>a dead joke: the manual for version 18 Emacs said:
>
>    ... you don't have to kill all the text in one command; you can
>    keep killing line after line, or word after word, until you have
>    killed it all, and you can still get it all back at once.  (Thus
>    we join television in leading people to kill thoughtlessly.)
>
>(The parenthetical remark about television was removed sometime later
>and the other wording slightly improved.)
>
>Perhaps more significantly, RMS asked many people whether they were
>bothered by the jargon use of `kill'.  They said `no'.  It turned out
>that RMS asked people he thought of as significant, namely people at
>M.I.T.  I think that was too narrow a group.  But that is what
>happened, and I still think it was a mistake.
>
>Most important of all, please emphasize and explain that Emacspeak is
>safer than many programs.  What you write is automatically saved to
>disk.  This means you can work with unreliable power supplies, or
>learn by trying out new things and make what otherwise would be
>catastrophic mistakes.
>
>You can experiment and learn.
>
>
>
>A short digression:  free books and music
>
>With Emacspeak, you can listen to your email, browse the Web, write
>reports, programs, novels, and poetry.
>
>You may also want to download various books, documents, and audio
>recordings from the Gutenberg Project archive, such as Jane Austen's
>novel "Pride and Prejudice".
>
>You can visit the archive directory using W3 mode or W3M mode at
>
>    ftp://metalab.unc.edu/pub/docs/books/gutenberg/
>
>I just typed
>
>    M-x w3m-goto-url
>
>and then then the URL to reach that directory.  (Well, actually, I typed
>
>    M-x w3m-got
>
>and then pressed return.  Emacs automatically completed the name of
>the command, so I did not have to do so much typing.  And I copied
>the long URL listed above into the minibuffer so I did not have to
>type it.  I hate typing and avoid it as much as possible.)
>
>The index is
>
>    GUTINDEX.ALL
>
>and you can download it using W3M mode by positioning point on the
>name and pressing the return key.  (There are other ways of
>downloading it, too; this is one of them.)
>
>As I write this in April 2003, the Gutenberg Project index is 780
>kilobytes long and lists more than 7000 books, documents, and audio
>recordings.  I saved my copy to a file, since I dislike long downloads.
>
>You may want to use Emacspeak to listen to "Pride and Prejudice",
>"Alice in Wonderland", "The Federalist Papers" or other of the
>Gutenberg books, documents, and music.
>
>The text files from the Gutenberg Project that I have downloaded use
>the DOS `carriage-return linefeed' convention to mark ends of lines
>rather than the Unix `newline' convention.  This does not really
>matter since Emacspeak automatically detects the convention and visits
>the file using the DOS end-of-line coding format.  
>
>However, I prefer the Unix end-of-line format.  After visiting a file,
>I run the `set-buffer-file-coding-system' command on it:
>
>    C-x RET f unix RET
>
>and then save the file:
>
>    C-x C-s
>
>
>
>Two software text-to-speech synthesizers
>
>
>At the time I write this in April 2003, I am running two instances of
>Emacspeak, one using the eflite software text-to-speech synthesizer
>and the other using the espeakf software text-to-speech synthesizer.
>
>The current eflite package reads Info files better than espeakf.
>Unlike my current version of espeakf, eflite does not pause
>momentarily at the ends of lines in Info.  However, espeakf provides
>different voices, which my current version of eflite lacks.
>
>Currently, I prefer espeakf.  But I dislike the way it pauses at the
>ends of lines in Info, so I use eflite when I want to listen to Info
>files.
>
>Interestingly, in Text Voice mode, espeakf reads Jane Austen's novel,
>"Pride and Prejudice", without pausing at the ends of lines.
>
>At the moment, I am using two different Emacspeak commands, one for
>starting Emacspeak with eflite and the other for starting Emacspeak
>with espeakf.  Right now, I am running both, each as its own instance
>of Emacspeak.
>
>    emacspeak-eflite
>
>    emacspeak-espeak
>
>The two commands are shell scripts in the /usr/bin/ directory.
>
>(I am also running two other non-Emacspeak instances of Emacs: an
>Emacs version 21 owned by user `bob', and an Emacs version 20.7 owned
>by user `root'.  That way, I separate dangerous system administration
>task from ordinary work.  Moreover, since I tend to run the most
>recent CVS development snapshot of Emacs 21, I like to keep a
>known-to-work Emacs version 20.7 handy.)
>
>
>Emacspeak Installation
>
>Regarding installation:  if you have not installed Emacspeak recently,
>and plan to install the package again soon, please practice a
>reinstall first.  Perhaps, nowadays, all will go well; but perhaps not.
>
>In the past, I have had troubles with Emacspeak installation, although
>recently everything has gone well.  I am sighted, and do not depend on
>Emacspeak, so perhaps I continually renew my ignorance.
>
>In addition to a computer with a sound system, Emacspeak requires
>three packages: GNU Emacs, Emacspeak, and a text-to-speech
>synthesizer.  A hardware text-to-speech synthesizer is best, but I do
>not have one.  Instead I use two different software text-to-speech
>synthesizers, both of which are immature programs that make use of the
>more basic `festival' text-to-speech program.
>
>Installation is extensively described elsewhere.
>
>I am going to describe ony what you do in Debian and what you do to
>get espeakf running.  The process should be simple, but for some
>reason, I do not find it so.
>
>In Debian, to install Emacspeak using the eflite software
>text-to-speech synthesizer, type the following in a shell
>
>    apt-get install emacs21 emacs21-el emacspeak eflite festival
>
>The `emacs21-el' package contains the Emacs Lisp source files that
>Emacs uses.  In theory, you can run Emacs without them, but I have
>found them essential, if only for the extra documentation and
>commentary they provide.  Also, I doubt you need to install `festival'
>manually, since it should be installed automatically.  But I am
>listing it just in case.
>
>After running `apt-get', you should be able to run Emacspeak by typing
>
>    emacspeak
>
>in a shell.  That command is a shell script in `/usr/bin/emacspeak'.
>
>In theory, that is all there is to it.  And if you are not using the
>awkward, non-standard system that I am, but instead are using a well
>configured, modern, standard system, what I just told you should work.
>
>Since I run both the eflite and espeakf text-to-speech synthesizers,
>I renamed that shell script to `/usr/bin/emacspeak-eflite'.
>
>I start Emacspeak with espeakf with a different shell script, called
>`/usr/bin/emacspeak-epeakf'.  (These names are not very imaginative,
>but I can remember them.)
>
>As I write this in April 2003, espeakf is available only from
>CVS on SourceForge.  Fortunately, it is easy to download and install.
>
>First you need to decide on a directory in which you plan to keep the
>espeakf directory that you will download.  I use
>
>    /usr/local/src/
>
>Make that directory if you do not have it already, then go to it.
>
>Here are the commands, which I run as the non-privileged user `bob'
>in a shell, such as one in Emacspeak that you can start with the 
>`M-x term' command.  This facility is described in 
>
>    (info "(emacspeak)Running Terminal Based Applications")
>
>(Before you try `M-x term', be sure to learn how to get out of the
>buffer!  In Term mode, the usual commands for killing a buffer or
>switching buffers do not work.  I find the `C-c C-f', the new
>keybinding for `find-file' useful as well as the `C-c k' command,
>which kills the buffer.)
>
>In a shell, I first switch to the appropriate directory, and then I
>run the CVS login command:
>
> cd /usr/local/src/
> cvs -d :pserver:anonymous@xxxxxxxxxxx:/cvsroot/espeakf login
>
>You need to login once for CVS.  The login command will ask for your
>password.  Just press your return key.  Then, type the following
>command:
>
> cvs -d :pserver:anonymous@xxxxxxxxxxx:/cvsroot/espeakf co espeakf
>
>These commands will create a /usr/local/src/espeakf/ directory below
>your /usr/local/src/ directory and fill it with several files and
>other directories.  Emacspeak will actually run an executable Perl
>script called `espeakf.pl'.  CVS installs that Perl script properly,
>so you do not need to do anything.
>
>However, you do need to modify your `/usr/bin/emacspeak-eflite' and
>`/usr/bin/emacspeak-espeakf' start up scripts for the two different
>text-to-speech synthesizers.
>
>I use a variation on the `/usr/bin/emacspeak' script that Emacspeak
>creates automatically.  That script makes use of a
>`/etc/emacspeak.conf' file that I simply ignore, since the
>configurations for Emacspeak with the two synthesizers is different.
>Instead, I put all the configuration information into the two
>`/usr/bin/' scripts.
>
>First, the `/usr/bin/emacspeak-eflite' script:
>
>
>#!/bin/sh
>## /usr/bin/emacspeak-eflite - execute emacs with speech enhancements
>## use EFLITE
>
>## based on
>#$Id: emacspeak.sh.def,v 17.0 2002/11/23 01:29:08 raman Exp $
>
>if [ -f $HOME/.emacs ]
>then
>	INITSTR="-l $HOME/.emacs"
>fi
>
>CL_ALL=""
>for CL in $* ; do
>	if [ "$CL" = "-o" ]; then
>		DTK_PROGRAM=outloud
>		export DTK_PROGRAM
>                elif [ "$CL" = "-d" ]; then
>		DTK_PROGRAM=dtk-soft
>		export DTK_PROGRAM
>	elif [ "$CL" = "-q" ]; then
>		INITSTR=""
>	else
>		CL_ALL="$CL_ALL $CL"
>	fi
>done
>
>export EMACS_UNIBYTE=1
>export DTK_TCL=/usr/bin/eflite
>
>exec emacs -q -l /usr/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.el $INITSTR $CL_ALL
>### end /usr/bin/emacspeak-eflite
>
>
>Second, the `/usr/bin/emacspeak-espeakf' script:
>
>
>#!/bin/sh
>## /usr/bin/emacspeak-espeakf - execute emacs with speech enhancements
>## use ESPEAKF
>
>## based on
>#$Id: emacspeak.sh.def,v 17.0 2002/11/23 01:29:08 raman Exp $
>
>if [ -f $HOME/.emacs ]
>   then
>	INITSTR="-l $HOME/.emacs"
>fi
>
>CL_ALL=""
>for CL in $* ; do
>	if [ "$CL" = "-o" ]; then
>		DTK_PROGRAM=/usr/local/src/espeakf/espeakf.pl
>		export DTK_PROGRAM
>                elif [ "$CL" = "-d" ]; then
>		DTK_PROGRAM=dtk-soft
>		export DTK_PROGRAM
>	elif [ "$CL" = "-q" ]; then
>		INITSTR=""
>	else
>		CL_ALL="$CL_ALL $CL"
>	fi
>done
>
>export DTK_PROGRAM=/usr/local/src/espeakf/espeakf.pl
>export DTK_TCL=/usr/bin/perl
>export EMACS_UNIBYTE=1
>
>exec emacs -q -l /usr/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.el $INITSTR $CL_ALL
>### end /usr/bin/emacspeak-espeakf
>
>
>Both these files need to be made executable.  I did
>
>    chmod 755 emacspeak-*
>
>in a shell as user `root'.
>
>
>A ~/.emacs initialization and customization file
>
>Also, I wrote a ~/.emacs file to customize Emacspeak.  As far as I can
>figure, the only person who like Emacs in its default configuration is
>Richard Stallman, who wrote Emacs.  All the rest of us change it
>somewhat.
>
>I will not describe my full ~/.emacs file since it is more than 180
>kilobytes long.  Instead, I will create a ~/.emacs file that works (I
>just tested it) and that has a few of the customizations that I like.
>
>
>
>;;; ~/.emacs                          -*- mode: emacs-lisp -*-
>
>;; Robert J. Chassell, 2003 Apr 23
>
>;;; First, general customizations for GNU Emacs
>
>;; Make Text mode the default, with autofill
>(setq default-major-mode 'text-mode)
>(add-hook 'text-mode-hook 'turn-on-auto-fill)
>
>;; Put two spaces after a colon with explicit fill commands
>(setq colon-double-space t)
>
>;; Do not insert tabs
>;  Indentation can insert tabs if indent-tabs-mode is non-nil,
>;   but I do not like tabs.
>(setq-default indent-tabs-mode nil)
>
>;; Prevent overly frequent garbage collecting
>(setq gc-cons-threshold 600000)
>
>;; Increase undo limit
>(setq undo-strong-limit 60000)
>
>;; Increase `max-specpdl-size'
>(setq max-specpdl-size 2500)
>
>;; Automatically resize minibuffer as necessary
>(resize-minibuffer-mode 1)
>(setq resize-minibuffer-mode t)
>
>;; Enable numbered backups
>; `t'     Make numbered backups.
>; `nil'   Make numbered backups for files that have numbered backups already.
>;         Otherwise, make single backups.
>; `never' Always make single backups.
>(setq version-control t)
>
>;; Enable goal column
>(put 'set-goal-column 'disabled nil)
>
>;; Enable upcase region
>(put 'upcase-region 'disabled nil)
>
>;; Enable downcase region
>(put 'downcase-region 'disabled nil)
>
>;; Enable narrowing
>(put 'narrow-to-region 'disabled nil)
>
>;; Allow narrowing to a page.
>(put 'narrow-to-page 'disabled nil)
>
>;; Run Ediff with its help window in the same frame
>(setq ediff-window-setup-function 'ediff-setup-windows-plain)
>
>;; Ignore case when using `grep'
>; The options are:
>;    -n Prefix each line of output with line number
>;    -i Ignore case distinctions
>;    -e Protect patterns beginning with -.
>(setq grep-command "grep  -n -i -e ")
>
>;; Automatically uncompress gzip'd files when visiting them
>(load "uncompress")
>
>;; Find existing buffer, even with different name
>;  (Avoid problems with symbolic links.)
>(setq find-file-existing-other-name t)
>
>;; Insert newline at the end of a buffer
>(setq next-line-add-newlines t)
>
>;; Set command history list to 1000
>(setq list-command-history-max 1000)
>
>;; Load Info at start up rather than when you first use Info
>(load "info")
>
>;;; Custom keybindings
>
>;; Binding for goto-line.
>(global-set-key "\C-c\C-g" 'goto-line)
>
>;; Use `apropos' instead of `command-apropos'
>(global-set-key "\C-ha" 'apropos)
>
>;; Binding for compile
>(global-set-key "\C-xc" 'compile)
>
>;; Binding for occur
>(global-set-key "\C-co" 'occur)
>
>;; List all the function definitions and defvars and the like
>;; that are in an Emacs Lisp source file.
>(defun occurrences-of-def ()
>  "Run `occur' to find `^(def' from beginning of buffer (or narrowed part).
>Replaces going to the beginning of the buffer and finding the
>occurrences of `^(def'."
>  (interactive)
>  (let ((buffer (current-buffer))
>	(current-def nil))
>    (save-excursion
>      (end-of-line)			; so as to find def on current line
>      (if (re-search-backward "^(def\\w+\\W+\\w+-*.*" nil t)
>	  (setq current-def
>		(buffer-substring (match-beginning 0) (match-end 0)))))
>    (save-excursion
>      (goto-char (point-min))
>      (occur "^(def\\w+-?\\w*" nil)
>      )
>    (pop-to-buffer "*Occur*")
>    (goto-char (point-min))
>    (if current-def (search-forward current-def))
>    (beginning-of-line)
>    ))
>
>(global-set-key "\C-cf" 'occurrences-of-def)
>
>;; For sighted people using GNU Emacs 21, turn off the blinking cursor!
>(if (fboundp 'blink-cursor-mode) (blink-cursor-mode -1))
>
>;; Set the title for a frame
>(setq frame-title-format '("Emacspeak:  %b"))
>
>;;; For Emacspeak specifically
>
>;; Make sure all Emacspeak code is in the load-path.
>;; I commented this out since the load-path since is specific to my set up.
>;;  The rest of this ~/.emacs file should work with all instances of Emacspeak.
>;;  Depending on how you set up Emacspeak, you may not need to
>;;    configure your load-path manually at all.
>;; (setq load-path (cons "/usr/local/src/emacspeak/lisp/" load-path))
>
>;; Turn on global-font-lock for the voice lock engine
>(load "font-lock")
>(global-font-lock-mode 1)
>(setq font-lock-global-modes t)
>(setq global-voice-lock-mode t)
>
>;; Speak time in a reasonable format: `C-e t'
>(setq emacspeak-speak-time-format-string
>  "The time is %_H hours %M minutes %Z on %A %_e %B %Y")
>
>;; Set the audio theme
>;; /usr/local/src/emacspeak/sounds/chimes-mono/
>;; ( alternatively /usr/local/src/emacspeak/sounds/chimes-stereo/ )
>(emacspeak-sounds-define-theme
> (expand-file-name "chimes-mono/" emacspeak-sounds-directory)
> ".wav")
>
>;; Set punctuation mode to MODE `some', `all', or `none'.
>;; For individual buffers the keybinding is are: `C-e d p'
>(dtk-set-punctuations 'none t)
>
>;;;;;;;;;;;;;;;; end ~/.emacs ::::::::::::::::
>
>
>  
>


-----------------------------------------------------------------------------
To unsubscribe from the emacspeak list or change your address on the
emacspeak list send mail to "emacspeak-request@xxxxxxxxxxx" with a
subject of "unsubscribe" or "help"


Emacspeak Files | Subscribe | Unsubscribe | Search