emacsorphanage/god-mode

Implement all modifier sets

beroal opened this issue · 2 comments

First, I want to thank the author of this mode. It is amazing. I think I found a couple of improvements. If I understand the manual correctly, the way to send "C-M-f" is "S-g f", and there is no way to send "C-S-f" (on "g S-f", it says that "M-F" is unknown). In both cases, I need to reach the modifier key <shift> which defeats the purpose of god-mode, IMHO. Hence I propose the following.

  1. Chose a key for every modifier set. The set of all modifiers is {"C", "M", "S"}, so modifier sets are {}, {"C"}, {"C", "M"}, {"M"}, {"C", "S"}, and so on. For example, the current correspondence is: "g" for {"M"}, <space> for {}. Let's call that key "modifier prefix". Modifier prefixes MP should be chosen such that the commands "C-$MP" are not popular. I am new to Emacs, so I do not know which commands I may need in the future. Could you give me a hint? In addition, modifier prefixes should be under strong fingers on a home row or near because they would be pressed a lot.
  2. Define the behavior of god-mode as follows. If K is not a modifier prefix, then "$K" sends "C-$K". If MP is a modifier prefix, then "$MP $K" sends "$MS-$K" where MS is the modifier set corresponding to the modifier prefix MP.

Advantages. I can send "C-g". Being a novice, I send "C-g" often. I can send "C-M-f" without reaching to <shift>. I can send "C-S-f".

I will try to modify god-mode after we decide on modifier prefixes.

kqr commented

I'd be willing to sacrifice

  • C-v (global binding for scroll-up-command, which there are better ways to accomplish anyway)
  • C-j (global binding for electric-newline-and-maybe-indent, overridden by several major modes)
  • C-z (global binding for suspend-frame, which I guess makes sense in non-multiplexed terminal environments but boy are those rare to come by these days...)

Interesting idea!

Currently, the way to enter C-M-f, for example, through God mode is through G f.
This is also mentioned in the README.

Are you happy to close this @beroal?