pub enum ButtonId {
Show 19 variants
LeftClick,
RightClick,
MiddleClick,
Back,
Forward,
DpiToggle,
Thumbwheel,
ThumbwheelScrollUp,
ThumbwheelScrollDown,
GestureButton,
KeySearch,
KeyDictation,
KeyEmoji,
KeyScreenCapture,
KeyMicMute,
KeyPlayPause,
KeyMute,
KeyVolumeDown,
KeyVolumeUp,
}Expand description
One of the user-rebindable hotspots on a Logi mouse. The order matches the
physical layout from front to side; ButtonId::ALL is consumed by the
default-binding generator and the popover trigger list.
Variants§
LeftClick
The primary button. Rebindable in the config schema, but the OS hook
never suppresses it — see ButtonId::is_os_hook_button.
RightClick
The secondary button. Like ButtonId::LeftClick, it always passes
through the OS hook.
MiddleClick
The wheel click — one of the three buttons the OS hook remaps.
Back
The thumb-side “back” button (mouse button 4), remapped by the OS hook.
Forward
The thumb-side “forward” button (mouse button 5), remapped by the OS hook.
DpiToggle
The “ModeShift” button under the wheel — typically used for SmartShift /
DPI cycle. Named DpiToggle for historical reasons.
Thumbwheel
The horizontal thumb wheel’s click. Kept in ButtonId::ALL so its
default still seeds and dispatches when the wheel is diverted, even
though the mouse model surfaces one paired rotation control instead of
the click (see mouse_model::geometry).
ThumbwheelScrollUp
Rotating the thumb wheel “up” (positive rotation). Bound, by default, to
continuous horizontal scroll; see the agent-core watchers-side dispatch.
ThumbwheelScrollDown
Rotating the thumb wheel “down” (negative rotation).
GestureButton
The HID++ gesture button on MX-line devices. The press itself fires the bound action; swipe directions are P1.5 territory.
KeySearch
Keyboard F-row “Search” control (0x1b04 CID 0x00d4,
MultiPlatform_Search) — F4 on the Signature series.
KeyDictation
Keyboard “Dictation” control (CID 0x0103) — F5 on the Signature series.
KeyEmoji
Keyboard “Emoji” control (CID 0x0108) — F6 on the Signature series.
KeyScreenCapture
Keyboard “Screen Capture” control (CID 0x010a) — F7 on the Signature
series.
KeyMicMute
Keyboard “Mute Microphone” control (CID 0x011c) — F8 on the Signature
series.
KeyPlayPause
Keyboard “Play/Pause” control (CID 0x00e5) — F9 on the Signature series.
KeyMute
Keyboard “Mute” control (CID 0x00e7) — F10 on the Signature series.
KeyVolumeDown
Keyboard “Volume Down” control (CID 0x00e8) — F11 on the Signature
series.
KeyVolumeUp
Keyboard “Volume Up” control (CID 0x00e9) — F12 on the Signature
series.
Implementations§
Source§impl ButtonId
impl ButtonId
Sourcepub const ALL: [ButtonId; 10]
pub const ALL: [ButtonId; 10]
Every rebindable button in declaration (physical front-to-side) order — the iteration source for default-binding seeding and the popover trigger list.
Sourcepub const KEYBOARD_KEYS: [ButtonId; 9]
pub const KEYBOARD_KEYS: [ButtonId; 9]
The divertable keyboard F-row controls, in F-row order. Kept out of
ButtonId::ALL: that array seeds mouse defaults and the mouse
popover trigger list, while keyboard keys stay native unless the user
binds them (an unbound key is never diverted).
Whether this button is one the OS hook (macOS CGEventTap / Linux evdev)
remaps: Middle, Back, or Forward. The primary L/R clicks always pass
through (suppressing them would brick the mouse), and the DPI / thumb /
dedicated gesture controls aren’t visible to the OS hook at all (they’re
captured over HID++). These are exactly the buttons that can become an
OS-hook gesture button, so the hook’s remap gate and the gesture-owner
projection share this one definition.
Trait Implementations§
impl Copy for ButtonId
Source§impl<'de> Deserialize<'de> for ButtonId
impl<'de> Deserialize<'de> for ButtonId
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 ButtonId
Source§impl Ord for ButtonId
impl Ord for ButtonId
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for ButtonId
impl PartialOrd for ButtonId
impl StructuralPartialEq for ButtonId
Auto Trait Implementations§
impl Freeze for ButtonId
impl RefUnwindSafe for ButtonId
impl Send for ButtonId
impl Sync for ButtonId
impl Unpin for ButtonId
impl UnsafeUnpin for ButtonId
impl UnwindSafe for ButtonId
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,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
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.