]> code.delx.au - gnu-emacs/blobdiff - doc/emacs/macos.texi
Update copyright year to 2014 by running admin/update-copyright.
[gnu-emacs] / doc / emacs / macos.texi
index c628e378c72743cb1bbe9dcf03e7b6c5f0af6be8..eb2d96e9af7b365625f6e5da6973718c4ceac27f 100644 (file)
@@ -1,93 +1,93 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 2000, 2001, 2002, 2003, 2004,
-@c   2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+@c Copyright (C) 2000-2014 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
-@node Mac OS / GNUstep, Microsoft Windows, Antinews, Top
+@node Mac OS / GNUstep
 @appendix Emacs and Mac OS / GNUstep
 @cindex Mac OS X
 @cindex Macintosh
 @cindex GNUstep
 
-  This section briefly describes the peculiarities of using Emacs built with
-the GNUstep libraries on GNU/Linux or other operating systems, or on Mac OS X
-with native window system support.  For Mac OS X, Emacs can be built either
-without window system support, with X11, or with the Cocoa interface.  This
-section only applies to the Cocoa build.  Emacs 23 does not support Mac OS
-Classic.
-
-  Emacs, when built on Mac OS X, uses the Cocoa application interface.  For
-various historical and technical reasons, Emacs uses the term @samp{Nextstep}
-internally, instead of ``Cocoa'' or ``Mac OS X''; for instance, most of the
-commands and variables described in the following sections begin with
-@samp{ns-}, which is short for @samp{Nextstep}.  NeXTstep was an application
-interface released by NeXT Inc during the 1980s, of which Cocoa is a direct
-descendent.  Apart from Cocoa, there is another NeXTstep-style system:
-GNUstep, which is free software.  As of this writing, the GNUstep support is
-alpha status (see @pxref{GNUstep Support}), but we hope to improve it in the
-future.
+  This section describes the peculiarities of using Emacs built with
+the GNUstep libraries on GNU/Linux or other operating systems, or on
+Mac OS X with native window system support.  On Mac OS X, Emacs can be
+built either without window system support, with X11, or with the
+Cocoa interface; this section only applies to the Cocoa build.  This
+does not support versions of Mac OS X earlier than 10.4.
+
+  For various historical and technical reasons, Emacs uses the term
+@samp{Nextstep} internally, instead of ``Cocoa'' or ``Mac OS X''; for
+instance, most of the commands and variables described in this section
+begin with @samp{ns-}, which is short for @samp{Nextstep}.  NeXTstep
+was an application interface released by NeXT Inc during the 1980s, of
+which Cocoa is a direct descendant.  Apart from Cocoa, there is
+another NeXTstep-style system: GNUstep, which is free software.  As of
+this writing, Emacs GNUstep support is alpha status (@pxref{GNUstep
+Support}), but we hope to improve it in the future.
 
 @menu
 * Mac / GNUstep Basics::        Basic Emacs usage under GNUstep or Mac OS.
 * Mac / GNUstep Customization:: Customizations under GNUstep or Mac OS.
 * Mac / GNUstep Events::        How window system events are handled.
-* GNUstep Support::             Details on status of GNUstep support
-* 
+* GNUstep Support::             Details on status of GNUstep support.
 @end menu
 
-@node Mac / GNUstep Basics, Mac / GNUstep Customization, , Mac OS / GNUstep
+@node Mac / GNUstep Basics
 @section Basic Emacs usage under Mac OS and GNUstep
 
   By default, the @key{alt} and @key{option} keys are the same as
-@key{Meta} when running under Mac OS.  The Mac @key{Cmd} key is the
-same as @key{Super}, and Emacs provides a set of keybindings using
-this modifier key that mimic other Mac / GNUstep applications (@pxref{Mac /
-GNUstep Events}).  You can change these bindings in the usual way (@pxref{Key
-Bindings}).
-
-  The standard Mac / GNUstep font and color panels are accessible via Lisp commands.
-  To use the color panel, drag from it to an Emacs frame to change the
-foreground color of the face at that position (if the @key{shift} key
-is held down, it changes the background color instead). To discard the
-settings, create a new frame and close the altered one.
-@c [unclear if the following holds.]
-@c  To finalize the settings for either color or font, choose @samp{Save Options} in the @samp{Options} menu. 
-
-  @key{S-Mouse-1} (i.e., clicking the left mouse button
-while holding down the @key{Shift} key) adjusts the region to the
-click position, just like @key{Mouse-3} (@code{mouse-save-then-kill});
-it does not pop up a menu for changing the default face, as
-@key{S-Mouse-1} normally does (@pxref{Temporary Face Changes}).  This
-change makes Emacs behave more like other Mac / GNUstep applications.
-
-  When you open or save files using the menus, or using the 
-@key{Cmd-o} and @key{Cmd-S} bindings, Emacs uses graphical file
+@key{Meta}.  The Mac @key{Cmd} key is the same as @key{Super}, and
+Emacs provides a set of key bindings using this modifier key that mimic
+other Mac / GNUstep applications (@pxref{Mac / GNUstep Events}).  You
+can change these bindings in the usual way (@pxref{Key Bindings}).
+
+@vindex ns-alternate-modifier
+@vindex ns-right-alternate-modifier
+  The variable @code{ns-right-alternate-modifier} controls the
+behavior of the right @key{alt} and @key{option} keys.  These keys
+behave like the left-hand keys if the value is @code{left} (the
+default).  A value of @code{control}, @code{meta}, @code{alt},
+@code{super}, or @code{hyper} makes them behave like the corresponding
+modifier keys; a value to @code{left} means be the same key as
+@code{ns-alternate-modifier}; a value of @code{none} tells Emacs to
+ignore them.
+
+  @kbd{S-Mouse-1} adjusts the region to the click position,
+just like @kbd{Mouse-3} (@code{mouse-save-then-kill}); it does not pop
+up a menu for changing the default face, as @kbd{S-Mouse-1} normally
+does (@pxref{Text Scale}).  This change makes Emacs behave more like
+other Mac / GNUstep applications.
+
+  When you open or save files using the menus, or using the
+@kbd{Cmd-o} and @kbd{Cmd-S} bindings, Emacs uses graphical file
 dialogs to read file names.  However, if you use the regular Emacs key
-sequences, such as @key{C-x C-f}, Emacs uses the minibuffer to read
+sequences, such as @kbd{C-x C-f}, Emacs uses the minibuffer to read
 file names.
 
-  On GNUstep, in an X-windows environment you need to use @key{Cmd-c}
-instead of one of the @key{C-w} or @key{M-w} commands to transfer text
+  On GNUstep, in an X-windows environment you need to use @kbd{Cmd-c}
+instead of one of the @kbd{C-w} or @kbd{M-w} commands to transfer text
 to the X primary selection; otherwise, Emacs will use the
-``clipboard'' selection.  Likewise, @key{Cmd-y} (instead of @key{C-y})
+``clipboard'' selection.  Likewise, @kbd{Cmd-y} (instead of @kbd{C-y})
 yanks from the X primary selection instead of the kill-ring or
 clipboard.
 
 
 @subsection Grabbing environment variables
 
-Many programs which may run under Emacs like latex or man depend on the
+@c How is this any different to launching from a window manager menu
+@c in GNU/Linux?  These are sometimes not login shells either.
+Many programs which may run under Emacs, like latex or man, depend on the
 settings of environment variables.  If Emacs is launched from the shell, it
 will automatically inherit these environment variables and its subprocesses
 will inherit them from it.  But if Emacs is launched from the Finder it
 is not a descendant of any shell, so its environment variables haven't been
-set which often causes the subprocesses it launches to behave differently than
+set, which often causes the subprocesses it launches to behave differently than
 they would when launched from the shell.
 
-As for the PATH and MANPATH variables, a system-wide method
+For the PATH and MANPATH variables, a system-wide method
 of setting PATH is recommended on Mac OS X 10.5 and later, using the
 @file{/etc/paths} files and the @file{/etc/paths.d} directory.
 
-@node Mac / GNUstep Customization, Mac / GNUstep Events, Mac / GNUstep Basics, Mac OS / GNUstep
+@node Mac / GNUstep Customization
 @section Mac / GNUstep Customization
 
 Emacs can be customized in several ways in addition to the standard
@@ -96,37 +96,39 @@ customization buffers and the Options menu.
 
 @subsection Font and Color Panels
 
-The Font Panel may be accessed with M-x ns-popup-font-panel.  It
-will set the default font in the frame most recently used or clicked
-on.
+The standard Mac / GNUstep font and color panels are accessible via
+Lisp commands.  The Font Panel may be accessed with @kbd{M-x
+ns-popup-font-panel}.  It will set the default font in the frame most
+recently used or clicked on.
 
 @c  To make the setting permanent, use @samp{Save Options} in the
 @c Options menu, or run @code{menu-bar-options-save}.
 
-You can bring up a color panel with M-x ns-popup-color-panel. and
-drag the color you want over the emacs face you want to change.  Normal
+You can bring up a color panel with @kbd{M-x ns-popup-color-panel} and
+drag the color you want over the Emacs face you want to change.  Normal
 dragging will alter the foreground color.  Shift dragging will alter the
-background color.
+background color.  To discard the settings, create a new frame and
+close the altered one.
 
 @c To make the changes permanent select the "Save Options"
-@c item in the "Options" menu, or run @code{menu-bar-options-save}. 
+@c item in the "Options" menu, or run @code{menu-bar-options-save}.
 
-Useful in this context is the listing of all faces obtained by @key{M-x}
-@code{list-faces-display}.
+Useful in this context is the listing of all faces obtained by
+@kbd{M-x list-faces-display}.
 
-@subsection Open files by dragging to an Emacs window
+@subsection Customization options specific to Mac OS / GNUstep
 
-The default behaviour when a user drags files from another application
-into an Emacs frame is to insert the contents of all the dragged files
-into the current buffer.  To remap the @code{ns-drag-file} event to
-open the dragged files in the current frame use the following line:
+The following customization options are specific to the Nextstep port.
 
-@lisp
-(define-key global-map [ns-drag-file] 'ns-find-file)
-@end lisp
+@table @code
+@item ns-auto-hide-menu-bar
+Non-nil means the menu-bar is hidden by default, but appears if you
+move the mouse pointer over it.  (Requires Mac OS X 10.6 or later.)
+
+@end table
 
 
-@node Mac / GNUstep Events, GNUstep Support, Mac / GNUstep Customization, Mac OS / GNUstep
+@node Mac / GNUstep Events
 @section Windowing System Events under Mac OS / GNUstep
 
   Nextstep applications receive a number of special events which have
@@ -142,13 +144,13 @@ This event occurs when another Nextstep application requests that
 Emacs open a file.  A typical reason for this would be a user
 double-clicking a file in the Finder application.  By default, Emacs
 responds to this event by opening a new frame and visiting the file in
-that frame (@code{ns-find-file}), As an exception, if the selected
-buffer is the @samp{*scratch*} buffer, Emacs visits the file in the
+that frame (@code{ns-find-file}) As an exception, if the selected
+buffer is the @file{*scratch*} buffer, Emacs visits the file in the
 selected frame.
 
-You can change how Emacs responds to @key{ns-open-file} by changing
-the variable @code{ns-pop-up-frames}.  Its default value,
-@code{'fresh}, is what we have just described.  A value of @code{t}
+You can change how Emacs responds to a @code{ns-open-file} event by
+changing the variable @code{ns-pop-up-frames}.  Its default value,
+@samp{fresh}, is what we have just described.  A value of @code{t}
 means to always visit the file in a new frame.  A value of @code{nil}
 means to always visit the file in an existing frame.
 
@@ -157,10 +159,6 @@ This event occurs when another application requests that Emacs open a
 temporary file.  By default, this is handled by just generating a
 @code{ns-open-file} event, the results of which are described above.
 
-You can bind @key{ns-pop-up-frames} and @key{ns-open-temp-file} to
-other Lisp functions.  When the event is registered, the name of the
-file to open is stored in the variable @code{ns-input-file}.
-
 @item ns-open-file-line
 Some applications, such as ProjectBuilder and gdb, request not only a
 particular file, but also a particular line or sequence of lines in
@@ -189,17 +187,17 @@ panel (which can be opened with @kbd{Cmd-t}).  The default behavior is
 to adjust the font of the selected frame
 (@code{ns-respond-to-changefont}).  The name and size of the selected
 font are stored in the variables @code{ns-input-font} and
-@code{ns-input-fontsize} respectively.
+@code{ns-input-fontsize}, respectively.
 
 @item ns-power-off
-This event occurs when the user logs out and Emacs is still running, or when 
+This event occurs when the user logs out and Emacs is still running, or when
 `Quit Emacs' is chosen from the application menu.
 The default behavior is to save all file-visiting buffers.
 @end table
 
   Emacs also allows users to make use of Nextstep services, via a set
 of commands whose names begin with @samp{ns-service-} and end with the
-name of the service.  Type @kbd{M-x ns-service-@key{TAB}@key{TAB}} to
+name of the service.  Type @kbd{M-x ns-service-@key{TAB}} to
 see a list of these commands.  These functions either operate on
 marked text (replacing it with the result) or take a string argument
 and return the result as a string.  You can also use the Lisp function
@@ -207,20 +205,15 @@ and return the result as a string.  You can also use the Lisp function
 services and receive the results back.  Note that you may need to
 restart Emacs to access newly-available services.
 
-
-@node GNUstep Support, , Mac / GNUstep Events, Mac OS / GNUstep
+@node GNUstep Support
 @section GNUstep Support
 
-Emacs can be built and run under GNUstep however building is difficult and
-there are some limitations to functionality.  In particular, it may be
-necessary to run @samp{make bootstrap} with a plain X configuration, then
-@samp{make clean} and @samp{./configure --with-ns} followed by @samp{make
-install}.
-
-Currently CANNOT_DUMP is automatically enabled in GNUstep configurations,
-because the unex file(s) for GNUstep, mainly @samp{unexelf.c}, have not been
-updated yet with the ``zone'' code in and related to @samp{unexmacosx.c}.
-
-@ignore
-   arch-tag: a822c2ab-4273-4997-927e-c153bb71dcf6
-@end ignore
+Emacs can be built and run under GNUstep, but there are still
+issues to be addressed.  Interested developers should contact
+@ifnothtml
+@email{emacs-devel@@gnu.org}.
+@end ifnothtml
+@ifhtml
+@url{http://lists.gnu.org/mailman/listinfo/emacs-devel, the
+emacs-devel mailing list}.
+@end ifhtml