Skip to content

V9.3.0 Pre-release - org-mode, kotl-mode - Add {C-c ; <letter>} bindings in Koutliner; Koutliner TAB Org-style cycling; Replace Action/Assist Key behavior in cells with func variables; update kotl-mode with better Org and Emacs key compatibility - #1069

Merged
rswgnu merged 13 commits into
masterfrom
rsw
Oct 14, 2026

Conversation

@rswgnu

@rswgnu rswgnu commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner
  • INCOMPATIBLE CHANGE: These variables:
    kotl-mode:action-key-default-function, kotl-mode:assist-key-default-function
    smart-org-action-key-heading-function, smart-org-assist-key-heading-function
    by default are set to no-ops and outline visibility cycling will now be handled by TAB/S-TAB rather than the Smart Keys.

  • hsys-org-cycle-global - Change all org-global-cycle' references to org-cycle-global' and set this command to `org-cycle-global'.

  • kcell-data:create - Signal an error if buffer-local `kotl-kview' is not a valid kview.

  • hywiki-word-action-key-creation-allowed-p,
    hywiki-word-create-exclude-action-key-modes - Add and use in ibtype, `hwyiki-word' to control which major modes disable Action Key WikiWord creation (none, by default).

  • hyrolo-yank - Interactively, indicate whether yanking an entry or a tree (sub-entries).

  • hsys-org-cycle-global - Trigger error to upgrade Org if `org-cycle-global'
    is not defined.

  • kotl/EXAMPLE.kotl:

  • man/hyperbole.texi (Promoting and Demoting) - Remove {M-0 TAB} and {M-0 S-TAB} for demoting and promoting within Org tables as M-0 is used as a flag to these commands to also fill cells. Additionally, these bindings worked only when `kotl-mode:tab-flag' /= 'cycle.

  • kotl-mode:tab/untab-command - Remove {M-1 TAB} for toggling TAB/S-TAB function for greater Org compatibility. {M-0 TAB} still works for tree demotion/promotion if not in Org-style cycle mode. Use existing bindings of {C-c C-.} and {C-c C-,} for tree demotion/promotion regardless of TAB mode.

  • kotl-mode:setup-keymap - Add {C-c C-]} binding for `kotl-mode:toggle-tab-flag' to replace {M-1 TAB}.

  • kotl/EXAMPLE.kotl - Doc updates for various TAB key uses and settings of `kotl-mode:tab-flag'.

  • link-to-kcell - Fix to handle when 'cell-ref' has an extra trailing punctuation character that needs removal, like: "3b=071.".

  • kotl-mode:tab-flag - Make 'cycle the default for Org-style compatibility.

  • kotl-mode:letter-prefix - Add comment to the :custom setting of how to change the Koutliner {C-c ; } bindings back to {C-c } if desired. Bindings were changed.

  • kotl-mode:setup-keymap - Enable letter key bindings to handle prefix remapping.

  • kotl-mode:set-letter-prefix-standard, kotl-mode:set-letter-prefix-control-c) - Add these discrete commands for interactive use and use them in `kotl-mode:toggle-letter-prefix'.

  • kotl-mode-letter-map, kotl-mode-letter-prefix - Add.

  • kotl-mode:setup-keymap - INCOMPATIBLE CHANGE: Use above to move all {C-c } bindings to {C-c ; } so do not override what should be left as user-bindable keys. User can then change the C-c ; prefix as desired by setting `kotl-mode-letter-prefix'.

  • kotl-mode:toggle-letter-prefix - Add and bind to {M-1 C-c C-l}.

  • kview:set-label-type - Update to take a prefix arg and call the above function when sent an arg of 1.

  • hsys-flymake-global-control-l-prefix-map - Create and fix global {C-c C-l t} map and key for flymake toggling.

  • man/hyperbole.texi (Smart Key - Flymake Mode) - Note that {C-c C-l t} is a global binding made only if {C-c C-l} is unbound when Hyperbole is loaded.

  • kotl-mode - Ensure `flymake-mode' is disabled or it will override the {C-c C-l} in this mode.

  • hui-mini.el (hui:menu-mode-map)

  • hyrolo.el (hyrolo-mode-map) - Adjust to bind same TAB/S-TAB keys as in Koutliner. INCOMPATIBLE CHANGE: Remove M-TAB binding since often used to switch applications.

rswgnu added 4 commits October 6, 2026 00:59
…h func variables

INCOMPATIBLE CHANGE: These variables:
  kotl-mode:action-key-default-function, kotl-mode:assist-key-default-function
  smart-org-action-key-heading-function, smart-org-assist-key-heading-function
by default are set to no-ops and outline visibility cycling will now be
handled by TAB/S-TAB rather than the Smart Keys.

hsys-org-cycle-global - Change all `org-global-cycle' references to
`org-cycle-global' and set this command to `org-cycle-global'.

kcell-data:create - Signal an error if buffer-local `kotl-kview' is not a
valid kview.

hywiki-word-action-key-creation-allowed-p,
hywiki-word-create-exclude-action-key-modes - Add and use in ibtype, `hwyiki-word'
to control which major modes disable Action Key WikiWord creation (none, by default).

hyrolo-yank - Interactively, indicate whether yanking an entry or a tree (sub-entries).
Two tests: demo-org-hide-header-test and
smart-org-mode-on-header-cycles-visibility.
hsys-org-cycle-global - Trigger error to upgrade Org if `org-cycle-global'
is not defined.

kotl/EXAMPLE.kotl:
man/hyperbole.texi (Promoting and Demoting) - Remove {M-0 TAB} and {M-0 S-TAB}
for demoting and promoting within Org tables as M-0 is used as a flag to
these commands to also fill cells.  Additionally, these bindings worked only
when `kotl-mode:tab-flag' /= 'cycle.

kotl-mode:tab/untab-command - Remove {M-1 TAB} for toggling TAB/S-TAB
function for greater Org compatibility.  {M-0 TAB} still works for tree
demotion/promotion if not in Org-style cycle mode.  Use existing bindings of
{C-c C-.} and {C-c C-,} for tree demotion/promotion regardless of TAB mode.

kotl-mode:setup-keymap - Add {C-c C-]} binding for `kotl-mode:toggle-tab-flag'
to replace {M-1 TAB}.

kotl/EXAMPLE.kotl - Doc updates for various TAB key uses and settings of
`kotl-mode:tab-flag'.

link-to-kcell - Fix to handle when 'cell-ref' has an extra trailing punctuation
character that needs removal, like: "3b=071.".

kotl-mode:tab-flag - Make 'cycle the default for Org-style compatibility.

kotl-mode:letter-prefix - Add comment to the :custom setting of how to change
the Koutliner {C-c ; <letter>} bindings back to {C-c <letter>} if desired.
Bindings were changed.

kotl-mode:setup-keymap - Enable letter key bindings to handle prefix remapping.

kotl-mode:set-letter-prefix-standard, kotl-mode:set-letter-prefix-control-c) -
Add these discrete commands for interactive use and use them in
`kotl-mode:toggle-letter-prefix'.
kotl-mode-letter-map, kotl-mode-letter-prefix - Add.
kotl-mode:setup-keymap - INCOMPATIBLE CHANGE: Use above to move all {C-c <letter>}
bindings to {C-c ; <letter>} so do not override what should be left as
user-bindable keys.  User can then change the C-c ; prefix as desired by setting
`kotl-mode-letter-prefix'.
kotl-mode:toggle-letter-prefix - Add and bind to {M-1 C-c C-l}.
kview:set-label-type - Update to take a prefix arg and call the above function
when sent an arg of 1.

hsys-flymake-global-control-l-prefix-map - Create and fix global {C-c C-l t}
map and key for flymake toggling.

man/hyperbole.texi (Smart Key - Flymake Mode) - Note that {C-c C-l t} is a global
binding made only if {C-c C-l} is unbound when Hyperbole is loaded.

kotl-mode - Ensure `flymake-mode' is disabled or it will override the {C-c C-l}
in this mode.

hui-mini.el (hui:menu-mode-map)
hyrolo.el (hyrolo-mode-map) - Adjust to bind same TAB/S-TAB keys as in Koutliner.
INCOMPATIBLE CHANGE: Remove M-TAB binding since often used to switch applications.
@rswgnu rswgnu changed the title org-mode, kotl-mode - Replace Action/Assist Key behavior in cells with func variables org-mode, kotl-mode - Replace Action/Assist Key behavior in cells with func variables; update kotl-mode with better Org and Emacs key compatibility Oct 8, 2026
rswgnu added 5 commits October 8, 2026 15:51
hkey-help - Fix error when `actype' was nil because there is no
`hbut:current' actype but there is a `cmd-sym'.  In this case,
set `actype' to `cmd-sym' and use its doc string.

kotl-mode:toggle-letter-prefix, kotl-mode:set-letter-prefix-standard): Add
support for matching "\C-c" in addition to "C-c".
kotl-mode:set-letter-prefix-control-c - Trigger error if
'kotl-mode:letter-prefix' is not a string.  Also, change so does not disable
any prior prefix so default letter bindings are always available.
kotl-mode:set-letter-prefix-standard - Add optional 'letter-prefix' argument
so user can specify own prefix to letter keys.
man/use-package (hyperbole): Offer commented out settings for the above.
- kcell-view:first-line - Add and use in forthcoming kotl-download.el.

- kotl-mode:setup-keymap - Bind {C-c C-x C-v} to toggling inline image
display for Org compatibility.

- man/use-package (hyperbole): Add note on how to permanently enable inline
image display in Koutline buffers.

- kvspec:update-modeline - Fix kvspec mod to mode-line without explicitly
copying the mode-line; make it buffer-local.

kotl-mode - Fix removal of Narrowed indicator in mode-line without copying the
mode-line and losing updates to the minor modes.

- kotl-mode:toggle-letter-prefix, kotl-mode:set-letter-prefix-standard - Add
support for matching "\C-c" in addition to "C-c".

- smart-org-mode-on-header-cycles-visibility - Bind Action Key variable needed
for the test to restore prior Hyperbole Org mode behavior.

- Merge branch 'master' into rsw
hyrolo-tests--yank - Add test of yanking a kotl header.
- hyrolo-tests--fgrep-and-goto-next-visible-kotl-heading,
hyrolo-tests--fgrep-and-goto-next-visible-kotl-heading-level-2,
hyrolo-tests--fgrep-and-goto-next-visible-kotl-heading-cell-2 - Now must
save a HyRolo file before trying to do a HyRolo search on it due to an
optimization using grep, so add a `save-buffer' call before testing.

- hypb:require-package - Return t on success.
hypb:package-el-install - Trigger an error if package is not installable
in the current Emacs version.

- hsys-consult--noninteractive-grep-paths - Add and use in `hyrolo-grep'
to minimize the number of files that must be searched for entry matches.

- hsys-consult--grep-paths - Add doc of return value.

- hpath:expand - Update doc to note that this does not expand tilde home
directory references.  Call `expand-file-name' for that.

- hui-mouse.el (hkey-alist, smart-push-button): Fix Emacs push button
handling so 'smart-push-button' is not dependent on the return value
of any push-button activated from a text property, as that can commonly
return nil.
Comment thread Makefile Outdated
@rswgnu

rswgnu commented Oct 14, 2026 via email

Copy link
Copy Markdown
Owner Author

- DEMO: Remove the INSTALL file and replace it with references to
"README.md#Installation".

- Makefile (confirm): Fix typo that moved single quotes improperly.
           (README.md.html): Remove this target; build as part of README.md.

- man/hyperbole.texi (Tarball Install, Package Installation): Simplified
naming of these two sections.
                     (Hyperbole Overview): Add HyWiki summary.
                     (Installation and Configuration): Finish this section.

- MANIFEST, Makefile: Move README.md to README.in.md.  Format it to produce
README.md as part of the 'doc' target.  Eliminate README.toc.md.
- hyrolo-grep - Add check of 'hsys-consult-flag' before
calling `hsys-consult--noninteractive-grep-paths'.

- hypb--require-package - Rename test package to `non-exist-pkg'.

- DEMO - Remove the INSTALL file and replace it with references to
"README.md#Installation".

- `consult' now requires a minimum of Emacs 29.1; enable
`hsys-consult-flag' only if on a compatible Emacs version.
Disable calling `hsys-consult--noninteractive-grep-paths' (commented out
for now) because it was causing hyrolo tests to fail intermittently due
to some difference in timing.
@rswgnu
rswgnu requested a review from matsl October 14, 2026 17:58
@rswgnu
rswgnu marked this pull request as ready for review October 14, 2026 17:58

@matsl matsl left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Super!

@rswgnu rswgnu changed the title org-mode, kotl-mode - Replace Action/Assist Key behavior in cells with func variables; update kotl-mode with better Org and Emacs key compatibility V9.3.0 Pre-release - org-mode, kotl-mode - Add {C-c ; <letter>} bindings in Koutliner; Koutliner TAB Org-style cycling; Replace Action/Assist Key behavior in cells with func variables; update kotl-mode with better Org and Emacs key compatibility Oct 14, 2026
@rswgnu
rswgnu merged commit d57bfec into master Oct 14, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants