use crate::keybindings::action::HistDirection;
use super::action::{Action, VertDirection, Zoom};
use super::{Key, KeyCombo, ModifiedKey};
use winit::event::{ModifiersState, VirtualKeyCode as VirtKey};
const IS_MACOS: bool = cfg!(target_os = "macos");
pub fn defaults() -> Vec<(Action, KeyCombo)> {
let ctrl_or_command = if IS_MACOS {
ModifiersState::LOGO
} else {
ModifiersState::CTRL
};
vec![
(
Action::Copy,
KeyCombo(vec![ModifiedKey(Key::from(VirtKey::C), ctrl_or_command)]),
),
(
Action::Zoom(Zoom::In),
KeyCombo(vec![ModifiedKey(
Key::from(VirtKey::Equals),
ctrl_or_command,
)]),
),
(
Action::Zoom(Zoom::Out),
KeyCombo(vec![ModifiedKey(
Key::from(VirtKey::Minus),
ctrl_or_command,
)]),
),
(
Action::History(HistDirection::Next),
KeyCombo(vec![ModifiedKey(
Key::from(VirtKey::Right),
ModifiersState::ALT,
)]),
),
(
Action::History(HistDirection::Prev),
KeyCombo(vec![ModifiedKey(
Key::from(VirtKey::Left),
ModifiersState::ALT,
)]),
),
(
Action::Scroll(VertDirection::Up),
KeyCombo::from(VirtKey::Up),
),
(
Action::Scroll(VertDirection::Down),
KeyCombo::from(VirtKey::Down),
),
(
Action::Page(VertDirection::Up),
KeyCombo::from(VirtKey::PageUp),
),
(
Action::Page(VertDirection::Down),
KeyCombo::from(VirtKey::PageDown),
),
(
Action::ToEdge(VertDirection::Up),
KeyCombo::from(VirtKey::Home),
),
(
Action::ToEdge(VertDirection::Down),
KeyCombo::from(VirtKey::End),
),
(Action::Quit, KeyCombo::from(VirtKey::Escape)),
(Action::Copy, KeyCombo::from(VirtKey::Y)),
(
Action::Scroll(VertDirection::Up),
KeyCombo::from(VirtKey::K),
),
(
Action::Scroll(VertDirection::Down),
KeyCombo::from(VirtKey::J),
),
(
Action::ToEdge(VertDirection::Up),
KeyCombo(vec![
ModifiedKey::from(VirtKey::G),
ModifiedKey::from(VirtKey::G),
]),
),
(
Action::ToEdge(VertDirection::Down),
KeyCombo(vec![ModifiedKey(
Key::from(VirtKey::G),
ModifiersState::SHIFT,
)]),
),
(Action::Quit, KeyCombo::from(VirtKey::Q)),
(
Action::Quit,
KeyCombo(vec![
ModifiedKey(Key::from(VirtKey::Z), ModifiersState::SHIFT),
ModifiedKey(Key::from(VirtKey::Z), ModifiersState::SHIFT),
]),
),
(
Action::Quit,
KeyCombo(vec![
ModifiedKey(Key::from(VirtKey::Z), ModifiersState::SHIFT),
ModifiedKey(Key::from(VirtKey::Q), ModifiersState::SHIFT),
]),
),
(
Action::History(HistDirection::Next),
KeyCombo(vec![
ModifiedKey::from(VirtKey::B),
ModifiedKey::from(VirtKey::N),
]),
),
(
Action::History(HistDirection::Prev),
KeyCombo(vec![
ModifiedKey::from(VirtKey::B),
ModifiedKey::from(VirtKey::P),
]),
),
]
}