1 @c This is part of the Emacs manual.
2 @c Copyright (C) 2000, 2001, 2002, 2003, 2004,
3 @c 2005 Free Software Foundation, Inc.
4 @c See file emacs.texi for copying conditions.
5 @node Mac OS, MS-DOS, Antinews, Top
6 @appendix Emacs and the Mac OS
10 Emacs built on Mac OS X supports most of its major features:
11 multiple frames, colors, scroll bars, menu bars, use of the mouse,
12 fontsets, international characters, input methods, coding systems,
13 asynchronous and synchronous subprocesses, unexec (@code{dump-emacs}),
14 and networking (@code{open-network-stream}). Support for various
15 image file formats has not been implemented yet.
17 The following features of Emacs are not yet supported on the Mac OS
18 8 or 9: unexec (@code{dump-emacs}), asynchronous subprocesses
19 (@code{start-process}), and networking (@code{open-network-stream}).
20 As a result, packages such as Gnus, GUD, and Comint do not work.
21 However, synchronous subprocesses (@code{call-process}) are supported.
22 Since external programs to handle commands such as @code{print-buffer}
23 and @code{diff} are not available on Mac OS 8 or 9, they are not
26 Most of the features that are supported work in the same way as on
27 other platforms and are therefore documented in the rest of this
28 manual. This section describes the peculiarities of using Emacs under
32 * Input: Mac Input. Keyboard input on the Mac.
33 * Intl: Mac International. International character sets on the Mac.
34 * Env: Mac Environment Variables. Setting environment variables for Emacs.
35 * Directories: Mac Directories. Volumes and directories on the Mac.
36 * Font: Mac Font Specs. Specifying fonts on the Mac.
37 * Functions: Mac Functions. Mac-specific Lisp functions.
41 @section Keyboard Input on the Mac
43 @cindex keyboard coding (Mac OS)
44 @vindex mac-command-key-is-meta
45 @vindex mac-keyboard-text-encoding
47 On the Mac, Emacs can use either the @key{option} key or the
48 @key{command} key as the @key{META} key. If the value of the variable
49 @code{mac-command-key-is-meta} is non-@code{nil} (its default value),
50 Emacs uses the @key{command} key as the @key{META} key. Otherwise it
51 uses the @key{option} key as the @key{META} key.
53 Most people should want to use the @key{command} key as the @key{META} key,
54 so that dead-key processing with the @key{option} key will still work. This is
55 useful for entering non-@acronym{ASCII} Latin characters directly from the Mac
56 keyboard, for example.
58 Emacs recognizes the setting in the Keyboard control panel and
59 supports international and alternative keyboard layouts (e.g., Dvorak).
60 Selecting one of the layouts from the keyboard layout pull-down menu
61 will affect how the keys typed on the keyboard are interpreted.
63 The Mac OS intercepts and handles certain key combinations (e.g.,
64 @key{command}-@key{SPC} for switching input languages). These will not
67 The Mac keyboard ordinarily generates characters in the Mac Roman
68 encoding. To use it for entering ISO Latin-1 characters directly, set
69 the value of the variable @code{mac-keyboard-text-encoding} to
70 @code{kTextEncodingISOLatin1}. Note that not all Mac Roman characters
71 that can be entered at the keyboard can be converted to ISO Latin-1
74 To enter ISO Latin-2 characters directly from the Mac keyboard, set
75 the value of @code{mac-keyboard-text-encoding} to
76 @code{kTextEncodingISOLatin2}. Then let Emacs know that the keyboard
77 generates Latin-2 codes, by typing @kbd{C-x @key{RET} k iso-latin-2
78 @key{RET}}. To make this setting permanent, put this in your
79 @file{.emacs} init file:
82 (set-keyboard-coding-system 'iso-latin-2)
85 @node Mac International
86 @section International Character Set Support on the Mac
87 @cindex Mac Roman coding system
88 @cindex clipboard support (Mac OS)
90 The Mac uses a non-standard encoding for the upper 128 single-byte
91 characters. It also deviates from the ISO 2022 standard by using
92 character codes in the range 128-159. The coding system
93 @code{mac-roman} is used to represent this Mac encoding. It is used
94 for editing files stored in this native encoding, and for displaying
95 file names in Dired mode.
97 Any native (non-symbol) Mac font can be used to correctly display
98 characters in the @code{mac-roman} coding system.
100 The fontset @code{fontset-mac} is created automatically when Emacs
101 is run on the Mac. It displays characters in the @code{mac-roman}
102 coding system using 12-point Monaco.
104 To insert characters directly in the @code{mac-roman} coding system,
105 type @kbd{C-x @key{RET} k mac-roman @key{RET}}, customize the variable
106 @code{keyboard-coding-system}, or put this in your init file:
109 (set-keyboard-coding-system 'mac-roman)
113 This is useful for editing documents in native Mac encoding.
115 You can use input methods provided either by LEIM (@pxref{Input
116 Methods}) or the Mac OS to enter international characters.
118 To use the former, see the International Character Set Support section
119 of the manual (@pxref{International}).
121 To use input methods provided by the Mac OS, set the keyboard coding
122 system accordingly using the @kbd{C-x @key{RET} k} command
123 (@code{set-keyboard-coding-system}). For example, for Traditional
124 Chinese, use @samp{chinese-big5} as keyboard coding system; for
125 Japanese, use @samp{sjis}, etc. Then select the desired input method in
126 the keyboard layout pull-down menu.
128 The Mac clipboard and the Emacs kill ring (@pxref{Killing}) are
129 connected as follows: the most recent kill is copied to the clipboard
130 when Emacs is suspended and the contents of the clipboard is inserted
131 into the kill ring when Emacs resumes. The result is that you can yank
132 a piece of text and paste it into another Mac application, or cut or copy
133 one in another Mac application and yank it into a Emacs buffer.
135 The encoding of text selections must be specified using the commands
136 @kbd{C-x @key{RET} x} (@code{set-selection-coding-system}) or @kbd{C-x
137 @key{RET} X} (@code{set-next-selection-coding-system}) (e.g., for
138 Traditional Chinese, use @samp{chinese-big5-mac} and for Japanese,
139 @samp{sjis-mac}). @xref{Specify Coding}, for more details.
142 @node Mac Environment Variables
143 @section Environment Variables and Command Line Arguments.
144 @cindex environment variables (Mac OS)
146 On Mac OS X, when Emacs is run in a terminal, it inherits the values
147 of environment variables from the shell from which it is invoked.
148 However, when it is run from the Finder as a GUI application, it
149 inherits no environment variable values.
151 On Mac OS 8 or 9, environment variables and command line arguments
152 for Emacs can be set by modifying the @samp{STR#} resources 128 and
153 129, respectively. A common environment variable that one may want to
156 The way to set an environment variable is by adding a string of the
164 to resource @samp{STR#} number 128 using @code{ResEdit}. To set up the
165 program to use unibyte characters exclusively, for example, add the
173 @node Mac Directories
174 @section Volumes and Directories on the Mac
175 @cindex file names (Mac OS)
177 The directory structure in the Mac OS is seen by Emacs as
180 /@var{volumename}/@var{filename}
183 So when Emacs requests a file name, doing file name completion on
184 @file{/} will display all volumes on the system. You can use @file{..}
185 to go up a directory level.
187 On Mac OS 8 or 9, to access files and folders on the desktop, look
188 in the folder @file{Desktop Folder} in your boot volume (this folder
189 is usually invisible in the Mac @code{Finder}).
191 On Mac OS 8 or 9, Emacs creates the Mac folder
192 @file{:Preferences:Emacs:} in the @file{System Folder} and uses it as
193 the temporary directory. Emacs maps the directory name @file{/tmp/}
194 to that. Therefore it is best to avoid naming a volume @file{tmp}.
195 If everything works correctly, the program should leave no files in it
196 when it exits. You should be able to set the environment variable
197 @code{TMPDIR} to use another directory but this folder will still be
202 @section Specifying Fonts on the Mac
203 @cindex font names (Mac OS)
205 It is rare that you need to specify a font name in Emacs; usually
206 you specify face attributes instead. But when you do need to specify
207 a font name in Emacs on the Mac, use a standard X font name:
210 -@var{maker}-@var{family}-@var{weight}-@var{slant}-@var{widthtype}-@var{style}@dots{}
211 @dots{}-@var{pixels}-@var{height}-@var{horiz}-@var{vert}-@var{spacing}-@var{width}-@var{charset}
215 @xref{Font X}. Wildcards are supported as they are on X.
217 Native Apple fonts in Mac Roman encoding has maker name @code{apple}
218 and charset @code{mac-roman}. For example 12-point Monaco can be
219 specified by the name @samp{-apple-monaco-*-12-*-mac-roman}.
221 Native Apple Traditional Chinese, Simplified Chinese, Japanese, and
222 Korean fonts have charsets @samp{big5-0}, @samp{gb2312.1980-0},
223 @samp{jisx0208.1983-sjis}, and @samp{ksc5601.1989-0}, respectively.
225 Single-byte fonts converted from GNU fonts in BDF format, which are not
226 in the Mac Roman encoding, have foundry, family, and character sets
227 encoded in the names of their font suitcases. E.g., the font suitcase
228 @samp{ETL-Fixed-ISO8859-1} contains fonts which can be referred to by
229 the name @samp{-ETL-fixed-*-iso8859-1}.
233 @section Mac-Specific Lisp Functions
234 @cindex Lisp functions specific to Mac OS
236 @findex do-applescript
237 The function @code{do-applescript} takes a string argument,
238 executes it as an AppleScript command, and returns the result as a
241 @findex mac-file-name-to-posix
242 @findex posix-file-name-to-mac
243 The function @code{mac-file-name-to-posix} takes a Mac file name and
244 returns the GNU or Unix equivalent. The function
245 @code{posix-file-name-to-mac} performs the opposite conversion. They
246 are useful for constructing AppleScript commands to be passed to
247 @code{do-applescript}.
250 arch-tag: a822c2ab-4273-4997-927e-c153bb71dcf6