Feature: disable default keybinds when in alternate screen mode #9902
Replies: 2 comments
-
|
This would be really good. Flow (the editor) breaks with each new Ghossty release because basic features are hidden by new default keybinds in Ghostty. |
Beta Was this translation helpful? Give feedback.
-
|
This seems similar to previous requests on disabling specific keybinds when in specific applications (ex: neovim) which has always been deferred to #2353 where during the tui configuration you will disable keybinds then re-enable on the tui exit using some form of programmatic control
Im not sure I see this point, its then up to the tui to use more "traditional" keybinds which many don't offer oob anyways because everyone is so attached to everything needing vim keybinds. I also think that many actions in many applications don't have a "traditional" equivalent a simple example is entering different modes for modal editors
extremely unlikely to happen the original goal of the configuration file from mitchell was to never support any sort of control flow like conditionals which is why there is unique syntax to circumvent some of that like optionals with |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Add a mechanism to disable default keybindings when the terminal is in alternate screen mode. This would allow TUI applications (vim, neovim, helix, etc.) to receive keybinds that Ghostty normally intercepts.
Use Case
When building or using full-fledged TUI editors, users need keybinds like
cmd+a(select all) to be sent to the application rather than handled by Ghostty. Currently, Ghostty's defaultcmd+a=select_allbinding intercepts this even when running vim wherecmd+amight be mapped to a custom action.This is especially important for users who are not experienced with vim bindings and want to use familiar macOS keybinds within their TUI editor.
Proposed Solution
Add a new keybind trigger prefix (similar to
performable:,unconsumed:,global:,all:) that only activates when not in alternate screen mode. For example:Alternatively, a more general condition system:
Related
scroll_*bindings should respect "performable" and do nothing in alt screen #6765 - scroll_* bindings should respect "performable" in alt screen (similar concept, narrower scope)performable:prefix for keybind triggers to passthrough if they would do nothing #4328 - performable: prefix implementationAdditional Context
This would enable seamless keybind sharing between the terminal shell and TUI applications, making Ghostty more suitable as a primary environment for terminal-based development workflows.
Beta Was this translation helpful? Give feedback.
All reactions