Summary
Rework the IDE's platform-level (system) keyboard shortcuts so the "get out"
keys follow familiar console conventions, an accidental extra modifier can't
misfire a system chord, and exiting the whole IDE is a single deliberate
action. Editor-internal shortcuts are out of scope here.
Motivation
The current system chords overload keys with meanings that fight muscle
memory, and some can fire when extra modifiers are held:
Ctrl+S currently stops a running program (returns to the console).
Everywhere else Ctrl+S means "save," so using it to stop/exit surprises
anyone with desktop habits. Moreover, we're teaching the kids wrong
conventions they'll have to relearn when moving on to PCs.
- Exiting the whole IDE is context-dependent today (
Ctrl+Esc behaves
differently inside a program vs. at the console), so "how do I fully exit"
has no single answer. Ctrl+Esc duplicates another shortcut (currently,
Ctrl+S).
- System chords can be triggered by a superset combo (e.g.
Ctrl+Shift+Esc
firing the Ctrl+Esc action), which makes fumbles hazardous.
The audience is children, so the system-chord set should be small,
predictable, convention-aligned, and hard to trigger destructively by accident.
Proposed changes
1. Stop the running program: Ctrl+S → Ctrl+D
Ctrl+D is the console EOF / "I'm done" convention for leaving an interactive
session. Rebind the existing "stop the running program, return to the console"
action from Ctrl+S to Ctrl+D. Ctrl+C (the other console convention)
stays as copy. Ctrl+S is left with no system binding.
2. Exit the whole IDE: Ctrl+Alt+Esc, always
Make "exit the whole IDE" a single, context-independent action bound to
Ctrl+Alt+Esc — it exits from inside a running program and from the console
alike. Ctrl+Alt+* is the adult/teacher-oriented modifier family, so a
destructive whole-IDE exit sits behind a deliberate 3-key combo a child won't
hit by accident. Bare Ctrl+Esc becomes unbound.
3. Strict modifier matching for system chords
A system shortcut fires only when the pressed modifier set matches exactly.
Extra held modifiers suppress it — e.g. Ctrl+Alt+Shift+Esc must not still
fire the Ctrl+Alt+Esc exit, and no superset combo triggers a subset chord.
4. Drop "duplicate line"
Remove the Ctrl+D "duplicate current line" action in the input strip.
Select + copy + paste already covers it; removing it simplifies the input
layer and frees Ctrl+D for the stop-program role above.
Resulting system-chord map
| Key |
Action |
Ctrl+C |
copy |
Ctrl+D |
stop running program → console |
Ctrl+Q |
quit project |
Ctrl+Alt+Esc |
exit the whole IDE (from anywhere) |
Ctrl+Esc |
(unbound) |
Ctrl+S |
(unbound) |
Notes
- Editor-internal shortcuts (in-editor navigation, checkpoint/restore, leaving
the editor) are handled separately and are out of scope for this issue.
Summary
Rework the IDE's platform-level (system) keyboard shortcuts so the "get out"
keys follow familiar console conventions, an accidental extra modifier can't
misfire a system chord, and exiting the whole IDE is a single deliberate
action. Editor-internal shortcuts are out of scope here.
Motivation
The current system chords overload keys with meanings that fight muscle
memory, and some can fire when extra modifiers are held:
Ctrl+Scurrently stops a running program (returns to the console).Everywhere else
Ctrl+Smeans "save," so using it to stop/exit surprisesanyone with desktop habits. Moreover, we're teaching the kids wrong
conventions they'll have to relearn when moving on to PCs.
Ctrl+Escbehavesdifferently inside a program vs. at the console), so "how do I fully exit"
has no single answer.
Ctrl+Escduplicates another shortcut (currently,Ctrl+S).Ctrl+Shift+Escfiring the
Ctrl+Escaction), which makes fumbles hazardous.The audience is children, so the system-chord set should be small,
predictable, convention-aligned, and hard to trigger destructively by accident.
Proposed changes
1. Stop the running program:
Ctrl+S→Ctrl+DCtrl+Dis the console EOF / "I'm done" convention for leaving an interactivesession. Rebind the existing "stop the running program, return to the console"
action from
Ctrl+StoCtrl+D.Ctrl+C(the other console convention)stays as copy.
Ctrl+Sis left with no system binding.2. Exit the whole IDE:
Ctrl+Alt+Esc, alwaysMake "exit the whole IDE" a single, context-independent action bound to
Ctrl+Alt+Esc— it exits from inside a running program and from the consolealike.
Ctrl+Alt+*is the adult/teacher-oriented modifier family, so adestructive whole-IDE exit sits behind a deliberate 3-key combo a child won't
hit by accident. Bare
Ctrl+Escbecomes unbound.3. Strict modifier matching for system chords
A system shortcut fires only when the pressed modifier set matches exactly.
Extra held modifiers suppress it — e.g.
Ctrl+Alt+Shift+Escmust not stillfire the
Ctrl+Alt+Escexit, and no superset combo triggers a subset chord.4. Drop "duplicate line"
Remove the
Ctrl+D"duplicate current line" action in the input strip.Select + copy + paste already covers it; removing it simplifies the input
layer and frees
Ctrl+Dfor the stop-program role above.Resulting system-chord map
Ctrl+CCtrl+DCtrl+QCtrl+Alt+EscCtrl+EscCtrl+SNotes
the editor) are handled separately and are out of scope for this issue.