diff --git a/Cargo.lock b/Cargo.lock index 9cabc32..c05b7d5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -289,8 +289,6 @@ dependencies = [ "libmonado-rs", "nix", "openxr", - "phf", - "phf_macros", "relm4", "relm4-components", "reqwest", @@ -1460,47 +1458,6 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_shared", -] - -[[package]] -name = "phf_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared", - "rand", -] - -[[package]] -name = "phf_macros" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator", - "phf_shared", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - [[package]] name = "pin-project" version = "1.1.5" @@ -1947,12 +1904,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - [[package]] name = "slab" version = "0.4.9" diff --git a/Cargo.toml b/Cargo.toml index 79fd66a..15f0d68 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,8 +15,6 @@ libadwaita = { version = "0.7.0", features = ["v1_5"] } libmonado-rs = { git = "https://github.com/technobaboo/libmonado-rs", rev = "ddad003d5701c7139dd0de69c8195ed2105784ca" } rusb = "0.9.4" nix = { version = "0.29.0", features = ["fs", "signal"] } -phf = "0.11.2" -phf_macros = "0.11.2" relm4 = { version = "0.9.0", features = ["libadwaita"] } relm4-components = "0.9.1" reqwest = { version = "0.12.5", features = ["blocking"] } diff --git a/src/env_var_descriptions.rs b/src/env_var_descriptions.rs index 94213ae..7f6c2e9 100644 --- a/src/env_var_descriptions.rs +++ b/src/env_var_descriptions.rs @@ -1,29 +1,72 @@ -use phf::Map; -use phf_macros::phf_map; +use lazy_static::lazy_static; -pub static ENV_VAR_DESCRIPTIONS: Map<&str, &str> = phf_map! { - "XRT_COMPOSITOR_SCALE_PECENTAGE" => - "Render resolution percentage. A percentage higher than the native resolution (>100) will help with antialiasing and image clarity.", - "XRT_COMPOSITOR_COMPUTE" => "Set to 1 to use GPU compute for the OpenXR compositor.", - "U_PACING_APP_USE_MIN_FRAME_PERIOD" => "Set to 1 to unlimit the compositor refresh from a power of two of your HMD refresh, typically provides a large performance boost.", - "SURVIVE_GLOBALSCENESOLVER" => - "Continuously recalibrate lighthouse tracking during use. In the current state it's recommended to disable this feature by setting this value to 0.", - // "SURVIVE_TIMECODE_OFFSET_MS" => "", - "LD_LIBRARY_PATH" => - "Colon-separated list of directories where the dynamic linker will search for shared object libraries.", - "XRT_DEBUG_GUI" => "Set to 1 to enable the Monado debug UI.", - "XRT_CURATED_GUI" => "Set to 1 to enable the Monado preview UI. Requires XRT_DEBUG_GUI=1 to work.", - "XRT_JSON_LOG" => "Set to 1 to enable JSON logging for Monado. This enables better log visualization and log level filtering.", - "QWERTY_ENABLE" => "Set to 1 to enable QWERTY Simulation driver. This enables simulated driver that allows you to use Monado without HMD and controllers. It's also possible to mix and match different profiles with this.", - "LH_DRIVER" => "Lighthouse driver, this overrides the \"Lighthouse driver option in the profile\"; Valid options are: \"vive\" for the default built-in driver, \"survive\" for Libsurvive, \"steamvr\" for the SteamVR based implementation.", - "LH_LOG" => "Lighthouse log level. Can be one of: \"trace\", \"debug\", \"info\", \"warn\", \"error\".", - "LIGHTHOUSE_LOG" => "Lighthouse driver log level. Can be one of: \"trace\", \"debug\", \"info\", \"warn\", \"error\"." -}; +fn env_var_descriptions() -> Vec<(&'static str, &'static str)> { + vec![ + ( + "XRT_COMPOSITOR_SCALE_PECENTAGE", + "Render resolution percentage. A percentage higher than the native resolution (>100) will help with antialiasing and image clarity." + ), + ( + "XRT_COMPOSITOR_COMPUTE", + "Set to 1 to use GPU compute for the OpenXR compositor." + ), + ( + "U_PACING_APP_USE_MIN_FRAME_PERIOD", + "Set to 1 to unlimit the compositor refresh from a power of two of your HMD refresh, typically provides a large performance boost." + ), + ( + "SURVIVE_GLOBALSCENESOLVER", + "Continuously recalibrate lighthouse tracking during use. In the current state it's recommended to disable this feature by setting this value to 0." + ), + // ("SURVIVE_TIMECODE_OFFSET_MS", ""), + ( + "LD_LIBRARY_PATH", + "Colon-separated list of directories where the dynamic linker will search for shared object libraries." + ), + ( + "XRT_DEBUG_GUI", + "Set to 1 to enable the Monado debug UI." + ), + ( + "XRT_CURATED_GUI", + "Set to 1 to enable the Monado preview UI. Requires XRT_DEBUG_GUI=1 to work." + ), + ( + "XRT_JSON_LOG", + "Set to 1 to enable JSON logging for Monado. This enables better log visualization and log level filtering." + ), + ( + "QWERTY_ENABLE", + "Set to 1 to enable QWERTY Simulation driver. This enables simulated driver that allows you to use Monado without HMD and controllers. It's also possible to mix and match different profiles with this." + ), + ( + "LH_DRIVER", + "Lighthouse driver, this overrides the \"Lighthouse driver option in the profile\"; Valid options are: \"vive\" for the default built-in driver, \"survive\" for Libsurvive, \"steamvr\" for the SteamVR based implementation." + ), + ( + "LH_LOG", + "Lighthouse log level. Can be one of: \"trace\", \"debug\", \"info\", \"warn\", \"error\"." + ), + ( + "LIGHTHOUSE_LOG", + "Lighthouse driver log level. Can be one of: \"trace\", \"debug\", \"info\", \"warn\", \"error\"." + ), + ( + "LH_HANDTRACKING", + "Controls when to enable mercury optical hand tracking. Valid options are: \"0\" (off) to disable hand tracking, \"1\" (auto) to only enable hand tracking if no controllers are found, \"2\" (on) to enable hand tracking even if controllers are found." + ), + ] +} -pub fn env_var_descriptions_as_paragraph() -> String { +fn env_var_descriptions_as_paragraph() -> String { ENV_VAR_DESCRIPTIONS - .into_iter() + .iter() .map(|(k, v)| format!(" \u{2022} {}: {}", k, v)) .collect::>() .join("\n\n") } + +lazy_static! { + pub static ref ENV_VAR_DESCRIPTIONS: Vec<(&'static str, &'static str)> = env_var_descriptions(); + pub static ref ENV_VAR_DESCRIPTIONS_AS_PARAGRAPH: String = env_var_descriptions_as_paragraph(); +} diff --git a/src/ui/profile_editor.rs b/src/ui/profile_editor.rs index 78df416..8706aac 100644 --- a/src/ui/profile_editor.rs +++ b/src/ui/profile_editor.rs @@ -3,7 +3,7 @@ use super::{ factories::env_var_row_factory::{EnvVarModel, EnvVarModelInit}, }; use crate::{ - env_var_descriptions::env_var_descriptions_as_paragraph, + env_var_descriptions::ENV_VAR_DESCRIPTIONS_AS_PARAGRAPH, profile::{LighthouseDriver, Profile, XRServiceType}, ui::{ factories::env_var_row_factory::EnvVarModelOutMsg, @@ -533,7 +533,7 @@ impl SimpleComponent for ProfileEditor { .launch( adw::PreferencesGroup::builder() .title("Environment Variables") - .description(env_var_descriptions_as_paragraph()) + .description(ENV_VAR_DESCRIPTIONS_AS_PARAGRAPH.as_str()) .header_suffix(&add_env_var_btn) .build(), )