#+title: GET STARTED

* Dependencies

Emacs >= 27.1

* Installation
Meow is available on [[https://melpa.org/#/meow][Melpa]], you can install it with your favorite package manager.

*** Try without installation
If you want to give it a try without touching your configuration.

#+begin_src sh
  git clone https://github.com/meow-edit/meow.git /path/to/meow
  cd /path/to/meow
  emacs -q -L . -l meow.el
#+end_src

Continue with the next steps.

* Must read before you start
Meow is designed to work as a layer on top of the default key
bindings. For example, command ~meow-kill~ can be used to kill a
selection, it works by simulating the keys that is specified by
variable ~meow--kbd-kill-region~, which is ~C-w~ by default. In this way,
it works even when an alternative package is introduced to provide an
enhanced version of ~kill-region~. But if you bind a command with
different behavior on ~C-w~, ~meow-kill~ will not work as expected. In
this case, you have to modify the variable ~meow--kbd-kill-region~ to
match the rules. The same applies to other ~meow-*~ commands.

* Set up command layout
Meow has no default command layout.
You can write your own setup function from scratch or pick one from below as your starting point.

- [[file:KEYBINDING_QWERTY.org][Qwerty layout]]
- [[file:KEYBINDING_QWERTZ.org][Qwertz layout]]
- [[file:KEYBINDING_DVORAK.org][Dvorak layout]]
- [[file:KEYBINDING_DVP.org][Programmer Dvorak layout]]
- [[file:KEYBINDING_COLEMAK.org][Colemak layout]]

* Enable meow globally
Add the following code to your configuration, assuming that your function to set
up bindings is called ~meow-setup~:
#+begin_src emacs-lisp
  <define your meow-setup>
  (require 'meow)
  (meow-setup)
  (meow-global-mode 1)
#+end_src

NOTE: You don't need to do this if you use the [[https://github.com/meow-edit/doom-meow][Doom module]], as it takes care of
loading and enabling Meow. In addition the module defines ~+meow--setup-*~
functions for all the example layouts included here, so that passing the
corresponding module flag is enough to set up those layouts. (If you want to use
a custom layout, you will need to define your own setup function and call it in
your configuration.)

* Tutorial in Emacs
Now you can open the tutorial with ~M-x meow-tutor~.

* Cheatsheet
If everything works as expected, now you can open the cheatsheet with ~SPC ?~.

The keyboard layout in the cheatsheet is customizable. By default, it's the ANSI layout, but the ISO layout is also supported.
#+begin_src emacs-lisp
(setq meow-cheatsheet-physical-layout meow-cheatsheet-physical-layout-ansi)
#+end_src
