use std::path::Path;
pub(crate) fn egui_to_keybinds_key(key: &egui::Key) -> keybinds::Key {
match key {
egui::Key::ArrowDown => keybinds::Key::Down,
egui::Key::ArrowLeft => keybinds::Key::Left,
egui::Key::ArrowRight => keybinds::Key::Right,
egui::Key::ArrowUp => keybinds::Key::Up,
egui::Key::Escape => keybinds::Key::Esc,
egui::Key::Tab => keybinds::Key::Tab,
egui::Key::Backspace => keybinds::Key::Backspace,
egui::Key::Enter => keybinds::Key::Enter,
egui::Key::Space => keybinds::Key::Char(' '),
egui::Key::Insert => keybinds::Key::Insert,
egui::Key::Delete => keybinds::Key::Delete,
egui::Key::Home => keybinds::Key::Home,
egui::Key::End => keybinds::Key::End,
egui::Key::PageUp => keybinds::Key::PageUp,
egui::Key::PageDown => keybinds::Key::PageDown,
egui::Key::Copy => keybinds::Key::Copy,
egui::Key::Cut => keybinds::Key::Cut,
egui::Key::Paste => keybinds::Key::Paste,
egui::Key::Colon => keybinds::Key::Char(':'),
egui::Key::Comma => keybinds::Key::Char(','),
egui::Key::Backslash => keybinds::Key::Char('\\'),
egui::Key::Slash => keybinds::Key::Char('/'),
egui::Key::Pipe => keybinds::Key::Char('|'),
egui::Key::Questionmark => keybinds::Key::Char('?'),
egui::Key::Exclamationmark => keybinds::Key::Char('!'),
egui::Key::OpenBracket => keybinds::Key::Char('['),
egui::Key::CloseBracket => keybinds::Key::Char(']'),
egui::Key::OpenCurlyBracket => keybinds::Key::Char('{'),
egui::Key::CloseCurlyBracket => keybinds::Key::Char('}'),
egui::Key::Backtick => keybinds::Key::Char('`'),
egui::Key::Minus => keybinds::Key::Char('-'),
egui::Key::Period => keybinds::Key::Char('.'),
egui::Key::Plus => keybinds::Key::Char('+'),
egui::Key::Equals => keybinds::Key::Char('='),
egui::Key::Semicolon => keybinds::Key::Char(';'),
egui::Key::Quote => keybinds::Key::Char('\''),
egui::Key::Num0 => keybinds::Key::Char('0'),
egui::Key::Num1 => keybinds::Key::Char('1'),
egui::Key::Num2 => keybinds::Key::Char('2'),
egui::Key::Num3 => keybinds::Key::Char('3'),
egui::Key::Num4 => keybinds::Key::Char('4'),
egui::Key::Num5 => keybinds::Key::Char('5'),
egui::Key::Num6 => keybinds::Key::Char('6'),
egui::Key::Num7 => keybinds::Key::Char('7'),
egui::Key::Num8 => keybinds::Key::Char('8'),
egui::Key::Num9 => keybinds::Key::Char('9'),
egui::Key::A => keybinds::Key::Char('a'),
egui::Key::B => keybinds::Key::Char('b'),
egui::Key::C => keybinds::Key::Char('c'),
egui::Key::D => keybinds::Key::Char('d'),
egui::Key::E => keybinds::Key::Char('e'),
egui::Key::F => keybinds::Key::Char('f'),
egui::Key::G => keybinds::Key::Char('g'),
egui::Key::H => keybinds::Key::Char('h'),
egui::Key::I => keybinds::Key::Char('i'),
egui::Key::J => keybinds::Key::Char('j'),
egui::Key::K => keybinds::Key::Char('k'),
egui::Key::L => keybinds::Key::Char('l'),
egui::Key::M => keybinds::Key::Char('m'),
egui::Key::N => keybinds::Key::Char('n'),
egui::Key::O => keybinds::Key::Char('o'),
egui::Key::P => keybinds::Key::Char('p'),
egui::Key::Q => keybinds::Key::Char('q'),
egui::Key::R => keybinds::Key::Char('r'),
egui::Key::S => keybinds::Key::Char('s'),
egui::Key::T => keybinds::Key::Char('t'),
egui::Key::U => keybinds::Key::Char('u'),
egui::Key::V => keybinds::Key::Char('v'),
egui::Key::W => keybinds::Key::Char('w'),
egui::Key::X => keybinds::Key::Char('x'),
egui::Key::Y => keybinds::Key::Char('y'),
egui::Key::Z => keybinds::Key::Char('z'),
egui::Key::F1 => keybinds::Key::F1,
egui::Key::F2 => keybinds::Key::F2,
egui::Key::F3 => keybinds::Key::F3,
egui::Key::F4 => keybinds::Key::F4,
egui::Key::F5 => keybinds::Key::F5,
egui::Key::F6 => keybinds::Key::F6,
egui::Key::F7 => keybinds::Key::F7,
egui::Key::F8 => keybinds::Key::F8,
egui::Key::F9 => keybinds::Key::F9,
egui::Key::F10 => keybinds::Key::F10,
egui::Key::F11 => keybinds::Key::F11,
egui::Key::F12 => keybinds::Key::F12,
egui::Key::F13 => keybinds::Key::F13,
egui::Key::F14 => keybinds::Key::F14,
egui::Key::F15 => keybinds::Key::F15,
egui::Key::F16 => keybinds::Key::F16,
egui::Key::F17 => keybinds::Key::F17,
egui::Key::F18 => keybinds::Key::F18,
egui::Key::F19 => keybinds::Key::F19,
egui::Key::F20 => keybinds::Key::F20,
egui::Key::F21 => keybinds::Key::F21,
egui::Key::F22 => keybinds::Key::F22,
egui::Key::F23 => keybinds::Key::F23,
egui::Key::F24 => keybinds::Key::F24,
egui::Key::F25 => keybinds::Key::F25,
egui::Key::F26 => keybinds::Key::F26,
egui::Key::F27 => keybinds::Key::F27,
egui::Key::F28 => keybinds::Key::F28,
egui::Key::F29 => keybinds::Key::F29,
egui::Key::F30 => keybinds::Key::F30,
egui::Key::F31 => keybinds::Key::F31,
egui::Key::F32 => keybinds::Key::F32,
egui::Key::F33 => keybinds::Key::F33,
egui::Key::F34 => keybinds::Key::F34,
egui::Key::F35 => keybinds::Key::F35,
egui::Key::BrowserBack => keybinds::Key::Ignored,
}
}
pub fn reveal(path: &Path) -> Result<(), Box<dyn std::error::Error>> {
let canonical_path = path.canonicalize()?;
let file_uri = format!("file://{}", canonical_path.display());
let connection = zbus::blocking::Connection::session()?;
let proxy = zbus::blocking::Proxy::new(
&connection,
"org.freedesktop.FileManager1",
"/org/freedesktop/FileManager1",
"org.freedesktop.FileManager1",
)?;
let uris: Vec<&str> = vec![file_uri.as_str()];
let startup_id: &str = "";
proxy.call_method("ShowItems", &(uris, startup_id))?;
Ok(())
}