yuchen-lea / org-media-note

Taking interactive notes when watching videos or listening to audios in org-mode.
GNU General Public License v3.0
232 stars 35 forks source link

discussion: Come up with a way to leave the hydra visible, so we don't have to invoke it so often? #11

Closed japhir closed 3 years ago

japhir commented 3 years ago

I've just been trying this out, and I love it so far!

Taking notes on a video where I insert timestamps on important steps, and take screenshots of the relevant slides looks great! And if I find out my notes are unclear, I can just click the link and watch the relevant section again.

However, I find that I have to press the keybinding for org-media-note-hydra/body A LOT.

My workflow:

It would be great if the hydra could remain open and the hotkeys only work when the buffer is focused, similar to how the ediff tool creates a new frame with hotkeys that only works when the frame has focus?

Or perhaps we could use some kind of org-capture approach? where hitting i triggers a capture buffer, and after filing it goes back to the hydra? This would also allow creating capture templates, so it would create something like:

* [video url timestamp] note title

I'm not sure what the best approach would be, but I just wanted to make some suggestions to prevent us from having to type the same key-combo so often.

What do you think? Thanks again for the awesome package!

yuchen-lea commented 3 years ago

Happy to know this does some help for you!

Let's discuss several designs:

  1. always open hydra: It's difficult to think of unconflicting keybindings, since we may input any possible characters when making notes! Decorating keybindings with some leader key or Ctrl, Meta, Alt may be a solution, but I'm not sure whether the complicated design make the shortcut meaningless.
  2. something like ediff helper: there are two steps:
    1. switch to the helper frame
    2. hit the key Number of steps are the same, the only difference is either to switch frame or open hydra.
  3. org-capture approach: I'm afraid it's not very fluent: 1. triggers a capture buffer 2. edit notes 3. C-c C-c to finish. In my experience, org-capture takes much more time than adding a new item in list.
  4. current plan: It's not perfect, you have to open the hydra at sometime. I chose this because:
    1. it's efficient to control the video, because in this situation, you may hit the volume up or decrease speed multiple time. After open hydra, things behave like you are in mpv.
    2. If you often use some specific commands, you can find the command name in hydra or README, then bind it to any key fits you. Also, I want to point out something you may not notice:
      • When in a list like - [[video:video.mp4#00:03:24][00:03:24]] description, <M-return> will auto insert media link. The first gif demoed this, and it's also described in the README. If you just want to insert the timestamp, no need to open hydra. (which I think may be the most frequent command)
      • If you want to insert screenshots every time you insert link, you can toggle Auto save screenshot on in hydra. After that, you don't need to open hydra. The second gif demoed this.

So my workflow:

  1. open video
  2. create a list
  3. open hydra
  4. adjust video speed and volume
  5. insert timestamp
  6. escape the hydra
  7. <M-return> for auto inserting media link.

Open hydra only when I want to control video or insert screenshots, which are not often for me.

Again, if you often use some specific commands, consider binding keys for them. They are listed in README or you can find them in hydra code.

japhir commented 3 years ago

Oh WOW, I did not understand from the readme that M-return does what you describe:

When in a list like - [[video:video.mp4#00:03:24][00:03:24]] description, will auto insert media link. The first gif demoed this, and it's also described in the README. If you just want to insert the timestamp, no need to open hydra. (which I think may be the most frequent command)

That is awesome!

What would it take to get this to work with headlines created with C-ret?

yuchen-lea commented 3 years ago

Welcome any PR to improve the README! Writing an easy-understanding doc is laborious, especially for EFL speakers like me 😂

After a brief research, heading-insertion would take some time, since it misses some functions which are provided in list-insertion. I may look into this when I have time, it's at low priority compared to others.

Now, you can create list item first, then convert list to headings by C-c * org-ctrl-c-star

japhir commented 3 years ago

No wories, after checking again it is quite obvious in the readme. I guess I got distracted from watching the gifs and didn't read on after it. It might be nice to include the workflow as you described it here somewhere at the top of the readme?

I'm also a non-native speaker so I feel your pain :).

I guess we can close this, thanks for considering implementing the headings, I understand that this has low priority for now.