The purpose of this PR is to set the default for ⌘ to `hyper' and to provide the function `kbd-mac-command` to replace `kbd' when defining keybindings for ⌘ in case someone decides to explicitly set osx-command-as to `super' or `alt'. There are problems setting osx-command-as to `alt' and `super', so we use `hyper' as a default instead because, for example: - Using `alt': Command-x or Command-m inserts, respectively: × µ - Using `super': Control-Command-f produces keycode: <C-s-268632078> Setting to `hyper' seems to avoid both types of the above problems. Also, while it is possible, it is not recommended to set to `meta' since standard OSX shortcuts would overshadow important keys such as M-x. Two other small changes include: - Commenting out the code that defines <C-s-268632078> (C-s-f) since it is unnecessary if we use `hyper' as the default; and if we really want to use `super' then we should figure out how to solve the weird keycode issue. - add keybinding for ⌘` (Command-backtick) to `other-window'. Emacs usually swallows this keystroke, so other-window basically restores the default behavior that most Mac OSX users would expect.
4.6 KiB
OSX layer
Description
Spacemacs is not just emacs+vim. It can have OSX keybindings too! This layer
globally defines common OSX keybindings. ⌘
is set to hyper
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
Layer has been updated for new config variables. The variable osx-use-option-as-meta
is still available for backwards compatibility and will take precedence if set.
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.
The different modifier keys can be set as follows:
(setq-defaults dotspacemacs-configuration-layers '(
(osx :variables osx-command-as 'hyper
osx-option-as 'meta
osx-control-as 'control
osx-function-as 'none
osx-right-command-as 'left
osx-right-option-as 'left
osx-right-control-as 'left))
These are also the default values. Setting the right modifier to left
will equal the left modifier. Allowed values are: super
, meta
, control
,
alt
and none
.
Setting nil
for modifiers will leave the left modifiers as emacs default.
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-option-as
variable to none
:
(setq-default dotspacemacs-configuration-layers '(
(osx :variables osx-option-as 'none)))
If you have problem entering symbols that are behind the ⌥
key you may want to
set the variables as follows. This will allow you to use
the right ⌥
key to write symbols. The left ⌥
key can be used as the Meta
key.
(setq-default dotspacemacs-configuration-layers '(
(osx :variables osx-option-as 'meta
osx-right-option-as 'none)))
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,
(setq-default dotspacemacs-configuration-layers '(
(osx :variables osx-dictionary-dictionary-choice "English")))
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
:
(setq-default dotspacemacs-configuration-layers '(
(osx :variables osx-use-dictionary-app nil)))
Coreutils
To get gls
install coreutils homebrew:
brew install coreutils
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 |
⌘ ` |
Other 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
orsuper
as⌘
. This is an option that is supported cross-platform. - Configurable option to keep the OSX and spacemacs clipboards separate