wbolster / emacs-evil-colemak-basics Goto Github PK
View Code? Open in Web Editor NEWEmacs package with basic key rebindings for evil-mode with the Colemak keyboard layout
Emacs package with basic key rebindings for evil-mode with the Colemak keyboard layout
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?
I prefer to use emacs with this package, but sometimes I must use vim.
I think a nice convenience to add to this package would be a .vimrc file that adds the same keybindings for ease of transitioning.
I have a basic one here, I'm not sure it's correct
https://gist.github.com/tommy-mor/77edead23a6040caa5aaa5f2a0714360
...for visual-line vs regular line.
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.
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...
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.
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! π¨
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?
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?
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.
(use-package evil-colemak-basics
:init
(setq evil-colemak-basics-char-jump-commands 'evil-snipe)
:config
(global-evil-colemak-basics-mode))
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.