From 068c2907d5c3730ae2cc3ee7b41ff59fafcf1936 Mon Sep 17 00:00:00 2001 From: M33 <327-m33@git.qoto.org> Date: Wed, 17 Mar 2021 09:55:30 +0000 Subject: [PATCH] path is hell try again overloading name --- src/data.rs | 52 +++++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/src/data.rs b/src/data.rs index 3cb872de..3f224a89 100644 --- a/src/data.rs +++ b/src/data.rs @@ -136,7 +136,7 @@ type LayoutSource = (ArrangementKind, DataSource); fn list_layout_sources( name: &str, kind: ArrangementKind, - keyboards_path: PathBuf, // Option<PathBuf>, + keyboards_path: Option<PathBuf>, // PathBuf, ) -> Vec<LayoutSource> { // Just a simplification of often called code. let add_by_name = | @@ -237,33 +237,39 @@ fn load_layout_data_with_fallback( ) -> (ArrangementKind, ::layout::LayoutData) { // Build the path to the right keyboard layout subdirectory - let mut variant_path = env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(); + //let mut variant_path = env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(); + let mut variant_name=String::new(); - //let mut path = env::var_os("SQUEEKBOARD_KEYBOARDSDIR") - // .map(PathBuf::from) - // .or_else(|| xdg::data_path("squeekboard/keyboards")); + let path = env::var_os("SQUEEKBOARD_KEYBOARDSDIR") + .map(PathBuf::from) + .or_else(|| xdg::data_path("squeekboard/keyboards")); - match variant { - ::data::ContentPurpose::Normal => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), - ::data::ContentPurpose::Alpha => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), - ::data::ContentPurpose::Digits => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), - ::data::ContentPurpose::Number => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), - ::data::ContentPurpose::Phone => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), - ::data::ContentPurpose::Url => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), - ::data::ContentPurpose::Email => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), - ::data::ContentPurpose::Name => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), - ::data::ContentPurpose::Password => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), - ::data::ContentPurpose::Pin => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), - ::data::ContentPurpose::Date => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), - ::data::ContentPurpose::Time => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), - ::data::ContentPurpose::Datetime => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), - ::data::ContentPurpose::Terminal => variant_path.push("/terminal"), // terminal specific layouts + if variant == ::data::ContentPurpose::Terminal { + variant_name.push_str("/terminal/"); } + variant_name.push_str(name); + + //match variant { + // ::data::ContentPurpose::Normal => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), + // ::data::ContentPurpose::Alpha => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), + // ::data::ContentPurpose::Digits => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), + // ::data::ContentPurpose::Number => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), + // ::data::ContentPurpose::Phone => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), + // ::data::ContentPurpose::Url => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), + // ::data::ContentPurpose::Email => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), + // ::data::ContentPurpose::Name => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), + // ::data::ContentPurpose::Password => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), + // ::data::ContentPurpose::Pin => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), + // ::data::ContentPurpose::Date => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), + // ::data::ContentPurpose::Time => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), + // ::data::ContentPurpose::Datetime => env::var_os("SQUEEKBOARD_KEYBOARDSDIR").unwrap(), + // ::data::ContentPurpose::Terminal => variant_path.push("/terminal"), // terminal specific layouts + //} - let mut variant_path_buf = PathBuf::new(); - variant_path_buf.push(variant_path); + //let mut variant_path_buf = PathBuf::new(); + //variant_path_buf.push(variant_path); - for (kind, source) in list_layout_sources(name, kind, variant_path_buf) { + for (kind, source) in list_layout_sources(variant_name, kind, path) { let layout = load_layout_data(source.clone()); match layout { Err(e) => match (e, source) { -- GitLab