GithubHelp home page GithubHelp logo

wbolster / emacs-evil-colemak-basics Goto Github PK

View Code? Open in Web Editor NEW
82.0 82.0 19.0 39 KB

Emacs package with basic key rebindings for evil-mode with the Colemak keyboard layout

Emacs Lisp 80.30% Vim Script 19.70%

emacs-evil-colemak-basics's People

Contributors

deifactor avatar gagbo avatar mk3z avatar timacs avatar tommy-mor avatar wbolster avatar wincent avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

emacs-evil-colemak-basics's Issues

Enabling colemak keybinds breaks evil-respect-visual-line-mode.

When using visual line numbers, you need to enable evil-respect-visual-line-mode (before evil loads) and visual-line-mode so that line jump commands are actually respected.

See here for detailed write up on what I mean.

The issue is, when I enable colemak mode, it no longer respects the the visual line mode. (Skips over visual lines and moves the cursor based on logical lines). This completely breaks the line number based movement commands.

Say I am on line 1 and line numbers show the line I want to be on is line 25 (with visual line numbers enabled) but there are 5 lines of folded text between me and the line I want to be on. When I type '25n' I end up on line 29 instead of line 25. This defeats the entire purpose of having relative/visual line numbers.

Is there maybe something I'm missing when setting the relevant variables and packages in my config?

At the top of my init.el file I have (setq evil-respect-visual-line-mode 't), in my packages.el I have (package! evil-colemak-basic) which includes the relavant MELPA package and then in my config.el I have

(use-package evil-colemak-basics
    :init
        (setq evil-colemak-basics-layout-mod `mod-dh)
    :config
        (global-evil-colemak-basics-mode))

This is with DOOM Emacs but afaik this should apply to vanilla Emacs as well.

additional customisable tweaks

The end-of-word / jump-to-char / jump-until-char rotation from #2 may become a defcustom for this package.

The u/l (undo/insert) tweak can also be made into a flag.

Brainstorm: Bindings for end of word

an easy to reach 'end of word' (easy to reach e on qwerty, j on colemak with the package)

Non-issue but maybe throwing out some ideas on how this may be modified can be captured here.

Question: How to disable some bindings for individual modes?

E.g. in magit-status-mode I want to keep using f for magit-fetch instead of evil-forward-word-end, which is defined in evil-colemak-basic-keymap. Horizontal movement isn't needed there anyway. Can I somehow remove those keys locally from evil-colemak-basic-keymap, without affecting the keymap in other modes? Or maybe just make the keys from magit-mode-map take precedence somehow? Do you have any recommendation how best do that?

Of course the alternative approach would be to just disable evil-colemak-basics and just replace it with my own minimal config, e.g. n e for down/up and leading the rest, but would be cool if there was a better way and I feel a bit stupid not figuring that out myself...

add use-package sample to readme

(use-package evil-colemak-basics
  :init
  (setq evil-colemak-basics-char-jump-commands 'evil-snipe)
  :config
  (global-evil-colemak-basics-mode))

Change “hnei” to “neio”?

Hi, I'm trying the colemak keybindings but I find more confortable using "neio" for navigation keys because "n" is the home key for the right hand and this allows to virtually map each finger to a movement.

Instead "hnei" force to use index finger for two navigation keys or shift the whole hand away from the home position destroying the benefits of colemak layout.

What do you think about?

Moving between windows using HNEI

The only hjkl-like commands left uncovered by this package is the window commands. I'd love to add support for them, but here my Emacs Lisp is not enough as they are inside evil-window-map. 😕

My workaround is the following lines in init.el (that's all that should be redefined when the t-f-j rotation is turned off):

  (define-key evil-window-map "n" 'evil-window-down)
  (define-key evil-window-map "N" 'evil-window-move-very-bottom)
  (define-key evil-window-map (kbd "C-S-n") 'evil-window-move-very-bottom)
  (define-key evil-window-map "e" 'evil-window-up)
  (define-key evil-window-map "E" 'evil-window-move-very-top)
  (define-key evil-window-map (kbd "C-S-e") 'evil-window-move-very-top)
  (define-key evil-window-map "i" 'evil-window-right)
  (define-key evil-window-map "I" 'evil-window-move-far-right)
  (define-key evil-window-map (kbd "C-S-i") 'evil-window-move-far-right)
  ;; Kreate new window
  (define-key evil-window-map "k" 'evil-window-new)
  (define-key evil-window-map "\C-k" 'evil-window-new)

Could you please add support for them or give me some hints on how to do that?

PDF navigation

Whenever I open a pdf in pdf-view-mode (I am using pdf-tools) with evil-colemak-basics-mode turned on I am unable to navigate with m-n-e-i (or with the traditional h-j-k-l). If I turn off evil-colemak-bascs-mode then the traditional evil keybindings work perfectly. Is there something that I can add to my config to get colemak navigation in pdf's?

Description for each symbols in the table

Hi, 👋

I have been using this package for almost three years, and it has been a lifesaver. Thank you so much.

I wanted to learn more about the details, but I am stuck at the "The tables below indicate whether a key has its Colemak meaning".

Would you mind adding a description for each symbol?

↕ 	× 	⬇	⬆

I tried to interpret them, but no luck so far. I understand is for keys that don't change, and is for keys that change to their Colemak representation. But what about ? For example, p ⬆ r or g ⬆ t. I can't figure it out. The same thing applies to ×.

It would be beneficial if the symbols had thorough descriptions.

Thank you! 🍨

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.