kiwmi/src/input/keyboard.rs

34 lines
1 KiB
Rust
Raw Normal View History

2019-01-09 10:10:55 +01:00
use wlroots::{
compositor,
input::{self, keyboard},
xkbcommon::xkb::keysyms,
};
pub struct Keyboard;
impl input::keyboard::Handler for Keyboard {
fn on_key(
&mut self,
compositor_handle: compositor::Handle,
_keyboard_handle: keyboard::Handle,
key_event: &keyboard::event::Key,
) {
for key in key_event.pressed_keys() {
match key {
keysyms::KEY_Escape => compositor::terminate(),
2019-01-09 10:25:49 +01:00
keysyms::KEY_XF86Switch_VT_1..=keysyms::KEY_XF86Switch_VT_12 => {
compositor_handle
.run(|compositor| {
let backend = compositor.backend_mut();
if let Some(mut session) = backend.get_session() {
session.change_vt(key - keysyms::KEY_XF86Switch_VT_1 + 1);
}
})
.unwrap();
2019-01-09 10:10:55 +01:00
}
_ => {}
}
}
}
}