// SPDX-License-Identifier: LGPL-2.1-only // Copyright (C) 2026 Liberux Labs, S. L. use android_activity::input::Keycode; use crate::Keysym; /// The keysym of a key that types no character: navigation, editing, function and modifier keys, and back. `None` for the others, whose keysym is the character they type. pub( super ) fn keysym( code: Keycode ) -> Option { Some( match code { Keycode::DpadLeft => Keysym::Left, Keycode::DpadRight => Keysym::Right, Keycode::DpadUp => Keysym::Up, Keycode::DpadDown => Keysym::Down, Keycode::Enter | Keycode::DpadCenter => Keysym::Return, Keycode::NumpadEnter => Keysym::KP_Enter, Keycode::Del => Keysym::BackSpace, Keycode::ForwardDel => Keysym::Delete, Keycode::Tab => Keysym::Tab, Keycode::Escape => Keysym::Escape, Keycode::MoveHome => Keysym::Home, Keycode::MoveEnd => Keysym::End, Keycode::PageUp => Keysym::Page_Up, Keycode::PageDown => Keysym::Page_Down, Keycode::Insert => Keysym::Insert, Keycode::F1 => Keysym::F1, Keycode::F2 => Keysym::F2, Keycode::F3 => Keysym::F3, Keycode::F4 => Keysym::F4, Keycode::F5 => Keysym::F5, Keycode::F6 => Keysym::F6, Keycode::F7 => Keysym::F7, Keycode::F8 => Keysym::F8, Keycode::F9 => Keysym::F9, Keycode::F10 => Keysym::F10, Keycode::F11 => Keysym::F11, Keycode::F12 => Keysym::F12, Keycode::Back => Keysym::XF86_Back, Keycode::Forward => Keysym::XF86_Forward, Keycode::Menu => Keysym::Menu, Keycode::Cut => Keysym::XF86_Cut, Keycode::Copy => Keysym::XF86_Copy, Keycode::Paste => Keysym::XF86_Paste, Keycode::ShiftLeft => Keysym::Shift_L, Keycode::ShiftRight => Keysym::Shift_R, Keycode::CtrlLeft => Keysym::Control_L, Keycode::CtrlRight => Keysym::Control_R, Keycode::AltLeft => Keysym::Alt_L, Keycode::AltRight => Keysym::Alt_R, Keycode::MetaLeft => Keysym::Super_L, Keycode::MetaRight => Keysym::Super_R, Keycode::CapsLock => Keysym::Caps_Lock, Keycode::NumLock => Keysym::Num_Lock, Keycode::ScrollLock => Keysym::Scroll_Lock, Keycode::Sysrq => Keysym::Print, _ => return None, } ) }