Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add hotkeys for the editor's bottom panels [output, debugger, search results, audio, animation] #380

Closed
laubblaeser opened this issue Jan 13, 2020 · 15 comments · Fixed by godotengine/godot#88081
Milestone

Comments

@laubblaeser
Copy link

Describe the project you are working on:

Recently started out so I don't have a project that directly relates to my proposal. In using the Godot editor, often times the output window opens automatically and has to be closed with a mouse click. This could be done quicker with the press of a hotkey. Same applies for the debugger which is needed often to view hints/error messages. A quick "open, read and close" cycle could be done with keyboard via hotkeys for it.

Describe the problem or limitation you are having in your project:

I often find myself in the position to have to switch between keyboard and mouse controls. This workflow for coding/testing could be smoothened by introducing keyboard hotkeys.

Describe how this feature / enhancement will help you overcome this problem or limitation:

Faster access to opening and closing the respective panels without having to grab the mouse.

Show a mock up screenshots/video or a flow diagram explaining how your proposal will work:

In my humble opinion, a mocked up screenshot would not be very helpful to better understand my proposal.

Describe implementation detail for your proposal (in code), if possible:

Set hotkeys "Alt + [1, 2, 3, 4, 5]" as default for opening/closing [output, debugger, search results, audio, animation]. These key combinations are easily accessible with one hand.

If this enhancement will not be used often, can it be worked around with a few lines of script?:

I do not know if others would be interested in this as well. Personally I could see myself using the feature quite often. Thus I also cannot tell if a few lines of script might fix the problem because I cannot code in C++ and don't know the inner workings of the editor.

Is there a reason why this should be core and not an add-on in the asset library?:

It covers core features of the engine which are used very frequently. An add-on might fix the issue but the proposal is to include it as a core feature for reasons of fundamentality.

@Calinou Calinou changed the title Add hotkeys for [output, debugger, search results, audio, animation] Add hotkeys for the editor's bottom panels [output, debugger, search results, audio, animation] Oct 5, 2020
@Calinou
Copy link
Member

Calinou commented Oct 5, 2020

Set hotkeys "Alt + [1, 2, 3, 4, 5]" as default for opening/closing [output, debugger, search results, audio, animation]. These key combinations are easily accessible with one hand.

These shortcuts are currently unused, but they unfortunately won't work out of the box on non-QWERTY keyboard layouts until Godot 4.0 where physical key actions are supported.

Also, keep in mind that depending on the currently selected node, a 6th bottom panel may appear.

@passivestar
Copy link

Struggling with this too, every time the output panel pops out I have to click the thing. Would be great to at least be able to toggle the whole bottom panel with a shortcut, if not individual tabs

Also a related video: distraction-free mode doesn't affect the bottom panel, and the bottom panel is... well... distracting 😅

distrationfreemode.mp4

@passivestar
Copy link

And it looks like it opens every single time I run my game, even if there are no errors? So every time I run the game I have to manually close it afterwards 🤔

@AThousandShips
Copy link
Member

AThousandShips commented Nov 23, 2023

Yes, control it with run/output/always_open_output_on_play and run/output/always_close_output_on_stop, always a good idea to go looking in the settings if something isn't working the way you like it, chances are there's a setting 🙂

@passivestar
Copy link

@AThousandShips I just tried it and it still opened it. The debugger tab. But it only has warnings about stuff that I don't care about, like unused parameters or whatnot. Maybe there could be more control there, like Open [Always/Only On Errors/Errors And Warnings/Never]?

image

@AThousandShips
Copy link
Member

AThousandShips commented Nov 23, 2023

Okay, you said the output panel so that's why I assumed you meant it, unsure about that one

The code does show it opens one or the other on running, I'd suggest opening a proposal to change that if you want that 🙂 (as it's out of scope for this proposal)

@Kylemcarthur

This comment was marked as off-topic.

@Calinou
Copy link
Member

Calinou commented Feb 7, 2024

Should the shortcut key be set based on the button's position, or the button's function?

In other words, should we use number keys for shortcuts to refer to the button's order (e.g. 3rd item in list is always Alt + 3, regardless of what item it actually is)? Or should each item be assigned its own key with its own shortcut, so it works even if it's been reordered for some reason?

I would prefer something that works based on function, so it doesn't break your muscle memory if you reorder bottom panel items (something an add-on could be doing).

@viksl
Copy link

viksl commented Feb 7, 2024

I'd prefer, if there's a way to identify the panel, to have shortcuts based on which panel it is (Output/FileSystem/...), with ordered approach couldn't it end up with impossible shortcuts if someone added couple plugins which would all end up in the bottome panel (such as "alt + 12")?

Calinou: Thanks for close the other, I searched but did not notice this, my bad and thanks again :-) !).

Secondly if you don't mind, how un/realistic this is with current implementation/plans? Since a function to open these is already in would this fit into some more beginner friendly PR or do you think this is more involved toget working (I remember there's some docker rework ongoing?)?

@Calinou
Copy link
Member

Calinou commented Feb 7, 2024

Secondly if you don't mind, how un/realistic this is with current implementation/plans?

This turned out to be straightforward to implement, at least with "fixed" shortcuts for each bottom panel: godotengine/godot#88081

Editor plugins can specify their own shortcuts too.

@passivestar Maybe you'd like to give the above PR a try 🙂

@passivestar
Copy link

@Calinou I think it might be more practical to put the hotkeys for the regular buttons onto the top row in order of appearance:

Alt+Q - Output
Alt+W - Debugger
Alt+E - Audio
Alt+R - Animation
Alt+T - Shader Editor
etc

Because the most used one is going to be the Output, and Alt+O is practically unreachable without lifting the right hand from the mouse. I'd be remapping that first if it was on Alt+O

I understand why you want to make them all match the words, but there's a reason the default shortcut for Undo is Ctrl+Z and not Ctrl+U 🙂

So some compromises probably have to be made

@passivestar
Copy link

Maybe you'd like to give the above PR a try 🙂

Will definitely try it out when it builds 🙂

@viksl
Copy link

viksl commented Feb 8, 2024

One thing to check is how it interacts with pinned state which I think currently the Animation has.

@Cammymoop
Copy link

Cammymoop commented Feb 16, 2024

Please include a shortcut for hiding the panel regardless of which one is open. A shortcut that toggles the last open panel would be ideal imo.

@Calinou
Copy link
Member

Calinou commented Feb 16, 2024

Please include a shortcut for hiding the panel regardless of which one is open. A shortcut that toggles the last open panel would be ideal imo.

I just implemented this: godotengine/godot#88081 (comment)

@akien-mga akien-mga added this to the 4.3 milestone Mar 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants