diff --git a/internal/ui/dialog/commands.go b/internal/ui/dialog/commands.go index ad0eede97c1a17f3cd986da2520e03a8b52d76ee..b4c2606bfac3089adda8dd39a7161a7caa0e6ab7 100644 --- a/internal/ui/dialog/commands.go +++ b/internal/ui/dialog/commands.go @@ -522,7 +522,7 @@ func (c *Commands) defaultCommands() []*CommandItem { commands = append( commands, - NewCommandItem(c.com.Styles, "toggle_yolo", "Toggle Yolo Mode", "", ActionToggleYoloMode{}), + NewCommandItem(c.com.Styles, "toggle_yolo", "Toggle Yolo Mode", "ctrl+y", ActionToggleYoloMode{}), NewCommandItem(c.com.Styles, "toggle_help", "Toggle Help", "ctrl+g", ActionToggleHelp{}), NewCommandItem(c.com.Styles, "init", "Initialize Project", "", ActionInitializeProject{}), ) diff --git a/internal/ui/model/keys.go b/internal/ui/model/keys.go index f623a122a4aecf638c98a231d416781399ffd1a7..ebf377035ef11d6fa733ae1fbc1e0fb92123c9ae 100644 --- a/internal/ui/model/keys.go +++ b/internal/ui/model/keys.go @@ -57,13 +57,14 @@ type KeyMap struct { } // Global key maps - Quit key.Binding - Help key.Binding - Commands key.Binding - Models key.Binding - Suspend key.Binding - Sessions key.Binding - Tab key.Binding + Quit key.Binding + Help key.Binding + Commands key.Binding + Models key.Binding + Suspend key.Binding + Sessions key.Binding + Tab key.Binding + ToggleYolo key.Binding } func DefaultKeyMap() KeyMap { @@ -96,6 +97,10 @@ func DefaultKeyMap() KeyMap { key.WithKeys("tab"), key.WithHelp("tab", "change focus"), ), + ToggleYolo: key.NewBinding( + key.WithKeys("ctrl+y"), + key.WithHelp("ctrl+y", "toggle yolo"), + ), } km.Editor.AddFile = key.NewBinding( diff --git a/internal/ui/model/ui.go b/internal/ui/model/ui.go index 6ae48007848ea52f82eba8a0167f6ceb474ed92d..d5608141c19b80063c5beddfc9de8a3b9e13bbc0 100644 --- a/internal/ui/model/ui.go +++ b/internal/ui/model/ui.go @@ -1805,6 +1805,11 @@ func (m *UI) handleKeyPressMsg(msg tea.KeyPressMsg) tea.Cmd { } cmds = append(cmds, tea.Suspend) return true + case key.Matches(msg, m.keyMap.ToggleYolo): + yolo := !m.com.Workspace.PermissionSkipRequests() + m.com.Workspace.PermissionSetSkipRequests(yolo) + m.setEditorPrompt(yolo) + return true } return false } @@ -2410,6 +2415,7 @@ func (m *UI) FullHelp() [][]key.Binding { commands, k.Models, k.Sessions, + k.ToggleYolo, ) if hasSession { mainBinds = append(mainBinds, k.Chat.NewSession) @@ -2471,6 +2477,7 @@ func (m *UI) FullHelp() [][]key.Binding { commands, k.Models, k.Sessions, + k.ToggleYolo, }, ) editorBinds := []key.Binding{