diff --git a/docs/Config.md b/docs/Config.md index 8fd1fd960..d3e86873d 100644 --- a/docs/Config.md +++ b/docs/Config.md @@ -476,6 +476,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 9064303e2..3b28e3e5c 100644 --- a/pkg/config/user_config.go +++ b/pkg/config/user_config.go @@ -374,6 +374,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 4337a1e4b..96a333c26 100644 --- a/pkg/gui/controllers/commit_description_controller.go +++ b/pkg/gui/controllers/commit_description_controller.go @@ -34,6 +34,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 6bfff6b98..fd33158a1 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 2d7f796a5..6c3eeeb55 100644 --- a/pkg/gui/controllers/global_controller.go +++ b/pkg/gui/controllers/global_controller.go @@ -121,6 +121,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 8baf9104e..fbb99eea1 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 28cf1bab4..2e6e836a8 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 014b8d7b7..1bd0306e9 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 a2a2030b7..05bc82ff1 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 93696a6ec..34297d8b2 100644 --- a/pkg/gui/controllers/staging_controller.go +++ b/pkg/gui/controllers/staging_controller.go @@ -72,6 +72,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 4737bdec8..cfae92fcf 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,