pub struct GuiIpcClient { /* private fields */ }Expand description
Simplified IPC client for the GUI
Implementations§
Source§impl GuiIpcClient
impl GuiIpcClient
Sourcepub fn new(socket_path: PathBuf) -> Self
pub fn new(socket_path: PathBuf) -> Self
Create a new GUI IPC client with the specified socket path
Sourcepub async fn get_devices(&self) -> Result<Vec<DeviceInfo>, String>
pub async fn get_devices(&self) -> Result<Vec<DeviceInfo>, String>
Get list of available devices
Sourcepub async fn list_macros(&self) -> Result<Vec<MacroEntry>, String>
pub async fn list_macros(&self) -> Result<Vec<MacroEntry>, String>
Get list of configured macros
Sourcepub async fn start_recording_macro(
&self,
device_path: &str,
name: &str,
capture_mouse: bool,
) -> Result<(), String>
pub async fn start_recording_macro( &self, device_path: &str, name: &str, capture_mouse: bool, ) -> Result<(), String>
Start recording a macro for a device
Sourcepub async fn stop_recording_macro(&self) -> Result<MacroEntry, String>
pub async fn stop_recording_macro(&self) -> Result<MacroEntry, String>
Stop recording a macro
Sourcepub async fn save_profile(&self, name: &str) -> Result<(String, usize), String>
pub async fn save_profile(&self, name: &str) -> Result<(String, usize), String>
Save current macros to a profile
Sourcepub async fn load_profile(&self, name: &str) -> Result<(String, usize), String>
pub async fn load_profile(&self, name: &str) -> Result<(String, usize), String>
Load macros from a profile
Sourcepub async fn grab_device(&self, device_path: &str) -> Result<(), String>
pub async fn grab_device(&self, device_path: &str) -> Result<(), String>
Grab a device exclusively for input interception
Sourcepub async fn ungrab_device(&self, device_path: &str) -> Result<(), String>
pub async fn ungrab_device(&self, device_path: &str) -> Result<(), String>
Release exclusive access to a device
Sourcepub async fn activate_profile(
&self,
device_id: String,
profile_name: String,
) -> Result<(), String>
pub async fn activate_profile( &self, device_id: String, profile_name: String, ) -> Result<(), String>
Sourcepub async fn get_active_profile(
&self,
device_id: String,
) -> Result<Option<String>, String>
pub async fn get_active_profile( &self, device_id: String, ) -> Result<Option<String>, String>
Sourcepub async fn get_active_remaps(
&self,
device_path: &str,
) -> Result<Option<(String, Vec<RemapEntry>)>, String>
pub async fn get_active_remaps( &self, device_path: &str, ) -> Result<Option<(String, Vec<RemapEntry>)>, String>
Sourcepub async fn list_remap_profiles(
&self,
device_path: &str,
) -> Result<Vec<RemapProfileInfo>, String>
pub async fn list_remap_profiles( &self, device_path: &str, ) -> Result<Vec<RemapProfileInfo>, String>
Sourcepub async fn activate_remap_profile(
&self,
device_path: &str,
profile_name: &str,
) -> Result<(), String>
pub async fn activate_remap_profile( &self, device_path: &str, profile_name: &str, ) -> Result<(), String>
Sourcepub async fn get_device_capabilities(
&self,
device_path: &str,
) -> Result<DeviceCapabilities, String>
pub async fn get_device_capabilities( &self, device_path: &str, ) -> Result<DeviceCapabilities, String>
Sourcepub async fn set_layer_config(
&self,
device_id: &str,
layer_id: usize,
name: String,
mode: LayerMode,
) -> Result<(), String>
pub async fn set_layer_config( &self, device_id: &str, layer_id: usize, name: String, mode: LayerMode, ) -> Result<(), String>
Set layer configuration for a device
§Arguments
device_id- Device identifier in vendor:product formatlayer_id- Layer ID to configurename- Human-readable layer namemode- Layer activation mode (Hold or Toggle)
§Returns
Ok(())- Layer configuration updated successfullyErr(String)- IPC communication error
Sourcepub async fn activate_layer(
&self,
device_id: &str,
layer_id: usize,
mode: LayerMode,
) -> Result<(), String>
pub async fn activate_layer( &self, device_id: &str, layer_id: usize, mode: LayerMode, ) -> Result<(), String>
Sourcepub async fn list_layers(
&self,
device_id: &str,
) -> Result<Vec<LayerConfigInfo>, String>
pub async fn list_layers( &self, device_id: &str, ) -> Result<Vec<LayerConfigInfo>, String>
Sourcepub async fn set_analog_dpad_mode(
&self,
device_id: &str,
mode: &str,
) -> Result<(), String>
pub async fn set_analog_dpad_mode( &self, device_id: &str, mode: &str, ) -> Result<(), String>
Sourcepub async fn set_analog_deadzone_xy(
&self,
device_id: &str,
x_percentage: u8,
y_percentage: u8,
) -> Result<(), String>
pub async fn set_analog_deadzone_xy( &self, device_id: &str, x_percentage: u8, y_percentage: u8, ) -> Result<(), String>
Sourcepub async fn set_analog_outer_deadzone_xy(
&self,
device_id: &str,
x_percentage: u8,
y_percentage: u8,
) -> Result<(), String>
pub async fn set_analog_outer_deadzone_xy( &self, device_id: &str, x_percentage: u8, y_percentage: u8, ) -> Result<(), String>
Set per-axis outer deadzone (max clamp) for a device
§Arguments
device_id- Device identifier in vendor:product formatx_percentage- X-axis outer deadzone percentage (0-100)y_percentage- Y-axis outer deadzone percentage (0-100)
§Returns
Ok(())- Per-axis outer deadzone set successfullyErr(String)- IPC communication error
Sourcepub async fn get_analog_outer_deadzone_xy(
&self,
device_id: &str,
) -> Result<(u8, u8), String>
pub async fn get_analog_outer_deadzone_xy( &self, device_id: &str, ) -> Result<(u8, u8), String>
Sourcepub async fn set_led_color(
&self,
device_id: &str,
zone: LedZone,
red: u8,
green: u8,
blue: u8,
) -> Result<(), String>
pub async fn set_led_color( &self, device_id: &str, zone: LedZone, red: u8, green: u8, blue: u8, ) -> Result<(), String>
Set LED color for a specific zone
§Arguments
device_id- Device identifier in vendor:product formatzone- LED zone to configure (Logo, Keys, Thumbstick, All, Global)red- Red component (0-255)green- Green component (0-255)blue- Blue component (0-255)
§Returns
Ok(())- Color set successfullyErr(String)- IPC communication error
Sourcepub async fn get_led_color(
&self,
device_id: &str,
zone: LedZone,
) -> Result<Option<(u8, u8, u8)>, String>
pub async fn get_led_color( &self, device_id: &str, zone: LedZone, ) -> Result<Option<(u8, u8, u8)>, String>
Sourcepub async fn get_all_led_colors(
&self,
device_id: &str,
) -> Result<HashMap<LedZone, (u8, u8, u8)>, String>
pub async fn get_all_led_colors( &self, device_id: &str, ) -> Result<HashMap<LedZone, (u8, u8, u8)>, String>
Sourcepub async fn set_led_brightness(
&self,
device_id: &str,
zone: Option<LedZone>,
brightness: u8,
) -> Result<(), String>
pub async fn set_led_brightness( &self, device_id: &str, zone: Option<LedZone>, brightness: u8, ) -> Result<(), String>
Sourcepub async fn get_led_brightness(
&self,
device_id: &str,
zone: Option<LedZone>,
) -> Result<u8, String>
pub async fn get_led_brightness( &self, device_id: &str, zone: Option<LedZone>, ) -> Result<u8, String>
Sourcepub async fn set_led_pattern(
&self,
device_id: &str,
pattern: LedPattern,
) -> Result<(), String>
pub async fn set_led_pattern( &self, device_id: &str, pattern: LedPattern, ) -> Result<(), String>
Sourcepub async fn get_led_pattern(
&self,
device_id: &str,
) -> Result<LedPattern, String>
pub async fn get_led_pattern( &self, device_id: &str, ) -> Result<LedPattern, String>
Sourcepub async fn send_focus_change(
&self,
app_id: String,
window_title: Option<String>,
) -> Result<(), String>
pub async fn send_focus_change( &self, app_id: String, window_title: Option<String>, ) -> Result<(), String>
Send focus change event to daemon for auto-profile switching
§Arguments
app_id- Application identifier (e.g., “org.alacritty”, “firefox”)window_title- Optional window title (may be empty on some compositors)
§Returns
Ok(())- Focus event acknowledged by daemonErr(String)- IPC communication error
Sourcepub async fn get_analog_calibration(
&self,
device_id: &str,
layer_id: usize,
) -> Result<AnalogCalibrationConfig, String>
pub async fn get_analog_calibration( &self, device_id: &str, layer_id: usize, ) -> Result<AnalogCalibrationConfig, String>
Sourcepub async fn set_analog_calibration(
&self,
device_id: &str,
layer_id: usize,
calibration: AnalogCalibrationConfig,
) -> Result<(), String>
pub async fn set_analog_calibration( &self, device_id: &str, layer_id: usize, calibration: AnalogCalibrationConfig, ) -> Result<(), String>
Sourcepub async fn get_macro_settings(&self) -> Result<MacroSettings, String>
pub async fn get_macro_settings(&self) -> Result<MacroSettings, String>
Get global macro settings
Sourcepub async fn set_macro_settings(
&self,
settings: MacroSettings,
) -> Result<(), String>
pub async fn set_macro_settings( &self, settings: MacroSettings, ) -> Result<(), String>
Set global macro settings
Auto Trait Implementations§
impl Freeze for GuiIpcClient
impl RefUnwindSafe for GuiIpcClient
impl Send for GuiIpcClient
impl Sync for GuiIpcClient
impl Unpin for GuiIpcClient
impl UnsafeUnpin for GuiIpcClient
impl UnwindSafe for GuiIpcClient
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Convert the source color to the destination color using the specified
method.
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Convert the source color to the destination color using the bradford
method by default.
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Cast a collection of colors into a collection of arrays.
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Cast this collection of arrays into a collection of colors.
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
Mutably borrows from an owned value. Read more
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self into C, using the provided parameters.Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Cast a collection of colors into a collection of color components.
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
Performs a conversion from
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
Converts
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
Performs a conversion into
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Convert into T with values clamped to the color defined bounds Read more
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Convert into T. The resulting color might be invalid in its color space Read more
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
Converts
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
The error for when
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Try to cast this collection of color components into a collection of
colors. Read more
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
Convert into T, returning ok if the color is inside of its defined
range, otherwise an
OutOfBounds error is returned which contains
the unclamped color. Read moreSource§impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
Source§fn uints_from(colors: C) -> U
fn uints_from(colors: C) -> U
Cast a collection of colors into a collection of unsigned integers.
Source§impl<C, U> UintsInto<C> for Uwhere
C: FromUints<U>,
impl<C, U> UintsInto<C> for Uwhere
C: FromUints<U>,
Source§fn uints_into(self) -> C
fn uints_into(self) -> C
Cast this collection of unsigned integers into a collection of colors.