F.2 Mac / GNUstep Customization

There are a few customization options that are specific to the Nextstep port. For example, they affect things such as the modifier keys and the fullscreen behavior. To see all such options, use M-x customize-group RET ns RET.

F.2.1 Modifier keys

The following variables control the behavior of the actual modifier keys:


The left and right Option or Alt keys.


The left and right Command keys.


The left and right Control keys.


The Function (fn) key.

The value of each variable is either a symbol, describing the key for any purpose, or a list of the form (:ordinary symbol :function symbol :mouse symbol), which describes the modifier when used with ordinary keys, function keys (that do not produce a character, such as arrow keys), and mouse clicks.

If the symbol is one of control, meta, alt, super or hyper, this describes the Emacs modifier it represents. If symbol is none, Emacs does not use the key, which retains its standard behavior. For instance, the Option key in macOS is then used for composing additional characters.

The variables for right-hand keys, like ns-right-alternate-modifier, may also be set to left, which means to use the same behavior as the corresponding left-hand key.

F.2.2 Frame Variables


This variable specifies whether to display the proxy icon in the titlebar. The proxy icon can be used to drag the file associated with the current buffer to other applications, a printer, the desktop, etc., in the same way you can from Finder. You might have to disable tool-bar-mode to see the proxy icon.


This variable specifies whether to display a graphical confirmation dialog on quitting.


This variable specifies whether the macOS menu bar is hidden when an Emacs frame is selected. If non-nil the menu bar is not shown unless the mouse pointer is moved near to the top of the screen.


This variable controls whether to use native, or non-native fullscreen. Native fullscreen is only available on macOS 10.7 and above.

F.2.3 macOS Trackpad/Mousewheel Variables

These variables only apply to macOS 10.7 (Lion) and above.


This variable controls whether Emacs ignores the system mousewheel acceleration. When nil each ‘click’ of the mousewheel will correspond exactly with one mousewheel event. When non-nil, the default, each ‘click’ may correspond with more than one mousewheel event, depending on the user’s input.


This variable controls whether Emacs ignores the system ‘momentum’ when scrolling using a trackpad. When non-nil, the default, scrolling rapidly may result in the buffer continuing to scroll for a short while after the user has lifted their fingers off the trackpad.


This variable controls the sensitivity of scrolling with the trackpad. Apple trackpads scroll by pixels, not lines, so Emacs converts the system’s pixel values into lines. When set to a number, this variable sets the number of pixels Emacs will consider as one line. When nil or a non-number the default line height is used.

Setting a lower number makes the trackpad more sensitive, and a higher number makes the trackpad less sensitive.