ratatui_toolkit/primitives/termtui/keybindings/constructors/
default.rs

1//! Default implementation for TermTuiKeyBindings
2
3use crate::primitives::termtui::keybindings::TermTuiKeyBindings;
4use crossterm::event::{KeyCode, KeyEvent, KeyModifiers};
5
6impl Default for TermTuiKeyBindings {
7    fn default() -> Self {
8        Self {
9            enter_copy_mode: KeyEvent::new(KeyCode::Char('x'), KeyModifiers::CONTROL),
10            copy_selection: KeyEvent::new(
11                KeyCode::Char('C'),
12                KeyModifiers::CONTROL | KeyModifiers::SHIFT,
13            ),
14
15            // Copy mode defaults
16            copy_exit: KeyEvent::new(KeyCode::Esc, KeyModifiers::NONE),
17            copy_exit_alt: KeyEvent::new(KeyCode::Char('q'), KeyModifiers::NONE),
18            copy_move_up: KeyEvent::new(KeyCode::Char('k'), KeyModifiers::NONE),
19            copy_move_up_alt: KeyEvent::new(KeyCode::Up, KeyModifiers::NONE),
20            copy_move_down: KeyEvent::new(KeyCode::Char('j'), KeyModifiers::NONE),
21            copy_move_down_alt: KeyEvent::new(KeyCode::Down, KeyModifiers::NONE),
22            copy_move_left: KeyEvent::new(KeyCode::Char('h'), KeyModifiers::NONE),
23            copy_move_left_alt: KeyEvent::new(KeyCode::Left, KeyModifiers::NONE),
24            copy_move_right: KeyEvent::new(KeyCode::Char('l'), KeyModifiers::NONE),
25            copy_move_right_alt: KeyEvent::new(KeyCode::Right, KeyModifiers::NONE),
26            copy_line_start: KeyEvent::new(KeyCode::Char('0'), KeyModifiers::NONE),
27            copy_line_start_alt: KeyEvent::new(KeyCode::Home, KeyModifiers::NONE),
28            copy_line_end: KeyEvent::new(KeyCode::Char('$'), KeyModifiers::NONE),
29            copy_line_end_alt: KeyEvent::new(KeyCode::End, KeyModifiers::NONE),
30            copy_page_up: KeyEvent::new(KeyCode::Char('u'), KeyModifiers::NONE),
31            copy_page_up_alt: KeyEvent::new(KeyCode::PageUp, KeyModifiers::NONE),
32            copy_page_down: KeyEvent::new(KeyCode::Char('d'), KeyModifiers::NONE),
33            copy_page_down_alt: KeyEvent::new(KeyCode::PageDown, KeyModifiers::NONE),
34            copy_top: KeyEvent::new(KeyCode::Char('g'), KeyModifiers::NONE),
35            copy_bottom: KeyEvent::new(KeyCode::Char('G'), KeyModifiers::NONE),
36            copy_word_left: KeyEvent::new(KeyCode::Char('b'), KeyModifiers::NONE),
37            copy_word_right: KeyEvent::new(KeyCode::Char('w'), KeyModifiers::NONE),
38            copy_start_selection: KeyEvent::new(KeyCode::Char('v'), KeyModifiers::NONE),
39            copy_start_selection_alt: KeyEvent::new(KeyCode::Char(' '), KeyModifiers::NONE),
40            copy_and_exit: KeyEvent::new(KeyCode::Char('y'), KeyModifiers::NONE),
41            copy_and_exit_alt: KeyEvent::new(KeyCode::Enter, KeyModifiers::NONE),
42        }
43    }
44}