mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-02-17 14:07:28 +08:00
* feat: Add relative mouse mode - Add "Relative Mouse Mode" toggle in desktop toolbar and bind to InputModel - Implement relative mouse movement path: Flutter pointer deltas -> `type: move_relative` -> new `MOUSE_TYPE_MOVE_RELATIVE` in Rust - In server input service, simulate relative movement via Enigo and keep latest cursor position in sync - Track pointer-lock center in Flutter (local widget + screen coordinates) and re-center OS cursor after each relative move - Update pointer-lock center on window move/resize/restore/maximize and when remote display geometry changes - Hide local cursor when relative mouse mode is active (both Flutter cursor and OS cursor), restore on leave/disable - On Windows, clip OS cursor to the window rect while in relative mode and release clip when leaving/turning off - Implement platform helpers: `get_cursor_pos`, `set_cursor_pos`, `show_cursor`, `clip_cursor` (no-op clip/hide on Linux for now) - Add keyboard shortcut Ctrl+Alt+Shift+M to toggle relative mode (enabled by default, works on all platforms) - Remove `enable-relative-mouse-shortcut` config option - shortcut is now always available when keyboard permission is granted - Handle window blur/focus/minimize events to properly release/restore cursor constraints - Add MOUSE_TYPE_MASK constant and unit tests for mouse event constants Note: Relative mouse mode state is NOT persisted to config (session-only). Note: On Linux, show_cursor and clip_cursor are no-ops; cursor hiding is handled by Flutter side. Signed-off-by: fufesou <linlong1266@gmail.com> * feat(mouse): relative mouse mode, exit hint Signed-off-by: fufesou <linlong1266@gmail.com> * refact(relative mouse): shortcut Signed-off-by: fufesou <linlong1266@gmail.com> --------- Signed-off-by: fufesou <linlong1266@gmail.com>
97 lines
2.6 KiB
RPMSpec
97 lines
2.6 KiB
RPMSpec
Name: rustdesk
|
|
Version: 1.4.5
|
|
Release: 0
|
|
Summary: RPM package
|
|
License: GPL-3.0
|
|
URL: https://rustdesk.com
|
|
Vendor: rustdesk <info@rustdesk.com>
|
|
Requires: gtk3 libxcb libxdo libXfixes alsa-lib libva2 pam gstreamer1-plugins-base
|
|
Recommends: libayatana-appindicator-gtk3
|
|
|
|
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/
|
|
|
|
%description
|
|
The best open-source remote desktop client software, written in Rust.
|
|
|
|
%prep
|
|
# we have no source, so nothing here
|
|
|
|
%build
|
|
# we have no source, so nothing here
|
|
|
|
%global __python %{__python3}
|
|
|
|
%install
|
|
mkdir -p %{buildroot}/usr/bin/
|
|
mkdir -p %{buildroot}/usr/share/rustdesk/
|
|
mkdir -p %{buildroot}/usr/share/rustdesk/files/
|
|
mkdir -p %{buildroot}/usr/share/icons/hicolor/256x256/apps/
|
|
mkdir -p %{buildroot}/usr/share/icons/hicolor/scalable/apps/
|
|
install -m 755 $HBB/target/release/rustdesk %{buildroot}/usr/bin/rustdesk
|
|
install $HBB/libsciter-gtk.so %{buildroot}/usr/share/rustdesk/libsciter-gtk.so
|
|
install $HBB/res/rustdesk.service %{buildroot}/usr/share/rustdesk/files/
|
|
install $HBB/res/128x128@2x.png %{buildroot}/usr/share/icons/hicolor/256x256/apps/rustdesk.png
|
|
install $HBB/res/scalable.svg %{buildroot}/usr/share/icons/hicolor/scalable/apps/rustdesk.svg
|
|
install $HBB/res/rustdesk.desktop %{buildroot}/usr/share/rustdesk/files/
|
|
install $HBB/res/rustdesk-link.desktop %{buildroot}/usr/share/rustdesk/files/
|
|
|
|
%files
|
|
/usr/bin/rustdesk
|
|
/usr/share/rustdesk/libsciter-gtk.so
|
|
/usr/share/rustdesk/files/rustdesk.service
|
|
/usr/share/icons/hicolor/256x256/apps/rustdesk.png
|
|
/usr/share/icons/hicolor/scalable/apps/rustdesk.svg
|
|
/usr/share/rustdesk/files/rustdesk.desktop
|
|
/usr/share/rustdesk/files/rustdesk-link.desktop
|
|
/usr/share/rustdesk/files/__pycache__/*
|
|
|
|
%changelog
|
|
# let's skip this for now
|
|
|
|
%pre
|
|
# can do something for centos7
|
|
case "$1" in
|
|
1)
|
|
# for install
|
|
;;
|
|
2)
|
|
# for upgrade
|
|
systemctl stop rustdesk || true
|
|
;;
|
|
esac
|
|
|
|
%post
|
|
cp /usr/share/rustdesk/files/rustdesk.service /etc/systemd/system/rustdesk.service
|
|
cp /usr/share/rustdesk/files/rustdesk.desktop /usr/share/applications/
|
|
cp /usr/share/rustdesk/files/rustdesk-link.desktop /usr/share/applications/
|
|
systemctl daemon-reload
|
|
systemctl enable rustdesk
|
|
systemctl start rustdesk
|
|
update-desktop-database
|
|
|
|
%preun
|
|
case "$1" in
|
|
0)
|
|
# for uninstall
|
|
systemctl stop rustdesk || true
|
|
systemctl disable rustdesk || true
|
|
rm /etc/systemd/system/rustdesk.service || true
|
|
;;
|
|
1)
|
|
# for upgrade
|
|
;;
|
|
esac
|
|
|
|
%postun
|
|
case "$1" in
|
|
0)
|
|
# for uninstall
|
|
rm /usr/share/applications/rustdesk.desktop || true
|
|
rm /usr/share/applications/rustdesk-link.desktop || true
|
|
update-desktop-database
|
|
;;
|
|
1)
|
|
# for upgrade
|
|
;;
|
|
esac
|