#+TITLE: OSX layer [[file:img/apple.png]] * Table of Contents :TOC_4_gh:noexport: - [[#description][Description]] - [[#philosophy][Philosophy]] - [[#install][Install]] - [[#layer][Layer]] - [[#use-with-non-us-keyboard-layouts][Use with non-US keyboard layouts]] - [[#define-words-using-os-x-dictionary][Define words using OS X Dictionary]] - [[#coreutils][Coreutils]] - [[#key-bindings][Key Bindings]] - [[#future-work][Future Work]] * Description Spacemacs is not just emacs+vim. It can have OSX keybindings too! This layer globally defines common OSX keybindings. ~⌘~ is set to ~super~ and ~⌥~ is set to ~meta~. Aside from that, there's nothing much, really. While in =dired= this layer will try to use =gls= instead of =ls=. * Philosophy While this layer enables common OSX bindings, it does not implement OSX navigation keybindings. Spacemacs is meant to be used with evil, and we encourage you to do so :) * Install ** Layer To use this configuration layer, add it to your =~/.spacemacs=. You will need to add =osx= to the existing =dotspacemacs-configuration-layers= list in this file. *** Use with non-US keyboard layouts If you need the ~⌥~ key to type common characters such as ={[]}~= which is usual for e.g. Finnish and Swedish keyboard layouts, you'll probably want to leave the ~⌥~ key unchanged by setting the =osx-use-option-as-meta= variable to =nil=: #+BEGIN_SRC emacs-lisp (setq-default dotspacemacs-configuration-layers '( (osx :variables osx-use-option-as-meta nil))) #+END_SRC If you have problem entering symbols that are behind the ~⌥~ key you may want to added this to the user-init in the .spacemacs-File. This will allow you to use the right ~⌥~ key to write symbols. The left ~⌥~ key can be used as the Meta key. #+BEGIN_SRC emacs-lisp (setq-default mac-right-option-modifier nil) #+END_SRC *** Define words using OS X Dictionary This layer by default enables defining words under point ~SPC x w d~ using OS X Dictionary. In some cases you might want to manually setup dictionary to use. For example, #+BEGIN_SRC emacs-lisp (setq-default dotspacemacs-configuration-layers '( (osx :variables osx-dictionary-dictionary-choice "English"))) #+END_SRC To get the list of available dictionaries call =osx/list-available-dictionaries= function. You can disable it by setting =osx-use-dictionary-app= variable to =nil=: #+BEGIN_SRC emacs-lisp (setq-default dotspacemacs-configuration-layers '( (osx :variables osx-use-dictionary-app nil))) #+END_SRC ** Coreutils To get =gls= install coreutils homebrew: #+BEGIN_SRC sh brew install coreutils #+END_SRC * Key Bindings | Key Binding | Description | |-------------+-----------------------------| | ~⌘ =~ | Scale up text | | ~⌘ -~ | Scale down text | | ~⌘ q~ | Quit | | ~⌘ v~ | Paste | | ~⌘ c~ | Copy | | ~⌘ x~ | Cut | | ~⌘ a~ | Select all | | ~⌘ w~ | Close window | | ~⌘ W~ | Close frame | | ~⌘ n~ | New frame | | ~⌘ z~ | Undo | | ~⌘ Z~ | Redo | | ~⌃ ⌘ f~ | Toggle fullscreen | | ~SPC x w d~ | Define word under the point | * Future Work - Allow user to choose from either ~hyper~ or ~super~ as ~⌘~. This is an option that is supported cross-platform. - Configurable option to keep the OSX and spacemacs clipboards separate