pub struct AppSettings {Show 14 fields
pub launch_at_login: bool,
pub check_for_updates: bool,
pub auto_install_updates: bool,
pub update_prompt_seen: bool,
pub show_in_menu_bar: bool,
pub capture_mouse_events: bool,
pub auto_download_assets: bool,
pub asset_source: AssetSourcePreference,
pub language: Option<String>,
pub thumbwheel_sensitivity: i32,
pub appearance: Appearance,
pub theme_light: Option<String>,
pub theme_dark: Option<String>,
pub ui_radius: Option<u8>,
}Expand description
App-wide preferences not tied to any particular device.
All fields are #[serde(default)] so adding a new one is backward
compatible — old config files just keep the default for the new field.
Fields§
§launch_at_login: boolWhen true, a macOS LaunchAgent plist at
~/Library/LaunchAgents/org.openlogi.openlogi.plist is installed
so the app starts on login (P2.2). The plist is reconciled with
this field on every startup; flipping the flag and relaunching is
enough to install / remove it.
check_for_updates: boolOpt-in update check (P2.8). Off by default to honour the
README’s “no telemetry, no auto-update poller” promise. When true,
the app makes exactly one HEAD /repos/AprilNEA/OpenLogi/releases/ latest request per launch and logs whether a newer version is
available — no automatic download.
auto_install_updates: boolOpt-in automatic install. When true and Self::check_for_updates
surfaces a newer version, the GUI downloads and stages it in the
background; the update is applied on the next restart (never mid-session,
and never auto-relaunched). Off by default — it only acts after a
check the user already opted into, and stays inert in unsigned dev builds
where verification fails closed.
update_prompt_seen: boolTrue once the first-run “check for updates?” prompt has been answered
(either way), so it is never shown again. The prompt is how a
privacy-conscious default of check_for_updates = false still lets a
user opt in on first launch.
Whether OpenLogi shows a macOS menu-bar (status item) icon — and, on
Windows, the notification-area (tray) icon. true (default) → the
agent is visible in the menu bar / tray; false → it runs with no
visible presence (macOS additionally keeps the ordinary Dock icon
while a window is open). Ignored on Linux.
capture_mouse_events: boolWhether the agent installs the OS-level mouse hook (CGEventTap /
exclusive evdev grab / WH_MOUSE_LL) that intercepts mouse events
for button remapping. true (default) keeps remapping active;
false is an escape hatch that leaves every input device untouched
(on Linux: no exclusive grabs at all; on macOS the agent also skips
the startup Accessibility prompt). HID++-side features — DPI,
SmartShift, the gesture button, the thumb wheel — are unaffected.
Takes effect on agent restart.
auto_download_assets: boolWhether the GUI automatically downloads device images from
assets.openlogi.org when a device appears. true (default) keeps
the current behavior; false makes no asset network requests at all
(the app falls back to bundled art and the synthetic silhouette). A
manual “Refresh assets” in Settings still fetches on demand regardless.
Whether the GUI automatically downloads device images from the selected
source when a device appears. true (default) keeps the current behavior;
false makes no asset network requests at all (the app falls back to
bundled art and the synthetic silhouette). A manual “Refresh assets” in
Settings still fetches on demand regardless.
asset_source: AssetSourcePreferencePreferred mirror for automatic and manual device-asset downloads.
Defaults to racing all built-in mirrors; OPENLOGI_ASSETS remains a
process-level override for development and diagnostics.
language: Option<String>UI language as a BCP-47-ish locale code matching the GUI’s bundled
locales (e.g. "en", "de", "pt-BR", "zh-CN", "zh-TW"; see the
GUI’s i18n::SUPPORTED). None means “follow the system locale”, which
the GUI resolves at startup. Stored here so a user’s explicit choice
survives restarts regardless of the OS setting.
thumbwheel_sensitivity: i32Thumb-wheel responsiveness, on a MIN_THUMBWHEEL_SENSITIVITY–
MAX_THUMBWHEEL_SENSITIVITY scale. It scales both the speed of the
wheel’s continuous horizontal scroll and how few rotation increments a
custom wheel action needs to fire. DEFAULT_THUMBWHEEL_SENSITIVITY
(the out-of-the-box value) means 1× scroll speed; the wheel is only
diverted from native scrolling once this leaves the default.
appearance: AppearanceLight/dark appearance preference. Defaults to following the OS.
theme_light: Option<String>Name of the theme used in light mode (a crate-agnostic string
matching a gpui-component theme, e.g. "OpenLogi Light"). None uses
the OpenLogi brand light theme.
theme_dark: Option<String>Name of the theme used in dark mode. None uses the OpenLogi brand dark
theme.
ui_radius: Option<u8>Corner-radius override for the UI, in pixels (the Appearance page offers
0 / 6 / 12). None keeps each theme’s own radius.
Implementations§
Source§impl AppSettings
impl AppSettings
Sourcepub fn is_default(&self) -> bool
pub fn is_default(&self) -> bool
skip_serializing_if helper: true when nothing diverges from the
default, so empty settings don’t clutter config.toml.
Trait Implementations§
Source§impl Clone for AppSettings
impl Clone for AppSettings
Source§fn clone(&self) -> AppSettings
fn clone(&self) -> AppSettings
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AppSettings
impl Debug for AppSettings
Source§impl Default for AppSettings
impl Default for AppSettings
Source§impl<'de> Deserialize<'de> for AppSettings
impl<'de> Deserialize<'de> for AppSettings
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for AppSettings
Source§impl PartialEq for AppSettings
impl PartialEq for AppSettings
Source§impl Serialize for AppSettings
impl Serialize for AppSettings
impl StructuralPartialEq for AppSettings
Auto Trait Implementations§
impl Freeze for AppSettings
impl RefUnwindSafe for AppSettings
impl Send for AppSettings
impl Sync for AppSettings
impl Unpin for AppSettings
impl UnsafeUnpin for AppSettings
impl UnwindSafe for AppSettings
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.