GSoC Idea - Custom keyboard shortcuts

this is the topic in regard to the above-mentioned topic.
Anything on how to do this, how it shall be done, what features in shell include etc. is discussed here if an existing topic hasn’t been created yet, see idea description below.
Your interest in this idea shall be announced here, otherwise, it gets easily lost as we would need to remember each introduction.

This topic is used to update the specification of the idea as well, even if there is an existing topic, so interested students, watch it!
Anything that shell be discussed privately as e.g. if it involves your proposal will be discussed through a private channel what is currently in discussion.

As of the moment, I’m writing this, the idea’s description of https://joplinapp.org/gsoc2020/ideas.html#9-custom-keyboard-shortcuts is:

The CLI application allows setting custom keyboard shortcuts, however this feature is currently missing from the desktop application. We would like to let the user set shortcuts for the menu items in particular, but also potentially any other Joplin action. There should be a shortcut editor in the Config panel to do this.

Expected Outcome: To add support for custom shortcuts and allow editing them in the config screen

Difficulty Level: Easy
Skills Required: JavaScript; React
Potential Mentor(s): tessus, laurent22

2 Likes

Hi @PackElend,my name is Rahul Mohata.I am a 2nd year Btech student from India. I would love to work on this project. Can i get a brief description of the project ?

great to see here showing interest in this idea :slight_smile:

We would like to let the user set shortcuts for the menu items in particular, but also potentially any other Joplin action. There should be a shortcut editor in the Config panel to do this.

besides this what else is needed to understand it better

7 posts were split to a new topic: Snippet engine

Hi @PackElend, My name is Siddhant Sehgal and i am interested in this idea and from whom shall i verify my proposal before submitting?

read the live blog

Thank you so much @PackElend

Hi @PackElend I want to work on this project . I have already known about what to do but May I know some brief description like What shortcut keys do you expected to create, Should I start a prototype for this project. Apart from that I am also intersted to work on the 1. Support for multiple profiles and 6. Password for notes. So Can you give me any suggestions?

@Ak1999 your quite late and you have to do PRs too!

have you read Snippets in Joplin?

You have to write a proposal till Tuesday, you should be able to prioritize by yourself as we don’t know anything about you, you haven’t written an introduction about yourself yet.
If you are capable of doing this than you should know what you have to do next…

Hi, I am Ashis Kumar Sahoo a 2nd-year undergraduate student in Computer Science and Engineering at Silicon Institute of Technology. I am developing web applications using React. Actually I read the snippet.
In the snippet, it has been written that this custom shortcut key project does not belong to Gsoc. So can you tall me in detail, please.

Can you guide me to do any other ideas between multiple profiles support or password for notes?

have you read the GSoC Live Blog ?
Properly not otherwise you would not put your introduction here

Problem:
Currently, there are no shortcut features in Joplin which is basically needed while writing notes. As of now users have to use Markdown syntax for writing the notes and it is a pain for non-technical users. They need a more seamless way to write the notes.

Solution Idea:
Creating a very simple editor component in react as shown in the video. Also below is the list of some shortcut keys :

  1. Paragraph- Ctrl+p
    2.H1- Ctrl+h+1
    3.H2- Ctrl+h+2
    4.H3- Ctrl+h+3
  2. Ordered list- Ctrl+O
  3. Unordered list- Ctrl+shift+U
  4. Tasklist- Ctrl+T
    8.Quote- Ctrl+Q
    9.Bold- Ctrl+B
  5. Italic- Ctrl+I
    11.Underline- Ctrl+U

Here is prototype of the project-


@PackElend Please take a look and suggest me If any modification you want .

ok does look good for the beginning but how user can change them?

Change as in?

I think he means changing the shortcut according the user’s requirement. If the user wants a specific shortcut for some function, how he’ll be able to do it.
For ex: if I want ctrl + a for paragraph instead of ctrl + p

I think, keeping the shortcut keys generic is the best option instead of custom. If you think it from the UX perspective, sometimes it’s important to keep the existing Mental Model that a user already has for certain features. Because it makes more sense for a user to guess the shortcut for the paragraph as Ctrl + P rather than Ctrl + A. And the same follows for all the shortcuts. For making the text bold it should be Ctrl + B, for Quote it should be Ctrl + Q.

Examples:

  1. Paragraph- Ctrl+p
    2.H1- Ctrl+h+1
    3.H2- Ctrl+h+2
    4.H3- Ctrl+h+3
  2. Ordered list- Ctrl+O
  3. Unordered list- Ctrl+shift+U
  4. Tasklist- Ctrl+T
    8.Quote- Ctrl+Q
    9.Bold- Ctrl+B
  5. Italic- Ctrl+I
    11.Underline- Ctrl+U

I think, adding an option for custom shortcuts is an overhead.

That’s totally up to you and admins. But that was just my suggestion. You can keep these as defaults and will allow them to edit, if user wants to. And I don’t think that will be difficult to implement. You can keep these as defaults in a file like a json and if user wants to update them, just change those values in that file later.

that what I meant :slight_smile:
A GUI based dialog would be even better

1 Like

That’s okay but for the MVP I think we should start from the defaults and later on if we get some feature requests for the custom shortcuts we can then think of implementing. In this book “Getting Real” they talk about building less features and having less preferences upfront. This is my sincere suggestion.