Subject: bug#67199: Koutliner breaks Emacs key binding conventions

From: Martin Marshall <[email-masked]>
Date: Wed, 15 Nov 2023 19:29:01 -0500

Hi Mats, thanks for the reply.

> kotl-mode defines a lot of bindings, bindings that has been there
> for a very long time.

I suspected that might be a factor.  Very understandable.

In case anyone finds it helpful, I used the code below to create a
"C-c C-x" prefix and move the bindings there.  Being new to Koutliner,
I don't know if that will be the best place for these bindings.  But
it works for now.

(defvar-keymap my-kotl-extra-map
    "a" 'kotl-mode:add-child
    "b" 'kvspec:toggle-blank-lines
    "c" 'kotl-mode:copy-after
    "d" 'kotl-mode:down-level
    "e" 'kotl-mode:exchange-cells
    "g" 'kotl-mode:goto-cell
    "h" 'kotl-mode:cell-help
    "k" 'kotl-mode:kill-contents
    "l" 'klink:create
    "m" 'kotl-mode:move-after
    "p" 'kotl-mode:add-parent
    "s" 'kotl-mode:split-cell
    "t" 'kotl-mode:transpose-cells
    "u" 'kotl-mode:up-level
    "C-h" 'kotl-mode:hide-tree)
(defvar kotl-mode-map) ; Keep Flymake happy.
(advice-add
 'kotl-mode:setup-keymap :after
 (lambda ()
   (define-keymap
     :keymap kotl-mode-map
     "C-c a" nil
     "C-c b" nil
     "C-c c" nil
     "C-c d" nil
     "C-c e" nil
     "C-c g" nil
     "C-c h" nil
     "C-c k" nil
     "C-c l" nil
     "C-c m" nil
     "C-c p" nil
     "C-c s" nil
     "C-c t" nil
     "C-c u" nil
     "C-c C-h" nil
     "C-c C-x" my-kotl-extra-map)))

-- 
Best regards,
Martin Marshall