I would love to be able to use KDE with emacs-style keyboard shortcuts, because Emacs offers a huge set of already clearly defined shortcuts for many different situations. Since its users tend to do very much with the keyboard alone, even more obscure tasks are available via shortcuts.
I think that this would be useful, because Emacs is like a kind of nongraphical desktop environment itself (just look at emacspeak!). For all those who use Emacs in a KDE environment, it could be a nice timesaver to be able to just use their accustomed bindings.
It also has a mostly clean structure for the bindings:
- "C-x anything" does changes which affect things outside the content of the current buffer.
- "C-anything but x" acts on the content you're currently editing.
- "C-c anything" is kept for specific actions of programs. For example "C-c C-c" in an email sends the email, while "C-c C-c" in a version tracking commit message finishes the message and starts the actual commit.
- "M-x" opens a 'command-selection-dialog' (just like alt-f2).
- "M-anything but x" is a different flavor of "C-anything but x". For example "C-f" moves the cursor one character forward, while "M-f" moves one word forward. "C-v" moves one page forward, while "M-v" moves one page backwards.
On the backend side, this would require being able to define multistep shortcuts. Everything else is just porting the emacs shortcuts to KDE actions.
The actual porting of shortcuts would then require mapping of the Emacs commands to KDE actions.
- "C-s" searches in a file. Replaces C-f.
- "C-r" searches backwards.
- "C-x C-s" saves a file -> close. Replaces C-w.
- "C-x C-f" opens a file -> Open. Replaces C-o.
- "C-x C-c" closes the program -> quit. Replaces C-q.
- "C-x C-b" switches between buffers/files/tabs -> switch the open file. Replaces alt-right_arrow and a few other (to my knowledge) inconsistent bindings.
- "C-x C-2" splits a window (or part of a window) vertically. "C-x C-o" switches between the parts. "C-x C-1" undoes the split and keeps the currently selected part. "C-x C-0" undoes the split and hides the currently selected part.