Add rustfmt.toml for explicit styling (#348)

* Propose an explicit .rustfnt.toml
Use 2024 style, 4 spaces for tabs and epand the default width a tad

* Auto-format the existing code with new rules
This commit is contained in:
NeoTheFox
2025-11-02 14:52:01 +04:00
committed by GitHub
parent 3483d242e2
commit 3f13714d8a
36 changed files with 115 additions and 109 deletions

4
.rustfmt.toml Normal file
View File

@@ -0,0 +1,4 @@
style_edition = "2024"
max_width = 100
tab_spaces = 4

View File

@@ -1,6 +1,6 @@
use std::f64::consts::PI; use std::f64::consts::PI;
use std::pin::Pin; use std::pin::Pin;
use std::task::{ready, Context, Poll}; use std::task::{Context, Poll, ready};
use std::time::Duration; use std::time::Duration;
use async_trait::async_trait; use async_trait::async_trait;

View File

@@ -12,9 +12,9 @@ pub enum InputCaptureError {
use std::io; use std::io;
#[cfg(all(unix, feature = "layer_shell", not(target_os = "macos")))] #[cfg(all(unix, feature = "layer_shell", not(target_os = "macos")))]
use wayland_client::{ use wayland_client::{
ConnectError, DispatchError,
backend::WaylandError, backend::WaylandError,
globals::{BindError, GlobalError}, globals::{BindError, GlobalError},
ConnectError, DispatchError,
}; };
#[cfg(all(unix, feature = "libei", not(target_os = "macos")))] #[cfg(all(unix, feature = "libei", not(target_os = "macos")))]

View File

@@ -7,7 +7,7 @@ use std::{
io::{self, ErrorKind}, io::{self, ErrorKind},
os::fd::{AsFd, RawFd}, os::fd::{AsFd, RawFd},
pin::Pin, pin::Pin,
task::{ready, Context, Poll}, task::{Context, Poll, ready},
}; };
use tokio::io::unix::AsyncFd; use tokio::io::unix::AsyncFd;
@@ -45,9 +45,10 @@ use wayland_protocols_wlr::layer_shell::v1::client::{
}; };
use wayland_client::{ use wayland_client::{
Connection, Dispatch, DispatchError, EventQueue, QueueHandle, WEnum,
backend::{ReadEventsGuard, WaylandError}, backend::{ReadEventsGuard, WaylandError},
delegate_noop, delegate_noop,
globals::{registry_queue_init, Global, GlobalList, GlobalListContents}, globals::{Global, GlobalList, GlobalListContents, registry_queue_init},
protocol::{ protocol::{
wl_buffer, wl_compositor, wl_buffer, wl_compositor,
wl_keyboard::{self, WlKeyboard}, wl_keyboard::{self, WlKeyboard},
@@ -58,7 +59,6 @@ use wayland_client::{
wl_seat, wl_shm, wl_shm_pool, wl_seat, wl_shm, wl_shm_pool,
wl_surface::WlSurface, wl_surface::WlSurface,
}, },
Connection, Dispatch, DispatchError, EventQueue, QueueHandle, WEnum,
}; };
use input_event::{Event, KeyboardEvent, PointerEvent}; use input_event::{Event, KeyboardEvent, PointerEvent};
@@ -66,8 +66,8 @@ use input_event::{Event, KeyboardEvent, PointerEvent};
use crate::{CaptureError, CaptureEvent}; use crate::{CaptureError, CaptureEvent};
use super::{ use super::{
error::{LayerShellCaptureCreationError, WaylandBindError},
Capture, Position, Capture, Position,
error::{LayerShellCaptureCreationError, WaylandBindError},
}; };
struct Globals { struct Globals {

View File

@@ -2,14 +2,14 @@ use std::{
collections::{HashMap, HashSet, VecDeque}, collections::{HashMap, HashSet, VecDeque},
fmt::Display, fmt::Display,
mem::swap, mem::swap,
task::{ready, Poll}, task::{Poll, ready},
}; };
use async_trait::async_trait; use async_trait::async_trait;
use futures::StreamExt; use futures::StreamExt;
use futures_core::Stream; use futures_core::Stream;
use input_event::{scancode, Event, KeyboardEvent}; use input_event::{Event, KeyboardEvent, scancode};
pub use error::{CaptureCreationError, CaptureError, InputCaptureError}; pub use error::{CaptureCreationError, CaptureError, InputCaptureError};

View File

@@ -1,10 +1,10 @@
use ashpd::{ use ashpd::{
desktop::{ desktop::{
Session,
input_capture::{ input_capture::{
Activated, ActivatedBarrier, Barrier, BarrierID, Capabilities, InputCapture, Region, Activated, ActivatedBarrier, Barrier, BarrierID, Capabilities, InputCapture, Region,
Zones, Zones,
}, },
Session,
}, },
enumflags2::BitFlags, enumflags2::BitFlags,
}; };
@@ -28,8 +28,8 @@ use std::{
}; };
use tokio::{ use tokio::{
sync::{ sync::{
mpsc::{self, Receiver, Sender},
Notify, Notify,
mpsc::{self, Receiver, Sender},
}, },
task::JoinHandle, task::JoinHandle,
}; };
@@ -42,8 +42,8 @@ use input_event::Event;
use crate::CaptureEvent; use crate::CaptureEvent;
use super::{ use super::{
error::{CaptureError, LibeiCaptureCreationError},
Capture as LanMouseInputCapture, Position, Capture as LanMouseInputCapture, Position,
error::{CaptureError, LibeiCaptureCreationError},
}; };
/* there is a bug in xdg-remote-desktop-portal-gnome / mutter that /* there is a bug in xdg-remote-desktop-portal-gnome / mutter that

View File

@@ -1,15 +1,15 @@
use super::{error::MacosCaptureCreationError, Capture, CaptureError, CaptureEvent, Position}; use super::{Capture, CaptureError, CaptureEvent, Position, error::MacosCaptureCreationError};
use async_trait::async_trait; use async_trait::async_trait;
use bitflags::bitflags; use bitflags::bitflags;
use core_foundation::{ use core_foundation::{
base::{kCFAllocatorDefault, CFRelease}, base::{CFRelease, kCFAllocatorDefault},
date::CFTimeInterval, date::CFTimeInterval,
number::{kCFBooleanTrue, CFBooleanRef}, number::{CFBooleanRef, kCFBooleanTrue},
runloop::{kCFRunLoopCommonModes, CFRunLoop, CFRunLoopSource}, runloop::{CFRunLoop, CFRunLoopSource, kCFRunLoopCommonModes},
string::{kCFStringEncodingUTF8, CFStringCreateWithCString, CFStringRef}, string::{CFStringCreateWithCString, CFStringRef, kCFStringEncodingUTF8},
}; };
use core_graphics::{ use core_graphics::{
base::{kCGErrorSuccess, CGError}, base::{CGError, kCGErrorSuccess},
display::{CGDisplay, CGPoint}, display::{CGDisplay, CGPoint},
event::{ event::{
CGEvent, CGEventFlags, CGEventTap, CGEventTapLocation, CGEventTapOptions, CGEvent, CGEventFlags, CGEventTap, CGEventTapLocation, CGEventTapOptions,
@@ -18,21 +18,22 @@ use core_graphics::{
event_source::{CGEventSource, CGEventSourceStateID}, event_source::{CGEventSource, CGEventSourceStateID},
}; };
use futures_core::Stream; use futures_core::Stream;
use input_event::{Event, KeyboardEvent, PointerEvent, BTN_LEFT, BTN_MIDDLE, BTN_RIGHT}; use input_event::{BTN_LEFT, BTN_MIDDLE, BTN_RIGHT, Event, KeyboardEvent, PointerEvent};
use keycode::{KeyMap, KeyMapping}; use keycode::{KeyMap, KeyMapping};
use libc::c_void; use libc::c_void;
use once_cell::unsync::Lazy; use once_cell::unsync::Lazy;
use std::{ use std::{
collections::HashSet, collections::HashSet,
ffi::{c_char, CString}, ffi::{CString, c_char},
pin::Pin, pin::Pin,
sync::Arc, sync::Arc,
task::{ready, Context, Poll}, task::{Context, Poll, ready},
thread::{self}, thread::{self},
}; };
use tokio::sync::{ use tokio::sync::{
Mutex,
mpsc::{self, Receiver, Sender}, mpsc::{self, Receiver, Sender},
oneshot, Mutex, oneshot,
}; };
#[derive(Debug, Default)] #[derive(Debug, Default)]

View File

@@ -5,7 +5,7 @@ use futures::Stream;
use std::pin::Pin; use std::pin::Pin;
use std::task::ready; use std::task::ready;
use tokio::sync::mpsc::{channel, Receiver}; use tokio::sync::mpsc::{Receiver, channel};
use super::{Capture, CaptureError, CaptureEvent, Position}; use super::{Capture, CaptureError, CaptureEvent, Position};

View File

@@ -6,33 +6,32 @@ use std::default::Default;
use std::sync::atomic::{AtomicBool, AtomicI32, Ordering}; use std::sync::atomic::{AtomicBool, AtomicI32, Ordering};
use std::sync::{Arc, Condvar, Mutex}; use std::sync::{Arc, Condvar, Mutex};
use std::thread; use std::thread;
use tokio::sync::mpsc::error::TrySendError;
use tokio::sync::mpsc::Sender; use tokio::sync::mpsc::Sender;
use windows::core::{w, PCWSTR}; use tokio::sync::mpsc::error::TrySendError;
use windows::Win32::Foundation::{FALSE, HWND, LPARAM, LRESULT, RECT, WPARAM}; use windows::Win32::Foundation::{FALSE, HWND, LPARAM, LRESULT, RECT, WPARAM};
use windows::Win32::Graphics::Gdi::{ use windows::Win32::Graphics::Gdi::{
EnumDisplayDevicesW, EnumDisplaySettingsW, DEVMODEW, DISPLAY_DEVICEW, DEVMODEW, DISPLAY_DEVICE_ATTACHED_TO_DESKTOP, DISPLAY_DEVICEW, ENUM_CURRENT_SETTINGS,
DISPLAY_DEVICE_ATTACHED_TO_DESKTOP, ENUM_CURRENT_SETTINGS, EnumDisplayDevicesW, EnumDisplaySettingsW,
}; };
use windows::Win32::System::LibraryLoader::GetModuleHandleW; use windows::Win32::System::LibraryLoader::GetModuleHandleW;
use windows::Win32::System::Threading::GetCurrentThreadId; use windows::Win32::System::Threading::GetCurrentThreadId;
use windows::core::{PCWSTR, w};
use windows::Win32::UI::WindowsAndMessaging::{ use windows::Win32::UI::WindowsAndMessaging::{
CallNextHookEx, CreateWindowExW, DispatchMessageW, GetMessageW, PostThreadMessageW, CallNextHookEx, CreateWindowExW, DispatchMessageW, EDD_GET_DEVICE_INTERFACE_NAME, GetMessageW,
RegisterClassW, SetWindowsHookExW, TranslateMessage, EDD_GET_DEVICE_INTERFACE_NAME, HOOKPROC, HOOKPROC, KBDLLHOOKSTRUCT, LLKHF_EXTENDED, MSG, MSLLHOOKSTRUCT, PostThreadMessageW,
KBDLLHOOKSTRUCT, LLKHF_EXTENDED, MSG, MSLLHOOKSTRUCT, WH_KEYBOARD_LL, WH_MOUSE_LL, RegisterClassW, SetWindowsHookExW, TranslateMessage, WH_KEYBOARD_LL, WH_MOUSE_LL, WINDOW_STYLE,
WINDOW_STYLE, WM_DISPLAYCHANGE, WM_KEYDOWN, WM_KEYUP, WM_LBUTTONDOWN, WM_LBUTTONUP, WM_DISPLAYCHANGE, WM_KEYDOWN, WM_KEYUP, WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MBUTTONDOWN,
WM_MBUTTONDOWN, WM_MBUTTONUP, WM_MOUSEHWHEEL, WM_MOUSEMOVE, WM_MOUSEWHEEL, WM_RBUTTONDOWN, WM_MBUTTONUP, WM_MOUSEHWHEEL, WM_MOUSEMOVE, WM_MOUSEWHEEL, WM_RBUTTONDOWN, WM_RBUTTONUP,
WM_RBUTTONUP, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_USER, WM_XBUTTONDOWN, WM_XBUTTONUP, WNDCLASSW, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_USER, WM_XBUTTONDOWN, WM_XBUTTONUP, WNDCLASSW, WNDPROC,
WNDPROC,
}; };
use input_event::{ use input_event::{
BTN_BACK, BTN_FORWARD, BTN_LEFT, BTN_MIDDLE, BTN_RIGHT, Event, KeyboardEvent, PointerEvent,
scancode::{self, Linux}, scancode::{self, Linux},
Event, KeyboardEvent, PointerEvent, BTN_BACK, BTN_FORWARD, BTN_LEFT, BTN_MIDDLE, BTN_RIGHT,
}; };
use super::{display_util, CaptureEvent, Position}; use super::{CaptureEvent, Position, display_util};
pub(crate) struct EventThread { pub(crate) struct EventThread {
request_buffer: Arc<Mutex<Vec<ClientUpdate>>>, request_buffer: Arc<Mutex<Vec<ClientUpdate>>>,

View File

@@ -3,7 +3,7 @@ use std::task::Poll;
use async_trait::async_trait; use async_trait::async_trait;
use futures_core::Stream; use futures_core::Stream;
use super::{error::X11InputCaptureCreationError, Capture, CaptureError, CaptureEvent, Position}; use super::{Capture, CaptureError, CaptureEvent, Position, error::X11InputCaptureCreationError};
pub struct X11InputCapture {} pub struct X11InputCapture {}

View File

@@ -11,15 +11,15 @@ pub enum InputEmulationError {
any(feature = "remote_desktop_portal", feature = "libei"), any(feature = "remote_desktop_portal", feature = "libei"),
not(target_os = "macos") not(target_os = "macos")
))] ))]
use ashpd::{desktop::ResponseError, Error::Response}; use ashpd::{Error::Response, desktop::ResponseError};
use std::io; use std::io;
use thiserror::Error; use thiserror::Error;
#[cfg(all(unix, feature = "wlroots", not(target_os = "macos")))] #[cfg(all(unix, feature = "wlroots", not(target_os = "macos")))]
use wayland_client::{ use wayland_client::{
ConnectError, DispatchError,
backend::WaylandError, backend::WaylandError,
globals::{BindError, GlobalError}, globals::{BindError, GlobalError},
ConnectError, DispatchError,
}; };
#[derive(Debug, Error)] #[derive(Debug, Error)]

View File

@@ -1,25 +1,25 @@
use futures::{future, StreamExt}; use futures::{StreamExt, future};
use std::{ use std::{
io, io,
os::{fd::OwnedFd, unix::net::UnixStream}, os::{fd::OwnedFd, unix::net::UnixStream},
sync::{ sync::{
atomic::{AtomicBool, Ordering},
Arc, Mutex, RwLock, Arc, Mutex, RwLock,
atomic::{AtomicBool, Ordering},
}, },
time::{SystemTime, UNIX_EPOCH}, time::{SystemTime, UNIX_EPOCH},
}; };
use tokio::task::JoinHandle; use tokio::task::JoinHandle;
use ashpd::desktop::{ use ashpd::desktop::{
remote_desktop::{DeviceType, RemoteDesktop},
PersistMode, Session, PersistMode, Session,
remote_desktop::{DeviceType, RemoteDesktop},
}; };
use async_trait::async_trait; use async_trait::async_trait;
use reis::{ use reis::{
ei::{ ei::{
self, button::ButtonState, handshake::ContextType, keyboard::KeyState, Button, Keyboard, self, Button, Keyboard, Pointer, Scroll, button::ButtonState, handshake::ContextType,
Pointer, Scroll, keyboard::KeyState,
}, },
event::{self, Connection, DeviceCapability, DeviceEvent, EiEvent, SeatEvent}, event::{self, Connection, DeviceCapability, DeviceEvent, EiEvent, SeatEvent},
tokio::EiConvertEventStream, tokio::EiConvertEventStream,
@@ -29,7 +29,7 @@ use input_event::{Event, KeyboardEvent, PointerEvent};
use crate::error::EmulationError; use crate::error::EmulationError;
use super::{error::LibeiEmulationCreationError, Emulation, EmulationHandle}; use super::{Emulation, EmulationHandle, error::LibeiEmulationCreationError};
#[derive(Clone, Default)] #[derive(Clone, Default)]
struct Devices { struct Devices {
@@ -50,8 +50,8 @@ pub(crate) struct LibeiEmulation<'a> {
session: Session<'a, RemoteDesktop<'a>>, session: Session<'a, RemoteDesktop<'a>>,
} }
async fn get_ei_fd<'a>( async fn get_ei_fd<'a>()
) -> Result<(RemoteDesktop<'a>, Session<'a, RemoteDesktop<'a>>, OwnedFd), ashpd::Error> { -> Result<(RemoteDesktop<'a>, Session<'a, RemoteDesktop<'a>>, OwnedFd), ashpd::Error> {
let remote_desktop = RemoteDesktop::new().await?; let remote_desktop = RemoteDesktop::new().await?;
log::debug!("creating session ..."); log::debug!("creating session ...");

View File

@@ -1,4 +1,4 @@
use super::{error::EmulationError, Emulation, EmulationHandle}; use super::{Emulation, EmulationHandle, error::EmulationError};
use async_trait::async_trait; use async_trait::async_trait;
use bitflags::bitflags; use bitflags::bitflags;
use core_graphics::base::CGFloat; use core_graphics::base::CGFloat;
@@ -10,7 +10,7 @@ use core_graphics::event::{
ScrollEventUnit, ScrollEventUnit,
}; };
use core_graphics::event_source::{CGEventSource, CGEventSourceStateID}; use core_graphics::event_source::{CGEventSource, CGEventSourceStateID};
use input_event::{scancode, Event, KeyboardEvent, PointerEvent, BTN_LEFT, BTN_MIDDLE, BTN_RIGHT}; use input_event::{BTN_LEFT, BTN_MIDDLE, BTN_RIGHT, Event, KeyboardEvent, PointerEvent, scancode};
use keycode::{KeyMap, KeyMapping}; use keycode::{KeyMap, KeyMapping};
use std::cell::Cell; use std::cell::Cell;
use std::ops::{Index, IndexMut}; use std::ops::{Index, IndexMut};

View File

@@ -1,22 +1,22 @@
use super::error::{EmulationError, WindowsEmulationCreationError}; use super::error::{EmulationError, WindowsEmulationCreationError};
use input_event::{ use input_event::{
scancode, Event, KeyboardEvent, PointerEvent, BTN_BACK, BTN_FORWARD, BTN_LEFT, BTN_MIDDLE, BTN_BACK, BTN_FORWARD, BTN_LEFT, BTN_MIDDLE, BTN_RIGHT, Event, KeyboardEvent, PointerEvent,
BTN_RIGHT, scancode,
}; };
use async_trait::async_trait; use async_trait::async_trait;
use std::ops::BitOrAssign; use std::ops::BitOrAssign;
use std::time::Duration; use std::time::Duration;
use tokio::task::AbortHandle; use tokio::task::AbortHandle;
use windows::Win32::UI::Input::KeyboardAndMouse::{
SendInput, INPUT_0, KEYEVENTF_EXTENDEDKEY, MOUSEEVENTF_XDOWN, MOUSEEVENTF_XUP,
};
use windows::Win32::UI::Input::KeyboardAndMouse::{ use windows::Win32::UI::Input::KeyboardAndMouse::{
INPUT, INPUT_KEYBOARD, INPUT_MOUSE, KEYBDINPUT, KEYEVENTF_KEYUP, KEYEVENTF_SCANCODE, INPUT, INPUT_KEYBOARD, INPUT_MOUSE, KEYBDINPUT, KEYEVENTF_KEYUP, KEYEVENTF_SCANCODE,
MOUSEEVENTF_HWHEEL, MOUSEEVENTF_LEFTDOWN, MOUSEEVENTF_LEFTUP, MOUSEEVENTF_MIDDLEDOWN, MOUSEEVENTF_HWHEEL, MOUSEEVENTF_LEFTDOWN, MOUSEEVENTF_LEFTUP, MOUSEEVENTF_MIDDLEDOWN,
MOUSEEVENTF_MIDDLEUP, MOUSEEVENTF_MOVE, MOUSEEVENTF_RIGHTDOWN, MOUSEEVENTF_RIGHTUP, MOUSEEVENTF_MIDDLEUP, MOUSEEVENTF_MOVE, MOUSEEVENTF_RIGHTDOWN, MOUSEEVENTF_RIGHTUP,
MOUSEEVENTF_WHEEL, MOUSEINPUT, MOUSEEVENTF_WHEEL, MOUSEINPUT,
}; };
use windows::Win32::UI::Input::KeyboardAndMouse::{
INPUT_0, KEYEVENTF_EXTENDEDKEY, MOUSEEVENTF_XDOWN, MOUSEEVENTF_XUP, SendInput,
};
use windows::Win32::UI::WindowsAndMessaging::{XBUTTON1, XBUTTON2}; use windows::Win32::UI::WindowsAndMessaging::{XBUTTON1, XBUTTON2};
use super::{Emulation, EmulationHandle}; use super::{Emulation, EmulationHandle};

View File

@@ -1,6 +1,6 @@
use crate::error::EmulationError; use crate::error::EmulationError;
use super::{error::WlrootsEmulationCreationError, Emulation}; use super::{Emulation, error::WlrootsEmulationCreationError};
use async_trait::async_trait; use async_trait::async_trait;
use bitflags::bitflags; use bitflags::bitflags;
use std::collections::HashMap; use std::collections::HashMap;
@@ -8,8 +8,8 @@ use std::io;
use std::os::fd::{AsFd, OwnedFd}; use std::os::fd::{AsFd, OwnedFd};
use std::sync::{Arc, Mutex}; use std::sync::{Arc, Mutex};
use std::time::{SystemTime, UNIX_EPOCH}; use std::time::{SystemTime, UNIX_EPOCH};
use wayland_client::backend::WaylandError;
use wayland_client::WEnum; use wayland_client::WEnum;
use wayland_client::backend::WaylandError;
use wayland_client::protocol::wl_keyboard::{self, WlKeyboard}; use wayland_client::protocol::wl_keyboard::{self, WlKeyboard};
use wayland_client::protocol::wl_pointer::{Axis, AxisSource, ButtonState}; use wayland_client::protocol::wl_pointer::{Axis, AxisSource, ButtonState};
@@ -25,16 +25,15 @@ use wayland_protocols_misc::zwp_virtual_keyboard_v1::client::{
}; };
use wayland_client::{ use wayland_client::{
delegate_noop, Connection, Dispatch, EventQueue, QueueHandle, delegate_noop,
globals::{registry_queue_init, GlobalListContents}, globals::{GlobalListContents, registry_queue_init},
protocol::{wl_registry, wl_seat}, protocol::{wl_registry, wl_seat},
Connection, Dispatch, EventQueue, QueueHandle,
}; };
use input_event::{scancode, Event, KeyboardEvent, PointerEvent}; use input_event::{Event, KeyboardEvent, PointerEvent, scancode};
use super::error::WaylandBindError;
use super::EmulationHandle; use super::EmulationHandle;
use super::error::WaylandBindError;
struct State { struct State {
keymap: Option<(u32, OwnedFd, u32)>, keymap: Option<(u32, OwnedFd, u32)>,

View File

@@ -6,12 +6,12 @@ use x11::{
}; };
use input_event::{ use input_event::{
Event, KeyboardEvent, PointerEvent, BTN_BACK, BTN_FORWARD, BTN_LEFT, BTN_MIDDLE, BTN_RIGHT, BTN_BACK, BTN_FORWARD, BTN_LEFT, BTN_MIDDLE, BTN_RIGHT, Event, KeyboardEvent, PointerEvent,
}; };
use crate::error::EmulationError; use crate::error::EmulationError;
use super::{error::X11EmulationCreationError, Emulation, EmulationHandle}; use super::{Emulation, EmulationHandle, error::X11EmulationCreationError};
pub(crate) struct X11Emulation { pub(crate) struct X11Emulation {
display: *mut xlib::Display, display: *mut xlib::Display,

View File

@@ -1,7 +1,7 @@
use ashpd::{ use ashpd::{
desktop::{ desktop::{
remote_desktop::{Axis, DeviceType, KeyState, RemoteDesktop},
PersistMode, Session, PersistMode, Session,
remote_desktop::{Axis, DeviceType, KeyState, RemoteDesktop},
}, },
zbus::AsyncDrop, zbus::AsyncDrop,
}; };
@@ -15,7 +15,7 @@ use input_event::{
use crate::error::EmulationError; use crate::error::EmulationError;
use super::{error::XdpEmulationCreationError, Emulation, EmulationHandle}; use super::{Emulation, EmulationHandle, error::XdpEmulationCreationError};
pub(crate) struct DesktopPortalEmulation<'a> { pub(crate) struct DesktopPortalEmulation<'a> {
proxy: RemoteDesktop<'a>, proxy: RemoteDesktop<'a>,

View File

@@ -5,8 +5,8 @@ use std::{net::IpAddr, time::Duration};
use thiserror::Error; use thiserror::Error;
use lan_mouse_ipc::{ use lan_mouse_ipc::{
connect_async, ClientHandle, ConnectionError, FrontendEvent, FrontendRequest, IpcError, ClientHandle, ConnectionError, FrontendEvent, FrontendRequest, IpcError, Position,
Position, connect_async,
}; };
#[derive(Debug, Error)] #[derive(Debug, Error)]

View File

@@ -4,8 +4,9 @@ use adw::prelude::*;
use adw::subclass::prelude::*; use adw::subclass::prelude::*;
use glib::subclass::InitializingObject; use glib::subclass::InitializingObject;
use gtk::{ use gtk::{
Button, CompositeTemplate, Label,
glib::{self, subclass::Signal}, glib::{self, subclass::Signal},
template_callbacks, Button, CompositeTemplate, Label, template_callbacks,
}; };
#[derive(CompositeTemplate, Default)] #[derive(CompositeTemplate, Default)]

View File

@@ -4,7 +4,7 @@ use adw::prelude::*;
use adw::subclass::prelude::*; use adw::subclass::prelude::*;
use gtk::glib::{self, Object}; use gtk::glib::{self, Object};
use lan_mouse_ipc::{Position, DEFAULT_PORT}; use lan_mouse_ipc::{DEFAULT_PORT, Position};
use super::ClientObject; use super::ClientObject;

View File

@@ -1,11 +1,11 @@
use std::cell::RefCell; use std::cell::RefCell;
use adw::subclass::prelude::*; use adw::subclass::prelude::*;
use adw::{prelude::*, ActionRow, ComboRow}; use adw::{ActionRow, ComboRow, prelude::*};
use glib::{subclass::InitializingObject, Binding}; use glib::{Binding, subclass::InitializingObject};
use gtk::glib::subclass::Signal; use gtk::glib::subclass::Signal;
use gtk::glib::{clone, SignalHandlerId}; use gtk::glib::{SignalHandlerId, clone};
use gtk::{glib, Button, CompositeTemplate, Entry, Switch}; use gtk::{Button, CompositeTemplate, Entry, Switch, glib};
use lan_mouse_ipc::Position; use lan_mouse_ipc::Position;
use std::sync::OnceLock; use std::sync::OnceLock;

View File

@@ -4,8 +4,9 @@ use adw::prelude::*;
use adw::subclass::prelude::*; use adw::subclass::prelude::*;
use glib::subclass::InitializingObject; use glib::subclass::InitializingObject;
use gtk::{ use gtk::{
Button, CompositeTemplate, Text,
glib::{self, subclass::Signal}, glib::{self, subclass::Signal},
template_callbacks, Button, CompositeTemplate, Text, template_callbacks,
}; };
#[derive(CompositeTemplate, Default)] #[derive(CompositeTemplate, Default)]
@@ -51,9 +52,11 @@ impl ObjectImpl for FingerprintWindow {
fn signals() -> &'static [Signal] { fn signals() -> &'static [Signal] {
static SIGNALS: OnceLock<Vec<Signal>> = OnceLock::new(); static SIGNALS: OnceLock<Vec<Signal>> = OnceLock::new();
SIGNALS.get_or_init(|| { SIGNALS.get_or_init(|| {
vec![Signal::builder("confirm-clicked") vec![
.param_types([String::static_type(), String::static_type()]) Signal::builder("confirm-clicked")
.build()] .param_types([String::static_type(), String::static_type()])
.build(),
]
}) })
} }
} }

View File

@@ -1,11 +1,11 @@
use std::cell::RefCell; use std::cell::RefCell;
use adw::subclass::prelude::*; use adw::subclass::prelude::*;
use adw::{prelude::*, ActionRow}; use adw::{ActionRow, prelude::*};
use glib::{subclass::InitializingObject, Binding}; use glib::{Binding, subclass::InitializingObject};
use gtk::glib::clone; use gtk::glib::clone;
use gtk::glib::subclass::Signal; use gtk::glib::subclass::Signal;
use gtk::{glib, Button, CompositeTemplate}; use gtk::{Button, CompositeTemplate, glib};
use std::sync::OnceLock; use std::sync::OnceLock;
#[derive(CompositeTemplate, Default)] #[derive(CompositeTemplate, Default)]

View File

@@ -13,7 +13,7 @@ use window::Window;
use lan_mouse_ipc::FrontendEvent; use lan_mouse_ipc::FrontendEvent;
use adw::Application; use adw::Application;
use gtk::{gdk::Display, glib::clone, prelude::*, IconTheme}; use gtk::{IconTheme, gdk::Display, glib::clone, prelude::*};
use gtk::{gio, glib, prelude::ApplicationExt}; use gtk::{gio, glib, prelude::ApplicationExt};
use self::client_object::ClientObject; use self::client_object::ClientObject;

View File

@@ -4,16 +4,15 @@ use std::collections::HashMap;
use adw::prelude::*; use adw::prelude::*;
use adw::subclass::prelude::*; use adw::subclass::prelude::*;
use glib::{clone, Object}; use glib::{Object, clone};
use gtk::{ use gtk::{
gio, NoSelection, gio,
glib::{self, closure_local}, glib::{self, closure_local},
NoSelection,
}; };
use lan_mouse_ipc::{ use lan_mouse_ipc::{
ClientConfig, ClientHandle, ClientState, FrontendRequest, FrontendRequestWriter, Position, ClientConfig, ClientHandle, ClientState, DEFAULT_PORT, FrontendRequest, FrontendRequestWriter,
DEFAULT_PORT, Position,
}; };
use crate::{ use crate::{

View File

@@ -1,12 +1,12 @@
use std::cell::{Cell, RefCell}; use std::cell::{Cell, RefCell};
use adw::subclass::prelude::*; use adw::subclass::prelude::*;
use adw::{prelude::*, ActionRow, PreferencesGroup, ToastOverlay}; use adw::{ActionRow, PreferencesGroup, ToastOverlay, prelude::*};
use glib::subclass::InitializingObject; use glib::subclass::InitializingObject;
use gtk::glib::clone; use gtk::glib::clone;
use gtk::{gdk, gio, glib, Button, CompositeTemplate, Entry, Image, Label, ListBox}; use gtk::{Button, CompositeTemplate, Entry, Image, Label, ListBox, gdk, gio, glib};
use lan_mouse_ipc::{FrontendRequestWriter, DEFAULT_PORT}; use lan_mouse_ipc::{DEFAULT_PORT, FrontendRequestWriter};
use crate::authorization_window::AuthorizationWindow; use crate::authorization_window::AuthorizationWindow;

View File

@@ -1,7 +1,7 @@
use crate::{ConnectionError, FrontendEvent, FrontendRequest, IpcError}; use crate::{ConnectionError, FrontendEvent, FrontendRequest, IpcError};
use std::{ use std::{
cmp::min, cmp::min,
io::{self, prelude::*, BufReader, LineWriter, Lines}, io::{self, BufReader, LineWriter, Lines, prelude::*},
thread, thread,
time::Duration, time::Duration,
}; };

View File

@@ -1,7 +1,7 @@
use crate::{ConnectionError, FrontendEvent, FrontendRequest, IpcError}; use crate::{ConnectionError, FrontendEvent, FrontendRequest, IpcError};
use std::{ use std::{
cmp::min, cmp::min,
task::{ready, Poll}, task::{Poll, ready},
time::Duration, time::Duration,
}; };

View File

@@ -20,8 +20,8 @@ mod connect;
mod connect_async; mod connect_async;
mod listen; mod listen;
pub use connect::{connect, FrontendEventReader, FrontendRequestWriter}; pub use connect::{FrontendEventReader, FrontendRequestWriter, connect};
pub use connect_async::{connect_async, AsyncFrontendEventReader, AsyncFrontendRequestWriter}; pub use connect_async::{AsyncFrontendEventReader, AsyncFrontendRequestWriter, connect_async};
pub use listen::AsyncFrontendListener; pub use listen::AsyncFrontendListener;
#[derive(Debug, Error)] #[derive(Debug, Error)]

View File

@@ -1,4 +1,4 @@
use futures::{stream::SelectAll, Stream, StreamExt}; use futures::{Stream, StreamExt, stream::SelectAll};
#[cfg(unix)] #[cfg(unix)]
use std::path::PathBuf; use std::path::PathBuf;
use std::{ use std::{
@@ -63,7 +63,7 @@ impl AsyncFrontendListener {
Ok(ls) => ls, Ok(ls) => ls,
// some other lan-mouse instance has bound the socket in the meantime // some other lan-mouse instance has bound the socket in the meantime
Err(e) if e.kind() == ErrorKind::AddrInUse => { Err(e) if e.kind() == ErrorKind::AddrInUse => {
return Err(IpcListenerCreationError::AlreadyRunning) return Err(IpcListenerCreationError::AlreadyRunning);
} }
Err(e) => return Err(IpcListenerCreationError::Bind(e)), Err(e) => return Err(IpcListenerCreationError::Bind(e)),
}; };
@@ -75,7 +75,7 @@ impl AsyncFrontendListener {
Ok(ls) => ls, Ok(ls) => ls,
// some other lan-mouse instance has bound the socket in the meantime // some other lan-mouse instance has bound the socket in the meantime
Err(e) if e.kind() == ErrorKind::AddrInUse => { Err(e) if e.kind() == ErrorKind::AddrInUse => {
return Err(IpcListenerCreationError::AlreadyRunning) return Err(IpcListenerCreationError::AlreadyRunning);
} }
Err(e) => return Err(IpcListenerCreationError::Bind(e)), Err(e) => return Err(IpcListenerCreationError::Bind(e)),
}; };

View File

@@ -10,8 +10,8 @@ use input_capture::{
}; };
use input_event::scancode; use input_event::scancode;
use lan_mouse_proto::ProtoEvent; use lan_mouse_proto::ProtoEvent;
use local_channel::mpsc::{channel, Receiver, Sender}; use local_channel::mpsc::{Receiver, Sender, channel};
use tokio::task::{spawn_local, JoinHandle}; use tokio::task::{JoinHandle, spawn_local};
use tokio_util::sync::CancellationToken; use tokio_util::sync::CancellationToken;
use crate::connect::LanMouseConnection; use crate::connect::LanMouseConnection;

View File

@@ -13,7 +13,7 @@ use thiserror::Error;
use toml; use toml;
use lan_mouse_cli::CliArgs; use lan_mouse_cli::CliArgs;
use lan_mouse_ipc::{Position, DEFAULT_PORT}; use lan_mouse_ipc::{DEFAULT_PORT, Position};
use input_event::scancode::{ use input_event::scancode::{
self, self,

View File

@@ -1,7 +1,7 @@
use crate::client::ClientManager; use crate::client::ClientManager;
use lan_mouse_ipc::{ClientHandle, DEFAULT_PORT}; use lan_mouse_ipc::{ClientHandle, DEFAULT_PORT};
use lan_mouse_proto::{ProtoEvent, MAX_EVENT_SIZE}; use lan_mouse_proto::{MAX_EVENT_SIZE, ProtoEvent};
use local_channel::mpsc::{channel, Receiver, Sender}; use local_channel::mpsc::{Receiver, Sender, channel};
use std::{ use std::{
cell::RefCell, cell::RefCell,
collections::{HashMap, HashSet}, collections::{HashMap, HashSet},
@@ -15,7 +15,7 @@ use thiserror::Error;
use tokio::{ use tokio::{
net::UdpSocket, net::UdpSocket,
sync::Mutex, sync::Mutex,
task::{spawn_local, JoinSet}, task::{JoinSet, spawn_local},
}; };
use webrtc_dtls::{ use webrtc_dtls::{
config::{Config, ExtendedMasterSecretType}, config::{Config, ExtendedMasterSecretType},

View File

@@ -1,7 +1,7 @@
use std::{collections::HashMap, net::IpAddr}; use std::{collections::HashMap, net::IpAddr};
use local_channel::mpsc::{channel, Receiver, Sender}; use local_channel::mpsc::{Receiver, Sender, channel};
use tokio::task::{spawn_local, JoinHandle}; use tokio::task::{JoinHandle, spawn_local};
use hickory_resolver::{ResolveError, TokioResolver}; use hickory_resolver::{ResolveError, TokioResolver};
use tokio_util::sync::CancellationToken; use tokio_util::sync::CancellationToken;

View File

@@ -3,7 +3,7 @@ use futures::StreamExt;
use input_emulation::{EmulationHandle, InputEmulation, InputEmulationError}; use input_emulation::{EmulationHandle, InputEmulation, InputEmulationError};
use input_event::Event; use input_event::Event;
use lan_mouse_proto::{Position, ProtoEvent}; use lan_mouse_proto::{Position, ProtoEvent};
use local_channel::mpsc::{channel, Receiver, Sender}; use local_channel::mpsc::{Receiver, Sender, channel};
use std::{ use std::{
cell::Cell, cell::Cell,
collections::HashMap, collections::HashMap,
@@ -13,7 +13,7 @@ use std::{
}; };
use tokio::{ use tokio::{
select, select,
task::{spawn_local, JoinHandle}, task::{JoinHandle, spawn_local},
}; };
/// emulation handling events received from a listener /// emulation handling events received from a listener

View File

@@ -1,6 +1,6 @@
use futures::{Stream, StreamExt}; use futures::{Stream, StreamExt};
use lan_mouse_proto::{ProtoEvent, MAX_EVENT_SIZE}; use lan_mouse_proto::{MAX_EVENT_SIZE, ProtoEvent};
use local_channel::mpsc::{channel, Receiver, Sender}; use local_channel::mpsc::{Receiver, Sender, channel};
use rustls::pki_types::CertificateDer; use rustls::pki_types::CertificateDer;
use std::{ use std::{
collections::{HashMap, VecDeque}, collections::{HashMap, VecDeque},
@@ -12,7 +12,7 @@ use std::{
use thiserror::Error; use thiserror::Error;
use tokio::{ use tokio::{
sync::Mutex as AsyncMutex, sync::Mutex as AsyncMutex,
task::{spawn_local, JoinHandle}, task::{JoinHandle, spawn_local},
}; };
use webrtc_dtls::{ use webrtc_dtls::{
config::{ClientAuthType::RequireAnyClientCert, Config, ExtendedMasterSecretType}, config::{ClientAuthType::RequireAnyClientCert, Config, ExtendedMasterSecretType},
@@ -20,7 +20,7 @@ use webrtc_dtls::{
crypto::Certificate, crypto::Certificate,
listener::listen, listener::listen,
}; };
use webrtc_util::{conn::Listener, Conn, Error}; use webrtc_util::{Conn, Error, conn::Listener};
use crate::crypto; use crate::crypto;