DEV Community

Cover image for Inkscape: Command Palette merged!
Abhay Raj Singh
Abhay Raj Singh

Posted on

Inkscape: Command Palette merged!

Background

I enrolled in Google Summer of Code this year with Inkscape as my mentor organization. I proposed to implement the Command palette and the Macros (more on that later).

About

The 'Command Palette' feature is finally merged in Inkscape's master branch, it has still a long way to go, but now you can easily contribute and try it out. It is currently available in version 1.1-alpha, and it may even land in version 1.1.
So what even is command palette?

Command Palette

If I had to summarize it in a sentence

The Command Palette is an Access Point with a text interface.

Woah! No jargon!

You can do things by typing.

What does it do? Search and/or Execute.

Why though?

  • To Maximize the speed and efficiency of the user and to minimize frustration and boredom.

Final goals

  • Search for actions and execute them.
  • Search for recent files and open/import them.
  • Remember previous commands and their parameters.
  • Execute Python code.
  • Execute shell commands.

What are actions?

Actions are the backbone of everything you do in Inkscape.

  • Rotating an object is an action.
  • Zooming in and out are actions.

Current status

Don't try to be an oracle, tell me what it can do now!

  • Search for actions and execute them.
  • Search for recent files and open/import them.
  • Remember previous commands and their parameters.

Well, that's it for now, more features will be added in the future.

How to use?

NOTE: only available in Inkscape 1.1-dev or 1.1-alpha

To open the Command Palette, press ?. You are greeted with a beautiful (not really) dialog.
Command Palette open screenshot

If you can't stand this beauty (not really), you can close it by

  1. Clicking on canvas or any object on the canvas.
  2. Pressing esc.
  3. Pressing ? again.

Testing it out

  1. Type snap and now you can easily find the snapping option you want without hovering over every icon. Searched "snap" in command palette
  2. Select an object, type rotate, and then press enter, put in the angle you want to rotate the object by, and press enter again. Rotate using command-palette demo
  3. Type a recent filename you worked on (before restart). There will be two options: open and import. Import using command palette demo Open just opens it in a new document in a new window, while import, imports the image in the current document.

Scroll through the operations available when you open the command palette.

Some operations are missing

  • Inkscape is moving from, verbs to actions, and thus not all features of Inkscape are available through the command palette.

History

The command palette remembers the last commands you performed. To access them press the up key when Command Palette is in focus.
Press the down key when on the most recent command to go back from history mode to search mode.
History demo

Many actions that you use take input or parameter, for example, rotate action takes angle, transform action takes distances to move an object by, in x and y directions.
Parameters of actions are also remembered (doesn't work in 1.1-alpha), so when you're asked degrees for rotate, you can just press the up key until you find the previously used value you wanted.
Action parameter history demo

TODO

  1. Porting more verbs to actions.
  2. Favourites.
  3. Set shortcuts from the command palette.
  4. Display the menu location of an action.
  5. Better searching algorithm.
  6. Input descriptions
  7. Cleanliness: many actions aren't useful for GUI users and hence should not appear in the command palette.

...and many more. It's still a new feature, written by a kid during summer, so there's a lot of room for improvement.

Contributing

  1. Make a feature request or report a bug in the Inbox bug tracker.
  2. Help in making it more intuitive in the UX discussion channel
  3. Want to code? Get in touch on the Inkscape Chat, ping @rathod-sahaab, maybe I can help you get up to speed, or reach out on Twitter @swayambhu_dev.

Discussion (3)

Collapse
lexlohr profile image
Alex Lohr

A command palette is a great tool for any power user. Good job!

Collapse
sovtrotter profile image
Arsh Sharma

This is really exciting. GGWP!

Collapse
rathod_sahaab profile image
Abhay Raj Singh Author

BBH