Giter Club home page Giter Club logo

doom-meow's Introduction

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

:editor
(meow +qwerty +override +leader)
;;(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

doom-meow's People

Contributors

aisamu avatar not-leader avatar xificurc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.