diff --git a/docs/Config.md b/docs/Config.md index be579ae8b..be81b1307 100644 --- a/docs/Config.md +++ b/docs/Config.md @@ -449,6 +449,8 @@ keybinding: quit: q quit-alt1: return: + # When set to a printable character, this will work for returning from non-prompt panels + return-alt1: null quitWithoutChangingDirectory: Q togglePanel: prevItem: diff --git a/pkg/config/user_config.go b/pkg/config/user_config.go index d08e4fda4..739501efe 100644 --- a/pkg/config/user_config.go +++ b/pkg/config/user_config.go @@ -344,6 +344,7 @@ type KeybindingUniversalConfig struct { Quit string `yaml:"quit"` QuitAlt1 string `yaml:"quit-alt1"` Return string `yaml:"return"` + ReturnAlt1 string `yaml:"return-alt1"` QuitWithoutChangingDirectory string `yaml:"quitWithoutChangingDirectory"` TogglePanel string `yaml:"togglePanel"` PrevItem string `yaml:"prevItem"` diff --git a/pkg/gui/controllers/commit_description_controller.go b/pkg/gui/controllers/commit_description_controller.go index 80608fff5..c447f43e2 100644 --- a/pkg/gui/controllers/commit_description_controller.go +++ b/pkg/gui/controllers/commit_description_controller.go @@ -31,6 +31,10 @@ func (self *CommitDescriptionController) GetKeybindings(opts types.KeybindingsOp Key: opts.GetKey(opts.Config.Universal.Return), Handler: self.close, }, + { + Key: opts.GetKey(opts.Config.Universal.ReturnAlt1), + Handler: self.close, + }, { Key: opts.GetKey(opts.Config.Universal.ConfirmInEditor), Handler: self.confirm, diff --git a/pkg/gui/controllers/confirmation_controller.go b/pkg/gui/controllers/confirmation_controller.go index 45bd16a45..d580aed67 100644 --- a/pkg/gui/controllers/confirmation_controller.go +++ b/pkg/gui/controllers/confirmation_controller.go @@ -37,6 +37,10 @@ func (self *ConfirmationController) GetKeybindings(opts types.KeybindingsOpts) [ Description: self.c.Tr.CloseCancel, DisplayOnScreen: true, }, + { + Key: opts.GetKey(opts.Config.Universal.ReturnAlt1), + Handler: func() error { return self.context().State.OnClose() }, + }, { Key: opts.GetKey(opts.Config.Universal.TogglePanel), Handler: func() error { diff --git a/pkg/gui/controllers/global_controller.go b/pkg/gui/controllers/global_controller.go index 548c8461e..a58d6e18d 100644 --- a/pkg/gui/controllers/global_controller.go +++ b/pkg/gui/controllers/global_controller.go @@ -119,6 +119,11 @@ func (self *GlobalController) GetKeybindings(opts types.KeybindingsOpts) []*type Description: self.c.Tr.Cancel, DisplayOnScreen: true, }, + { + Key: opts.GetKey(opts.Config.Universal.ReturnAlt1), + Modifier: gocui.ModNone, + Handler: self.escape, + }, { Key: opts.GetKey(opts.Config.Universal.ToggleWhitespaceInDiffView), Handler: self.toggleWhitespace, diff --git a/pkg/gui/controllers/menu_controller.go b/pkg/gui/controllers/menu_controller.go index ddd0b2c18..7ddff1476 100644 --- a/pkg/gui/controllers/menu_controller.go +++ b/pkg/gui/controllers/menu_controller.go @@ -50,6 +50,10 @@ func (self *MenuController) GetKeybindings(opts types.KeybindingsOpts) []*types. Description: self.c.Tr.Close, DisplayOnScreen: true, }, + { + Key: opts.GetKey(opts.Config.Universal.ReturnAlt1), + Handler: self.close, + }, } return bindings diff --git a/pkg/gui/controllers/merge_conflicts_controller.go b/pkg/gui/controllers/merge_conflicts_controller.go index 1f22e62bc..a8220e9f4 100644 --- a/pkg/gui/controllers/merge_conflicts_controller.go +++ b/pkg/gui/controllers/merge_conflicts_controller.go @@ -123,6 +123,10 @@ func (self *MergeConflictsController) GetKeybindings(opts types.KeybindingsOpts) Handler: self.Escape, Description: self.c.Tr.ReturnToFilesPanel, }, + { + Key: opts.GetKey(opts.Config.Universal.ReturnAlt1), + Handler: self.Escape, + }, } return bindings diff --git a/pkg/gui/controllers/patch_building_controller.go b/pkg/gui/controllers/patch_building_controller.go index dbbdb8beb..5b712cca8 100644 --- a/pkg/gui/controllers/patch_building_controller.go +++ b/pkg/gui/controllers/patch_building_controller.go @@ -47,6 +47,10 @@ func (self *PatchBuildingController) GetKeybindings(opts types.KeybindingsOpts) Handler: self.Escape, Description: self.c.Tr.ExitCustomPatchBuilder, }, + { + Key: opts.GetKey(opts.Config.Universal.ReturnAlt1), + Handler: self.Escape, + }, } } diff --git a/pkg/gui/controllers/search_prompt_controller.go b/pkg/gui/controllers/search_prompt_controller.go index 65dd23383..7d34b9528 100644 --- a/pkg/gui/controllers/search_prompt_controller.go +++ b/pkg/gui/controllers/search_prompt_controller.go @@ -33,6 +33,11 @@ func (self *SearchPromptController) GetKeybindings(opts types.KeybindingsOpts) [ Modifier: gocui.ModNone, Handler: self.cancel, }, + { + Key: opts.GetKey(opts.Config.Universal.ReturnAlt1), + Modifier: gocui.ModNone, + Handler: self.cancel, + }, { Key: opts.GetKey(opts.Config.Universal.PrevItem), Modifier: gocui.ModNone, diff --git a/pkg/gui/controllers/snake_controller.go b/pkg/gui/controllers/snake_controller.go index b8e3327f7..60e8e3559 100644 --- a/pkg/gui/controllers/snake_controller.go +++ b/pkg/gui/controllers/snake_controller.go @@ -43,6 +43,10 @@ func (self *SnakeController) GetKeybindings(opts types.KeybindingsOpts) []*types Key: opts.GetKey(opts.Config.Universal.Return), Handler: self.Escape, }, + { + Key: opts.GetKey(opts.Config.Universal.ReturnAlt1), + Handler: self.Escape, + }, } return bindings diff --git a/pkg/gui/controllers/staging_controller.go b/pkg/gui/controllers/staging_controller.go index 8854aa239..0504744da 100644 --- a/pkg/gui/controllers/staging_controller.go +++ b/pkg/gui/controllers/staging_controller.go @@ -70,6 +70,10 @@ func (self *StagingController) GetKeybindings(opts types.KeybindingsOpts) []*typ Handler: self.Escape, Description: self.c.Tr.ReturnToFilesPanel, }, + { + Key: opts.GetKey(opts.Config.Universal.ReturnAlt1), + Handler: self.Escape, + }, { Key: opts.GetKey(opts.Config.Universal.TogglePanel), Handler: self.TogglePanel, diff --git a/pkg/gui/controllers/suggestions_controller.go b/pkg/gui/controllers/suggestions_controller.go index a425f356e..df0e2950e 100644 --- a/pkg/gui/controllers/suggestions_controller.go +++ b/pkg/gui/controllers/suggestions_controller.go @@ -39,6 +39,10 @@ func (self *SuggestionsController) GetKeybindings(opts types.KeybindingsOpts) [] Key: opts.GetKey(opts.Config.Universal.Return), Handler: func() error { return self.context().State.OnClose() }, }, + { + Key: opts.GetKey(opts.Config.Universal.ReturnAlt1), + Handler: func() error { return self.context().State.OnClose() }, + }, { Key: opts.GetKey(opts.Config.Universal.TogglePanel), Handler: self.switchToConfirmation,