meow-edit / doom-meow-archive

A meow module for Doom Emacs
GNU General Public License v3.0
50 stars 7 forks source link

+TITLE: Meow mode for Doom Emacs

+DATE: December 6, 2021

+SINCE: v2021.12

This is the archive for old doom-module, please use the [[https://github.com/meow-edit/doom-meow][new one]].

This community module by me and [[https://github.com/VitalyAnkh][Vitaly]] (their older commits can be seen in the archived repository) adds support for [[https://github.com/meow-edit/meow][meow]], a global minor-mode for simple but powerful modal editing.

[[https://github.com/meow-edit/meow][See the Meow project README]] for information on keybinds and usage. Also, if you have enabled this module, run =meow-tutor= in Emacs to get started with meow.

** Prerequisites This module has no prerequisites

** Installation Make the directories =modules/editor= in your doom directory, (usually =~/.config/doom= or =~/.doom.d=), then clone this repo as =/modules/editor/meow=

+BEGIN_SRC sh

mkdir -p ~/.doom.d/modules/editor && git clone https://github.com/Not-Leader/doom-meow ~/.doom.d/modules/editor/meow

+END_SRC sh

Then add =meow= to the =:editor= section of the init.el of your doom directory, with the module flag matching your layout and (recommended) with the =+leader= and =+override= module flags.

+BEGIN_SRC elisp

:editor (meow +qwerty +override +leader) ;;(evil +everywhere); come to the dark side, we have cookies ...

+END_SRC elisp

If you want these bindings to be more easily accessible from meow's keypad, then they can be bound to something that exclusively uses the Control key, eg: setting =doom-localleader-alt-key= to =C-l=. Then the =l= binding of =meow-leader-keymap= (=SPC l= by default) can be used to access the localleader bindings by binding it to the function =meow-keypad-start= . These bindings should be set in the =config.el= file

+BEGIN_SRC elisp

(setq doom-localleader-alt-key "C-l") (map! :map meow-leader-keymap "l" #'meow-keypad-start)

+END_SRC elisp

It is also possible to directly bind the key to =doom-localleader-alt-key=

+BEGIN_SRC elisp

(setq doom-localleader-alt-key "C-l") (map! :map meow-leader-keymap "l" doom-localleader-alt-key)

+END_SRC elisp

*** Manually creating cheatsheet and bindings If none of the layout module flags are enabled, meow will not have any cheatsheet or bindings (excluding the keypad or leader bindings). If you want to manually configure these, then it can be done by modifying the =meow-cheatsheet-layout= variable (see one of the preconfigured values to understand how to configure it) and through binding keys to =meow-normal-state-map=.

If you want to manually add override bindings as well, bind keys using =meow-motion-overwrite-define-key= and add passthrough bindings by binding something to =H-= using one of the meow-*-define-key macros

*** System Clipboard Meow uses a local kill ring by default, but it can be modified to use the local through setting the variable =meow-use-clipboard= to =t=

+BEGIN_SRC elisp

(setq meow-use-clipboard t)

+END_SRC elisp

** Issues

** Module Flags

** Plugins