aisamu / doom-meow

A meow module for Doom Emacs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Meow mode for Doom Emacs

Table of Contents

Overview

This community module by me and Vitaly (their older commits can be seen in the archived repository) adds support for meow, a global minor-mode for simple but powerful modal editing.

Features

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.

Getting started

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 <doom-directory>/modules/editor/meow

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

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 +keypad and +override module flags.

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

Configuration

Leader and Localleader

When the +leader module flag is disabled, the bindings for doom-leader-alt-key and doom-localleader-alt-key are used for doom’s leader and localleader key respectively.

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

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

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

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

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-<key> 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

(setq meow-use-clipboard t)

Issues

  • This module can not be ran alongside the modules: :editor evil, :editor god, or :editor objed. Enabling them with :editor meow will cause keybindings to conflict.
  • The localleader keybinds are garbled, and many leader keybindings are missing when the +leader module flag is enabled.

Description

Module Flags

  • +colemak Add default configuration for colemak layout.
  • +dvorak Add default configuration for dvorak layout.
  • +dvp Add default configuration for dvp layout.
  • +qwerty Add default configuration for qwerty layout.
  • +leader Use Doom’s doom/leader instead of meow’s meow-keypad-mode
  • +override Have meow override movement keybinds in most major modes.

Plugins

About

A meow module for Doom Emacs

License:GNU General Public License v3.0


Languages

Language:Emacs Lisp 100.0%