emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Contributing org-menu (using transient) to Orgmode?
@ 2024-11-17 13:33 Jan Rehders
  2024-11-23 16:56 ` Ihor Radchenko
  0 siblings, 1 reply; 6+ messages in thread
From: Jan Rehders @ 2024-11-17 13:33 UTC (permalink / raw)
  To: emacs-orgmode

Hello,

I wrote a package called org-menu which uses transient to add a
discoverable menu to Orgmode. It's a bit of a mix of a modal editing
mode or speed commands and a Magit style hierarchical menu to find
less frequently used commands.  I'd like to start a discussion here
whether this plugin or similar functionality should be part of
Orgmode before I block the name by getting it into nongnu elpa.

See https://github.com/sheijk/org-menu for some screen shots and
description.

Some questions:
- should this or similar functionality be part of Orgmode? At least
  the discoverability seems to be nice to have
- what about overlap of the menu bar Orgmode already has. I think
  this is a general question about transient vs. menu bars. Maybe a
  generic solution to use transient to navigate the menu bar would
  be more useful?
- should something in Orgmode also have the modal editing part
  integrated? For me that part is the most useful as I can use the
  transient for nearly all editing tasks and the move into the tasks
  for commands whose shortcuts I keep forgetting
- would this need to be made more modular and extensible so it's
  different parts could be moved into the respective Orgmode parts
  (like column view features, etc.)?

I'd be open to contributing this to Emacs/Orgmode but I'd also be
happy to keep maintaining it as a separate package. Only thing I
would like to avoid would be to strip parts of it's functionality as
then I'd need to fork my own package

Kind regards,
Jan



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Contributing org-menu (using transient) to Orgmode?
@ 2024-11-18  8:40 Dilip via General discussions about Org-mode.
  0 siblings, 0 replies; 6+ messages in thread
From: Dilip via General discussions about Org-mode. @ 2024-11-18  8:40 UTC (permalink / raw)


The following message is a courtesy copy of an article
that has been posted to gmane.emacs.orgmode as well.


> See https://github.com/sheijk/org-menu for some screen shots and
> description.

Hi! I'm just a casual user.
This package seems amazing from initial usage, does improve org workflow well.

I'm excited to follow up on this inclusion.

I'd like to just plug few lists related to this topic.

  1. https://list.orgmode.org/878qubw5uo.fsf@localhost/#r
    There was a discussion on transient for org mode, which seems
    positive to welcome this code.

  2. https://list.orgmode.org/8734m28l9a.fsf@gmail.com/#r
    This is a long thread on org-cite via transient. (I'm not sure if
    this is not related / off-topic)

--
Best,
Dilip



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Contributing org-menu (using transient) to Orgmode?
@ 2024-11-18  8:45 Dilip via General discussions about Org-mode.
  0 siblings, 0 replies; 6+ messages in thread
From: Dilip via General discussions about Org-mode. @ 2024-11-18  8:45 UTC (permalink / raw)
  To: jan; +Cc: emacs-orgmode

The following message is a courtesy copy of an article
that has been posted to gmane.emacs.orgmode as well.

> See https://github.com/sheijk/org-menu for some screen shots and
> description.

Hi! I'm just a casual user.
This package seems amazing from initial usage, does improve org workflow well.

I'm excited to follow up on this inclusion.

I'd like to just plug few lists related to this topic.

  1. https://list.orgmode.org/878qubw5uo.fsf@localhost/#r
    There was a discussion on transient for org mode, which seems
    positive to welcome this code.

  2. https://list.orgmode.org/8734m28l9a.fsf@gmail.com/#r
    This is a long thread on org-cite via transient. (I'm not sure if
    this is not related / off-topic)

-- 
Best,
Dilip



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Contributing org-menu (using transient) to Orgmode?
  2024-11-17 13:33 Jan Rehders
@ 2024-11-23 16:56 ` Ihor Radchenko
  2024-11-24 16:28   ` Jan Rehders
  0 siblings, 1 reply; 6+ messages in thread
From: Ihor Radchenko @ 2024-11-23 16:56 UTC (permalink / raw)
  To: Jan Rehders; +Cc: emacs-orgmode

Jan Rehders <jan@sheijk.net> writes:

> I wrote a package called org-menu which uses transient to add a
> discoverable menu to Orgmode. It's a bit of a mix of a modal editing
> mode or speed commands and a Magit style hierarchical menu to find
> less frequently used commands.  I'd like to start a discussion here
> whether this plugin or similar functionality should be part of
> Orgmode before I block the name by getting it into nongnu elpa.

Thanks for reaching out!
Your package appears somewhat similar to
https://github.com/kickingvegas/casual-suite

> See https://github.com/sheijk/org-menu for some screen shots and
> description.
>
> Some questions:
> - should this or similar functionality be part of Orgmode? At least
>   the discoverability seems to be nice to have

Maybe. I am not 100% sure about generic menu functionality, but we do
have something similar for org-goto (help window) and org-speed-commands
(org-speed-command-help). Using transient instead of these ad-hoc help
menus could be beneficial. In particular, integration with
org-speed-commands can be very helpful.

More generally, we have previously discussed the idea of generic help
menu for major modes. See https://list.orgmode.org/orgmode/87a5oayblv.fsf@gmail.com/
I personally like the idea of some kind of help menu, but I have doubts
that transient is best-suited for the task. Ideally, help menus should
help with the existing key bindings rather than introducing brand
new. AFAIK, transient _always_ introduces new bindings.

> - what about overlap of the menu bar Orgmode already has. I think
>   this is a general question about transient vs. menu bars. Maybe a
>   generic solution to use transient to navigate the menu bar would
>   be more useful?

Menu bar can already be navigated from keyboard. Try M-x tmm-menubar.
Maybe transient could be utilized as a better UI for the same purpose,
but that's a topic for emacs-devel, not Org mailing list.

> - should something in Orgmode also have the modal editing part
>   integrated? For me that part is the most useful as I can use the
>   transient for nearly all editing tasks and the move into the tasks
>   for commands whose shortcuts I keep forgetting

org-speed-commands

> - would this need to be made more modular and extensible so it's
>   different parts could be moved into the respective Orgmode parts
>   (like column view features, etc.)?

I do not have a full picture of what you have in mind wrt integration
with Org upstream and about the structure of your package. So, I cannot
tell much on this.

wrt column view, I have doubts that transient can be very useful -
column view uses overlay keymaps while transients are global.

> I'd be open to contributing this to Emacs/Orgmode but I'd also be
> happy to keep maintaining it as a separate package. Only thing I
> would like to avoid would be to strip parts of it's functionality as
> then I'd need to fork my own package

This part is not fully clear to me. Do you mean that you are only
willing to upstream the whole package, but not parts of it?

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Contributing org-menu (using transient) to Orgmode?
  2024-11-23 16:56 ` Ihor Radchenko
@ 2024-11-24 16:28   ` Jan Rehders
  2024-11-25 17:13     ` Ihor Radchenko
  0 siblings, 1 reply; 6+ messages in thread
From: Jan Rehders @ 2024-11-24 16:28 UTC (permalink / raw)
  To: emacs-orgmode; +Cc: Ihor Radchenko

> Your package appears somewhat similar to
> https://github.com/kickingvegas/casual-suite

Yes, only the speed commands like functionality seems to be less common for the casual packages. I even considered renaming it to casual-org before I saw that all the casual packages are by the same person

> Maybe. I am not 100% sure about generic menu functionality, but we do
> have something similar for org-goto (help window) and org-speed-commands
> (org-speed-command-help). Using transient instead of these ad-hoc help
> menus could be beneficial. In particular, integration with
> org-speed-commands can be very helpful.
> 
> More generally, we have previously discussed the idea of generic help
> menu for major modes. See https://list.orgmode.org/orgmode/87a5oayblv.fsf@gmail.com/
> I personally like the idea of some kind of help menu, but I have doubts
> that transient is best-suited for the task. Ideally, help menus should
> help with the existing key bindings rather than introducing brand
> new. AFAIK, transient _always_ introduces new bindings.

I think which-key has been added to Emacs, that one seems like a good fit

>> - should something in Orgmode also have the modal editing part
>>  integrated? For me that part is the most useful as I can use the
>>  transient for nearly all editing tasks and the move into the tasks
>>  for commands whose shortcuts I keep forgetting
> 
> org-speed-commands

org-menu works on many more elements than headings. Table cells, list items, dates, normal text formatting, etc. See the transient-insert-suffix 'org-menu at the end of the file following :if blocks for conditional enabling commands for various elements. This is as ad-hoc as Orgmodes keybinding overloads depending on context (which might also be a good thing to generalise it, like some commercial text editors did/do)

> 
>> - would this need to be made more modular and extensible so it's
>>  different parts could be moved into the respective Orgmode parts
>>  (like column view features, etc.)?
> 
> I do not have a full picture of what you have in mind wrt integration
> with Org upstream and about the structure of your package. So, I cannot
> tell much on this.

This is more or less what I want to find out. It mostly depends on what Orgmode maintainers think is most useful or how this should change.

I imagine splitting it into several files which follow Org’s existing structure might make sense as well as making it easier to add new parts to it. I don’t know how to best do that, yet.

> wrt column view, I have doubts that transient can be very useful -
> column view uses overlay keymaps while transients are global.

org-menu has support for column view. It’s the only way I’ve ever succeeded in using it w/o having to look up all the bindings, again.

>> I'd be open to contributing this to Emacs/Orgmode but I'd also be
>> happy to keep maintaining it as a separate package. Only thing I
>> would like to avoid would be to strip parts of it's functionality as
>> then I'd need to fork my own package
> 
> This part is not fully clear to me. Do you mean that you are only
> willing to upstream the whole package, but not parts of it?

I’m willing to upstream it in any way. But w/o the speed keys functionality I think I would kind of fork it again for my personal use. Or better yet use to be added extension hooks to re-add it



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Contributing org-menu (using transient) to Orgmode?
  2024-11-24 16:28   ` Jan Rehders
@ 2024-11-25 17:13     ` Ihor Radchenko
  0 siblings, 0 replies; 6+ messages in thread
From: Ihor Radchenko @ 2024-11-25 17:13 UTC (permalink / raw)
  To: Jan Rehders; +Cc: emacs-orgmode

Jan Rehders <jan@sheijk.net> writes:

>> More generally, we have previously discussed the idea of generic help
>> menu for major modes. See https://list.orgmode.org/orgmode/87a5oayblv.fsf@gmail.com/
>> I personally like the idea of some kind of help menu, but I have doubts
>> that transient is best-suited for the task. Ideally, help menus should
>> help with the existing key bindings rather than introducing brand
>> new. AFAIK, transient _always_ introduces new bindings.
>
> I think which-key has been added to Emacs, that one seems like a good fit

which-key only provides key binding + symbol. No description and no grouping.

>> org-speed-commands
>
> org-menu works on many more elements than headings. Table cells, list items, dates, normal text formatting, etc. See the transient-insert-suffix 'org-menu at the end of the file following :if blocks for conditional enabling commands for various elements. This is as ad-hoc as Orgmodes keybinding overloads depending on context (which might also be a good thing to generalise it, like some commercial text editors did/do)

org-speed-commands can work outside headings as well. See
`org-use-speed-commands'.

>> I imagine splitting it into several files which follow Org’s
>> existing structure might make sense as well as making it easier to
>> add new parts to it. I don’t know how to best do that, yet.

I do believe that the best way to integrate menus like in your package
is extending org-speed-commands functionality. For example, we can
introduce something like `org-speed-commands-toggle' that will toggle
the transient menu. Does it make sense?

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-11-25 17:13 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-18  8:45 Contributing org-menu (using transient) to Orgmode? Dilip via General discussions about Org-mode.
  -- strict thread matches above, loose matches on Subject: below --
2024-11-18  8:40 Dilip via General discussions about Org-mode.
2024-11-17 13:33 Jan Rehders
2024-11-23 16:56 ` Ihor Radchenko
2024-11-24 16:28   ` Jan Rehders
2024-11-25 17:13     ` Ihor Radchenko

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).