# Hotkeys, anyone?

**URL:** <https://librepcb.discourse.group/t/hotkeys-anyone/229>\
**Category:** Improvement Ideas\
**Created:** [May 17, 2020, 1:40pm UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229 "2020-05-17T13:40:10Z")\
**Posts on this page:** 18\
**Page:** 2

<div class="post-metadata">

**Author:** ![parenthetical](https://avatars.discourse-cdn.com/v4/letter/p/839c29/32.png) [@parenthetical](https://librepcb.discourse.group/u/parenthetical)\
**Post date:** [May 27, 2022, 8:53pm UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/21 "2022-05-27T20:53:36Z")

</div>

is there a list somewhere of what hotkeys already exist?

I’m dying for increase/decrease grid size hotkey pair.

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [June 6, 2022, 2:43pm UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/22 "2022-06-06T14:43:34Z")

</div>

> [@parenthetical](#):
>
> is there a list somewhere of what hotkeys already exist?

Not yet.

> [@parenthetical](#):
>
> I’m dying for increase/decrease grid size hotkey pair.

Good idea, will be available in the next release 🙂

* * *

So I have now almost finished the implementation of this feature and thus the list of all commands is complete. I also tried to assign reasonable default shortcuts - thanks a lot to @rapha and @EdizonTN for your suggestions I used for inspiration 🎉

Note that the usage of so many single-key shortcuts (e.g. ‘A’) makes it almost impossible to also use key sequences (like ‘A, R’) since their first key would conflict with the single-key shortcuts ☹ One option would be to use only very few keys as the first key of all the key sequences, and never use these keys as single-key shortcuts (i.e. keep them reserved). In the extreme case this would be only a single key (e.g. the space key) but of course in fact this would make all key sequences longer.

Here the list of all commands, and the status of each shortcut in the last column (? = not fully clear yet). Any comments welcome! I will keep the list up to date by editing this post until the shortcuts are officially implemented.

> **Click to expand...**
>
> | Command | Description | Shortcuts | Status |
> | --- | --- | --- | --- |
> | | | | |
> | _ **Editor** _ | | | |
> | New | Add a new item | Ctrl+N | ✔ |
> | Open | Open the selected item(s) | Return | ✔ |
> | Save | Save changes to filesystem | Ctrl+S | ✔ |
> | Save All | Save all elements to filesystem | Ctrl+Shift+S | ✔ |
> | Select All | Select all visible objects | Ctrl+A | ✔ |
> | Find | Find or filter objects | Ctrl+F | ✔ |
> | Find Next | Go to the next found object | F3 | ✔ |
> | Find Previous | Go to the previous found object | Shift+F3 | ✔ |
> | Show in File Manager | Open directory in the file manager | | ✔ |
> | Control Panel | Bring control panel to front | Ctrl+Alt+Home | ✔ |
> | Switch Workspace | Choose another workspace | | |
> | Workspace Settings | Open workspace settings | Ctrl+, | ✔ |
> | Rescan Libraries | Scan all workspace libraries | F5 | ✔ |
> | Library Manager | Open library manager | Ctrl+Alt+M | ✔ |
> | Add To Favorites | Add project to favorites | | ✔ |
> | Remove From Favorites | Remove project from favorites | | ✔ |
> | New Library Element | Create a new library element | Ctrl+N | ✔ |
> | Duplicate | Create element by duplicating this one | Ctrl+D | ✔ |
> | New Project | Create a new project | Ctrl+N | ✔ |
> | Open Project | Open an existing project | Ctrl+O | ✔ |
> | Save Project | Save the currently opened project | Ctrl+S | ✔ |
> | Project Settings | View/modify the project settings | Ctrl+Alt+T | ✔ |
> | Project Properties | View/modify the project properties | Ctrl+Alt+R | ✔ |
> | Net Classes | View/modify the net classes | Ctrl+Alt+N | ✔ |
> | Grid Properties | View/modify the grid properties | F4 | ✔ |
> | Layer Stack | View/modify the board layer stack setup | F6 | ✔ |
> | Design Rules | View/modify the board design rules | F7 | ✔ |
> | Design Rule Check | Run the design rule check (DRC) | F8 | ✔ |
> | Update Project Library | Update the project’s library | Ctrl+F5 | ✔ |
> | Schematic Editor | Bring schematic editor to front | Ctrl+Alt+S | ✔ |
> | New Sheet | Add a new schematic sheet to the project | Ctrl+N | ✔ |
> | Rename Sheet | Rename current schematic sheet | Ctrl+F2 | ✔ |
> | Remove Sheet | Remove current schematic sheet | Ctrl+Del | ✔ |
> | Board Editor | Bring the board editor to front | Ctrl+Alt+B | ✔ |
> | New Board | Add a new board to the project | Ctrl+N | ✔ |
> | Copy Board | Add a copy of the current board | Ctrl+D | ✔ |
> | Remove Board | Remove the current board | Ctrl+Del | ✔ |
> | Show All Planes | Make filled areas of planes visible | | ✔ |
> | Hide All Planes | Make filled areas of planes invisible | | ✔ |
> | Rebuild All Planes | Re-calculate areas of planes | Ctrl+Shift+R | ✔ |
> | | | | |
> | _ **Import/Export** _ | | | |
> | Import DXF | Import a 2D mechanical drawing | | ✔ |
> | Import EAGLE Library | Import library elements from EAGLE \*.lbr | | ✔ |
> | Export \*.lppz Archive | Export the project as \*.lppz archive | | ✔ |
> | Export Image | Export graphics as a pixmap | Ctrl+Shift+I | ✔ |
> | Export PDF | Export graphics as a PDF | Ctrl+Shift+P | ✔ |
> | Print | Send graphics to a printer | Ctrl+P | ✔ |
> | Generate Bill Of Materials | Generate BOM | F9 | ✔ |
> | Generate Fabrication Data | Generate Gerber/Excellon | F10 | ✔ |
> | Generate Pick&Place Files | Generate pick&place files | F11 | ✔ |
> | Order PCB | Start ordering the PCB online | F12 | ✔ |
> | | | | |
> | _ **Modify** _ | | | |
> | Undo | Revert the last modification | Ctrl+Z | ✔ |
> | Redo | Re-apply the last reverted modification | Ctrl+Y; Ctrl+Shift+Z | ✔ |
> | Cut | Cut the selected object(s) to clipboard | Ctrl+X | ✔ |
> | Copy | Copy the selected object(s) to clipboard | Ctrl+C | ✔ |
> | Paste | Paste object(s) from the clipboard | Ctrl+V | ✔ |
> | Move Left | Move object(s) to the left | Left | ✔ |
> | Move Right | Move object(s) to the right | Right | ✔ |
> | Move Up | Move object(s) up | Up | ✔ |
> | Move Down | Move object(s) down | Down | ✔ |
> | Rotate Counterclockwise | Rotate selected object(s) counterclockwise | R | ✔ |
> | Rotate Clockwise | Rotate selected object(s) clockwise | Shift+R | ✔ |
> | Mirror Horizontally | Mirror the selected object(s) horizontally | M | ✔ |
> | Mirror Vertically | Mirror the selected object(s) vertically | Shift+M | ✔ |
> | Flip Horizontally | Flip the selected object(s) horizontally | F | ✔ |
> | Flip Vertically | Flip the selected object(s) vertically | Shift+F | ✔ |
> | Snap to Grid | Move selected object(s) onto the grid | S | ✔ |
> | Reset All Texts | Reset texts of footprint to initial state | | |
> | Properties | View/modify the object properties | E | ✔ |
> | Rename | Rename the selected object | F2 | ✔ |
> | Remove | Delete the selected object(s) | Del | ✔ |
> | | | | |
> | _ **View** _ | | | |
> | Zoom to Fit Contents | Set zoom level to fit content | Ctrl+Home | ✔ |
> | Zoom In | Increase the zoom level | Ctrl++ | ✔ |
> | Zoom Out | Decrease the zoom level | Ctrl+- | ✔ |
> | Increase Grid Interval | Increase grid interval | Ctrl+Shift++ | ✔ |
> | Decrease Grid Interval | Decrease grid interval | Ctrl+Shift+- | ✔ |
> | | | | |
> | _ **Tools** _ | | | |
> | Select | Select & modify existing objects | | ✔ |
> | Draw Line | Draw graphical lines | L | ✔ |
> | Draw Rectangle | Draw graphical rectangles | G | ✔ |
> | Draw Polygon | Draw graphical polygons | P | ✔ |
> | Draw Circle | Draw graphical circles | C | ✔ |
> | Add Text | Add graphical text objects | T | ✔ |
> | Add Name | Add graphical text objects for {{NAME}} | N | ✔ |
> | Add Value | Add graphical text objects for {{VALUE}} | V | ✔ |
> | Add Pin | Add symbol pins | I | ✔ |
> | Add SMT Pad | Add surface mounted copper pads | D | ✔ |
> | Add THT Pad | Add plated through-hole copper pads | H | ✔ |
> | Add Hole | Add non-plated holes (NPTH drills) | O | ✔ |
> | Draw Wire | Draw wires | W | ✔ |
> | Add Net Label | Add net labels | N | ✔ |
> | Add Component | Insert components | A | ✔ |
> | Draw Trace | Draw copper traces | W | ✔ |
> | Add Via | Add plated through-hole vias | V | ✔ |
> | Draw Plane | Draw auto-filled copper areas | N | ✔ |
> | | | | |
> | _ **Commands** _ | | | |
> | Go To Command Toolbar | Move focus into command toolbar | Tab | ✔ |
> | Abort Command | Abort the currently active command | Esc | ✔ |
> | Layer Up | Switch to next higher layer (bottom-\>top) | PgUp | ✔ |
> | Layer Down | Switch to next lower layer (top-\>bottom) | PgDown | ✔ |
> | Increase Line Width | Increase line/trace/stroke/text width | + | ✔ |
> | Decrease Line Width | Decrease line/trace/stroke/text width | - | ✔ |
> | Increase Size | Increase via/pad/text size | \* | ✔ |
> | Decrease Size | Decrease via/pad/text size | / | ✔ |
> | Increase Drill | Increase via/pad/hole drill diameter | Home | ✔ |
> | Decrease Drill | Decrease via/pad/hole drill diameter | End | ✔ |
> | Toggle Fill | Toggle the fill property state | F | ✔ |
> | Toggle Auto-Width | Toggle the auto-width property state | . | ✔ |
> | Toggle Grab Area | Toggle the grab area property state | , | ✔ |
> | Align Left | Horizontal alignment: Left | 1 | ✔ |
> | Align Center | Horizontal alignment: Center | 2 | ✔ |
> | Align Right | Horizontal alignment: Right | 3 | ✔ |
> | Align Bottom | Vertical alignment: Bottom | 4 | ✔ |
> | Align Center | Vertical alignment: Center | 5 | ✔ |
> | Align Top | Vertical alignment: Top | 6 | ✔ |
> | Horizontal - Vertical | Wire mode: First horizontal, then vertical | 1 | ✔ |
> | Vertical - Horizontal | Wire mode: First vertical, then horizontal | 2 | ✔ |
> | 90° - 45° | Wire mode: First 90°, then 45° | 3 | ✔ |
> | 45° - 90° | Wire mode: First 45°, then 90° | 4 | ✔ |
> | Straight | Wire mode: Straight line | 5 | ✔ |
> | Round | Shape: Round | 7 | ✔ |
> | Rectangular | Shape: Rectangular | 8 | ✔ |
> | Octagonal | Shape: Octagonal | 9 | ✔ |
> | | | | |
> | _ **Components** _ | | | |
> | Resistor | Add standard component: Resistor | | ✔ |
> | Inductor | Add standard component: Inductor | | ✔ |
> | Bipolar Capacitor | Add standard component: Bipolar capacitor | | ✔ |
> | Unipolar Capacitor | Add standard component: Unipolar capacitor | | ✔ |
> | GND Supply | Add standard component: GND supply | | ✔ |
> | VCC Supply | Add standard component: VCC supply | | ✔ |
> | | | | |
> | _ **Docks** _ | | | |
> | Pages | Go to the pages dock | Ctrl+Alt+G | ✔ |
> | Electrical Rule Check | Go to ERC messages dock | Ctrl+Alt+E | ✔ |
> | Design Rule Check | Go to DRC messages dock | Ctrl+Alt+D | ✔ |
> | Layers | Go to the layers dock | Ctrl+Alt+L | ✔ |
> | Place Devices | Go to the dock for placing devices | Ctrl+Alt+P | ✔ |
> | | | | |
> | _ **Window Management** _ | | | |
> | Next Tab/Page | Navigate to the next tab or page | Ctrl+Tab | ✔ |
> | Previous Tab/Page | Navigate to the previous tab or page | Ctrl+Shift+Tab | ✔ |
> | Close Tab | Close the currently opened tab | Ctrl+W | ✔ |
> | Close All Tabs | Close all currently opened tabs | Ctrl+Shift+W | ✔ |
> | Close Window | Close this window | Alt+F4 | ✔ |
> | Close Project | Close the currently opened project | Ctrl+F4 | ✔ |
> | Close All Projects | Close all opened projects | Ctrl+Shift+F4 | ✔ |
> | Quit | Close the whole application | Ctrl+Q | ✔ |
> | | | | |
> | _ **Help** _ | | | |
> | About LibrePCB | Show information about the application | | ✔ |
> | About Qt | Show information about Qt | | ✔ |
> | LibrePCB Website | Open LibrePCB website in web browser | | ✔ |
> | Online Documentation | Open documentation in web browser | F1 | ✔ |

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [June 6, 2022, 8:33pm UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/23 "2022-06-06T20:33:09Z")

</div>

For the record, the pull request to implement these shortcuts is now open:

> <https://github.com/LibrePCB/LibrePCB/pull/986>
>
> This is the first step needed to make keyboard shortcuts configurable. I'll open… a separate PR later to make them configurable, but the heavy work is already contained in this PR.
> 
> Check out \[this forum post\](https://librepcb.discourse.group/t/hotkeys-anyone/229/22) to see which shortcuts will be added with this PR. There are still some open points, thus only a draft PR so far.
> 
> \### Add class \`EditorCommandSet\` containing all commands
> 
> \- Ensure consistent icons and texts for menu/toolbar actions across the whole application
> \- Get rid of all duplicated text strings for menu/toolbar actions to reduce the number of strings to translate (reducing effort)
> \- Assign many more keyboard shortcuts to the actions of all editors
> \- Allows to make keyboard shortcuts configurable (implemented in a later commit)
> 
> \### Add helper class \`MenuBuilder\` for building \`QMenu\`
> 
> \- Get rid of duplicate menu translation strings across all editors
> 
> \### Refactor menus, toolbars and shortcuts in all editors
> 
> \- Create all \`QAction\` objects through \`EditorCommandSet\`, not using the UI designer anymore for this
> \- Create all \`QMenu\` objects through \`MenuBuilder\`, not using the UI designer anymore for this
> \- Create all toolbars manually by code, not using the UI designer anymore for this
> \- Add many more actions (incl. shortcuts) to menus and some more to toolbars
> \- Add many additional shortcuts in library-, schematic- and board editor tools
> \- In the library editor, dynamically disable all actions in menus and toolbars when not available in the current editor state
> \- Fix several minor UI issues
> 
> \### Disable inserting tabulator in all text input fields
> 
> To allow keyboard navigation with "tab", even if the focus is in a text input field.
> 
> \### Use tabulator key to move focus into command toolbar
> 
> Instead of (partially) moving the focus automatically into the command toolbar (e.g. when adding a component to the schematic), the focus always stays in the graphics view. But the tabulator key now moves the focus into the command toolbar in any tool.
> 
> Reason: Having the focus in the toolbar sometimes breaks keyboard shortcuts (e.g. 'R' for rotate) because some toolbar widgets contain text input fields which consume these shortcuts - therefore this shouldn't happen automatically.
> 
> Downside is that in some tools the user now has to press 'tab' manually to start editing for example the value of a text label, but at least this concept is now consistent across all tools.

---

<div class="post-metadata">

**Author:** ![Doom](https://avatars.discourse-cdn.com/v4/letter/d/a587f6/32.png) [@Doom](https://librepcb.discourse.group/u/Doom)\
**Post date:** [June 6, 2022, 10:03pm UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/24 "2022-06-06T22:03:21Z")

</div>

Thanks for this new feature.

Just, I want to remind that in human machine interface, most done actions should have easiest ways to do it.  
For example, when moving the mouse, the 4 corners of the screen is the 4 fastest points to reach. So you put main actions there.

For shortcuts, big touches are the best for HMI i.e. space, tab, enter and backspace.  
It’s why I suggested above to use ‘space’ as rotate shortcut key as is might be the most done action.

Nevertheless I will be able to set it when keys will be configurable, but it will be better for everyone if it was the ‘official’ key.

---

<div class="post-metadata">

**Author:** ![Doom](https://avatars.discourse-cdn.com/v4/letter/d/a587f6/32.png) [@Doom](https://librepcb.discourse.group/u/Doom)\
**Post date:** [June 6, 2022, 10:08pm UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/25 "2022-06-06T22:08:11Z")

</div>

And also, it would be great if short-keys depends on the context as it will be possible to reuse these keys (and other natural keys).

But it might be not really easy to avoid conflicts.

---

<div class="post-metadata">

**Author:** ![parenthetical](https://avatars.discourse-cdn.com/v4/letter/p/839c29/32.png) [@parenthetical](https://librepcb.discourse.group/u/parenthetical)\
**Post date:** [June 8, 2022, 1:46pm UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/26 "2022-06-08T13:46:27Z")

</div>

I think increase/decrease grid interval should be single key hotkeys, but view grid properties could be a ctl modified key. Increase/decrease will get used many times as often.

Other grid related features I would find really useful that would also need hotkeys are:

- crosshairs (on nearest grid line to mouse) with toggle on/off hotkey
- nudge selected items one grid space - use arrow keys?

In general I think file management and preference type options don’t need single key hotkeys as they aren’t done so often or repeatedly, but adjusting items in the schematic and board editors do benefit from single key hotkeys.

to conserve keys some items with only a few options could be on a single hotkey that cycles through the options, eg wire mode, there are 4 options, one key that advances through them would do, as it is very quick to press the same key repeatedly.

Personally I don’t find the “Add standard component” features useful at all, I am always placing specific devices from the menu.

Could keys be conserved by making “increase/decrease size of selected item” a function? with one pair of keys that can then be applied to traces, vias, holes, circles etc depending on what is selected.

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [June 10, 2022, 8:53am UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/27 "2022-06-10T08:53:51Z")

</div>

> [@Doom](#):
>
> For shortcuts, big touches are the best for HMI i.e. space, tab, enter and backspace.  
> It’s why I suggested above to use ‘space’ as rotate shortcut key as is might be the most done action.

Generally I agree, but somehow I think ‘r’ for rotate is more intuitive and also consistent with ‘m’ for mirror and ‘f’ for flip. In addition, space might be a good first key if we decide to add key-sequence shortcuts, i.e. any sequence could start with space to avoid conflicts (but of course it makes the sequences longer, I’m not sure if that’s acceptable). Anyway, I’d like to keep space unused for now - we could still add it as a secondary shortcut for rotate some day later.

> [@Doom](#):
>
> And also, it would be great if short-keys depends on the context as it will be possible to reuse these keys (and other natural keys).

Technically this is already the case, but unfortunately this is not visible in the shortcut editor. For example the shortcut ‘n’ is used several different things, but each time in a different context: “Add Name” (library editor), “Add Net Label” (schematic editor) and “Draw Plane” (board editor). I’m not fully happy with it, but so far I don’t have a better idea.

> [@parenthetical](#):
>
> I think increase/decrease grid interval should be single key hotkeys, but view grid properties could be a ctl modified key. Increase/decrease will get used many times as often.

Hmm I’m not sure about that… 🤔

> [@parenthetical](#):
>
> crosshairs (on nearest grid line to mouse) with toggle on/off hotkey

Good idea, but the crosshairs feature would be a totally new feature, thus I won’t include it in this shortcuts feature yet.

> [@parenthetical](#):
>
> nudge selected items one grid space - use arrow keys?

Good point as well, I’ll check that 👍

> [@parenthetical](#):
>
> to conserve keys some items with only a few options could be on a single hotkey that cycles through the options, eg wire mode, there are 4 options, one key that advances through them would do, as it is very quick to press the same key repeatedly.

Hmm yeah sounds reasonable as well!

> [@parenthetical](#):
>
> Personally I don’t find the “Add standard component” features useful at all, I am always placing specific devices from the menu.

To be honest, I don’t like the current implementation as well, it is “too hardcoded”. I am thinking more about a more customizable way, or maybe even just a quick access to the recently placed components. Thus maybe it is good anyway to don’t assign keyboard shortcuts to these actions now as they might be removed anyway some day.

> [@parenthetical](#):
>
> Could keys be conserved by making “increase/decrease size of selected item” a function? with one pair of keys that can then be applied to traces, vias, holes, circles etc depending on what is selected.

I also thought about that, but for example in the “draw trace” tool there are three different sizes configurable at the same time: trace width, via outer size, via drill diameter - thus for now I left these shortcuts separate.

---

<div class="post-metadata">

**Author:** ![parenthetical](https://avatars.discourse-cdn.com/v4/letter/p/839c29/32.png) [@parenthetical](https://librepcb.discourse.group/u/parenthetical)\
**Post date:** [June 10, 2022, 12:58pm UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/28 "2022-06-10T12:58:10Z")

</div>

> [@ubruhin](#):
>
> > [@parenthetical](#):
> >
> > I think increase/decrease grid interval should be single key hotkeys, but view grid properties could be a ctl modified key. Increase/decrease will get used many times as often.
> 
> Hmm I’m not sure about that… 🤔

Is there a feature of the grid that you would want to change more often than size? I can sort of understand needing to change between imperial and metric if you have a mix of components, but still not as often as size.

> [@ubruhin](#):
>
> > [@parenthetical](#):
> >
> > crosshairs (on nearest grid line to mouse) with toggle on/off hotkey
> 
> Good idea, but the crosshairs feature would be a totally new feature, thus I won’t include it in this shortcuts feature yet.

Yes it’s a new feature. Crosshairs should be a really easy feature to add though - as it is purely a visual aid it wouldn’t actually DO anything, so no complex interactions to deal with. So I am hoping it might happen soon. (Of course it would be nice to have the ability to change the colour and line style for the crosshairs, but I wouldn’t want to see that delay a basic implementation.)

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [June 12, 2022, 6:43pm UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/29 "2022-06-12T18:43:47Z")

</div>

I reworked some shortcuts and updated the list in the [post above](https://librepcb.discourse.group/t/hotkeys-anyone/229/22). I think it should be complete now - if there are no objections, I’ll merge the opened PR soon to add all these shortcuts.

> [@parenthetical](#):
>
> > [@ubruhin](#):
> >
> > > [@parenthetical](#):
> > >
> > > I think increase/decrease grid interval should be single key hotkeys, but view grid properties could be a ctl modified key. Increase/decrease will get used many times as often.
> > 
> > Hmm I’m not sure about that… 🤔
> 
> Is there a feature of the grid that you would want to change more often than size?

I don’t understand how this question is related to whether grid increase/decrease should be a single key shortcut - maybe we are talking about different things. The grid unit has no shortcut at all, there are only shortcuts to increase/decrease the grid interval, and one shortcut to open the grid properties.

---

<div class="post-metadata">

**Author:** ![parenthetical](https://avatars.discourse-cdn.com/v4/letter/p/839c29/32.png) [@parenthetical](https://librepcb.discourse.group/u/parenthetical)\
**Post date:** [June 12, 2022, 9:21pm UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/30 "2022-06-12T21:21:10Z")

</div>

> [@ubruhin](#):
>
> I don’t understand how this question is related to whether grid increase/decrease should be a single key shortcut - maybe we are talking about different things. The grid unit has no shortcut at all, there are only shortcuts to increase/decrease the grid interval, and one shortcut to open the grid properties.

Possible single key shortcuts are more limted in number. So only the most used functions should be single key, and the less used functions should be modifier key shortcuts.

I was contending that change grid size would get used a lot so should be single key, wheras, if the change size shortcut exists then the grid properties dialog doen’t need to be opened very often so does not need to be single key. But it is listed as 3 key for change size and single key for the open dialog. So that’s the wrong way round for the way I would use it.

There’s quite a few other single key shortcuts there that I would rarely use and would be quite happy if they used modifier keys.

However I’m sure everyone uses the application differently - so it’s hard to tell what would suit the most people, which is why you are planning to add customisation - so in the long run i guess it doesn’t matter!

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [June 14, 2022, 8:46pm UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/31 "2022-06-14T20:46:54Z")

</div>

@parenthetical I see your point - IMHO the current grid increase/decrease shortcuts are easier to memorize since they are very similar to zoom in/out. I think I’ll leave it this way unless more users think it should be changed.

Anyway, I am now even implementing a keyboard shortcut reference PDF export to allow printing or viewing the configured shortcuts in a neat overview. Here’s the current state:

 ![image](https://global.discourse-cdn.com/free1/uploads/librepcb1/original/1X/65b75f81f9b1340862e5a7ad8aef017c7edbe2cc.png)

---

<div class="post-metadata">

**Author:** ![dbrgn](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/dbrgn/32/25_2.png) [@dbrgn](https://librepcb.discourse.group/u/dbrgn)\
**Post date:** [June 17, 2022, 6:28am UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/32 "2022-06-17T06:28:34Z")

</div>

That reference PDF is awesome 🙂

---

<div class="post-metadata">

**Author:** ![dbrgn](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/dbrgn/32/25_2.png) [@dbrgn](https://librepcb.discourse.group/u/dbrgn)\
**Post date:** [June 17, 2022, 6:40am UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/33 "2022-06-17T06:40:37Z")

</div>

I’m a bit late (didn’t see this discussion before), but some thoughts:

- The “Add Pin” functionality will probably be used more often than “Add Polygon”. So maybe the pin should be “P” and the polygon “Y”?
- For adding components, maybe we should use prefixed sequences? For example “Q R” for resistor, “Q I” for inductor, “Q B” for bipolar capacitor, “Q U” for unipolar capacitor, “Q G” for GND and “Q V” for VCC?

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [June 17, 2022, 8:40am UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/34 "2022-06-17T08:40:50Z")

</div>

> [@dbrgn](#):
>
> I’m a bit late

Too late, PR is merged 🙈

I’m not sure how we should proceed with the shortcuts now. Maybe just collecting any further change requests here in this thread and then (if needed) make a PR before creating the next release…

> [@dbrgn](#):
>
> For adding components, maybe we should use prefixed sequences?

As I wrote in a post above, I want to change the concept of the hardcoded components toolbar anyway and thus didn’t assign shortcuts for now. But if the new concept is not ready for the next release, maybe we should still add (temporary) shortcuts 🤔

---

<div class="post-metadata">

**Author:** ![dbrgn](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/dbrgn/32/25_2.png) [@dbrgn](https://librepcb.discourse.group/u/dbrgn)\
**Post date:** [June 17, 2022, 1:00pm UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/35 "2022-06-17T13:00:17Z")

</div>

> [@ubruhin](#):
>
> I’m not sure how we should proceed with the shortcuts now. Maybe just collecting any further change requests here in this thread and then (if needed) make a PR before creating the next release…

Yeah, that makes sense. I’ll try to test the development version sometime to see whether the current shortcuts make sense. Other people are welcome to test as well!

---

<div class="post-metadata">

**Author:** ![Old](https://avatars.discourse-cdn.com/v4/letter/o/c89c15/32.png) [@Old](https://librepcb.discourse.group/u/Old)\
**Post date:** [June 14, 2024, 11:50am UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/36 "2024-06-14T11:50:44Z")

</div>

Sorry, if possible, please add option to change mouse settings.  
For example, when installing components into a sch, the right mouse button cancels the operation = ESC

---

<div class="post-metadata">

**Author:** ![dam](https://avatars.discourse-cdn.com/v4/letter/d/f04885/32.png) [@dam](https://librepcb.discourse.group/u/dam)\
**Post date:** [July 10, 2024, 7:17am UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/37 "2024-07-10T07:17:19Z")

</div>

> [@ubruhin](#):
>
> I noticed that single-character shortcuts (e.g. “R” for rotate) are currently a problem when adding new components, since the focus is in the “value” input field in the toolbar

You could remove the focus on the value input field after entering the value (value+enter). Putting the focus on the value input field could also be an option (when placing, after placing, off).

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [July 10, 2024, 8:20pm UTC](https://librepcb.discourse.group/t/hotkeys-anyone/229/38 "2024-07-10T20:20:01Z")

</div>

> [@dam](#):
>
> You could remove the focus on the value input field after entering the value (value+enter). Putting the focus on the value input field could also be an option (when placing, after placing, off).

Hmm yeah that would be possible, but the “problem” is now much smaller anyway because in the latest release the focus is not moved to the input field anymore when adding components - one has to press tabulator to get the focus there, and can also be used to move focus back to the schematic.

[Previous page](https://librepcb.discourse.group/t/hotkeys-anyone/229.md?page=1)
