| 154 | } |
| 155 | |
| 156 | fn register_defaults(&mut self) { |
| 157 | self.register("app_exit", Keybind::ctrl(KeyCode::Char('c'))); |
| 158 | self.register("app_exit_alt", Keybind::key(KeyCode::Esc)); |
| 159 | |
| 160 | self.register("input_submit", Keybind::key(KeyCode::Enter)); |
| 161 | self.register("input_newline", Keybind::alt(KeyCode::Enter)); |
| 162 | self.register("input_clear", Keybind::ctrl(KeyCode::Char('u'))); |
| 163 | self.register("input_paste", Keybind::ctrl(KeyCode::Char('v'))); |
| 164 | self.register("input_copy", Keybind::ctrl_shift(KeyCode::Char('c'))); |
| 165 | self.register("input_cut", Keybind::ctrl_shift(KeyCode::Char('x'))); |
| 166 | |
| 167 | self.register("history_previous", Keybind::alt(KeyCode::Up)); |
| 168 | self.register("history_next", Keybind::alt(KeyCode::Down)); |
| 169 | |
| 170 | self.register("command_list", Keybind::ctrl(KeyCode::Char('x'))); |
| 171 | self.register("command_palette", Keybind::ctrl(KeyCode::Char('p'))); |
| 172 | |
| 173 | self.register("agent_cycle", Keybind::key(KeyCode::Tab)); |
| 174 | self.register("agent_cycle_reverse", Keybind::key(KeyCode::BackTab)); |
| 175 | self.register("model_cycle", Keybind::ctrl(KeyCode::Char('m'))); |
| 176 | self.register("variant_cycle", Keybind::ctrl(KeyCode::Char('v'))); |
| 177 | |
| 178 | self.register("session_parent", Keybind::ctrl(KeyCode::Char('o'))); |
| 179 | self.register("session_child_cycle", Keybind::ctrl(KeyCode::Char('j'))); |
| 180 | self.register( |
| 181 | "session_child_cycle_reverse", |
| 182 | Keybind::ctrl(KeyCode::Char('k')), |
| 183 | ); |
| 184 | self.register("session_rename", Keybind::ctrl(KeyCode::Char('r'))); |
| 185 | self.register("session_delete", Keybind::ctrl(KeyCode::Char('d'))); |
| 186 | self.register("session_interrupt", Keybind::key(KeyCode::Esc)); |
| 187 | |
| 188 | self.register("sidebar_toggle", Keybind::ctrl(KeyCode::Char('s'))); |
| 189 | self.register("help_toggle", Keybind::ctrl(KeyCode::Char('h'))); |
| 190 | |
| 191 | self.register("editor_open", Keybind::ctrl(KeyCode::Char('e'))); |
| 192 | |
| 193 | self.register("cursor_up", Keybind::key(KeyCode::Up)); |
| 194 | self.register("cursor_down", Keybind::key(KeyCode::Down)); |
| 195 | self.register("cursor_left", Keybind::key(KeyCode::Left)); |
| 196 | self.register("cursor_right", Keybind::key(KeyCode::Right)); |
| 197 | |
| 198 | self.register("page_up", Keybind::key(KeyCode::PageUp)); |
| 199 | self.register("page_down", Keybind::key(KeyCode::PageDown)); |
| 200 | self.register("home", Keybind::key(KeyCode::Home)); |
| 201 | self.register("end", Keybind::key(KeyCode::End)); |
| 202 | } |
| 203 | |
| 204 | pub fn register(&mut self, name: &str, keybind: Keybind) { |
| 205 | self.bindings.insert(name.to_string(), keybind); |