google-labs-jules[bot] 4698089f2a Add SpaceMouse support for Linux via libspnav
This change introduces support for 3Dconnexion SpaceMouse devices on Linux
within the 3DConnexion plugin.

Key changes:
-   Added `LinuxSpacenavClient.py`, which uses `ctypes` to interface with the
    system-provided `libspnav.so.0` library. This client handles opening a
    connection to the `spacenavd` daemon and polling for motion and button
    events.
-   Modified `NavlibClient.py` to include platform detection. On Linux, it
    now uses `LinuxSpacenavClient` for device input. On Windows and macOS,
    it continues to use the existing `pynavlib`.
-   Updated the plugin initialization in `plugins/3DConnexion/__init__.py`
    to gracefully handle cases where `libspnav.so.0` might be missing or
    `spacenavd` is not accessible on Linux, disabling the plugin in such
    scenarios.
-   The core camera manipulation logic in `NavlibClient.py` has been adapted
    to accept transformation matrices from either `pynavlib` or the new
    Linux client, aiming for consistent behavior.
-   Placeholder adaptations for some `pynavlib`-specific methods have been
    added for the Linux path, returning `None` or basic Python types where
    `pynav.*` types were previously used.

This implementation relies on you having `spacenavd` (version 0.6 or newer recommended)
installed and running, along with `libspnav0` (or equivalent).

Testing for this feature is currently manual, involving checking device
response for camera manipulation (pan, zoom, rotate) within Cura on a
Linux environment with a configured SpaceMouse.

Output:
2025-05-23 14:25:32 +00:00
2025-05-23 10:07:02 +02:00
2025-04-24 09:55:23 +02:00
2023-06-02 11:56:40 +02:00
2024-01-11 13:08:55 +01:00
2023-08-15 16:10:04 +02:00
2022-09-08 13:15:37 +02:00
2022-03-23 09:51:36 +01:00


Badge Issues Badge PullRequests Badge Closed

Badge Size Badge License Badge Contributors

Badge Test Badge Conan Badge Downloads

Logo

Ultimaker Cura

State-of-the-art slicer app to prepare
your 3D models for your 3D printer.

With hundreds of settings & community-managed print profiles,
Ultimaker Cura is sure to lead your next project to a success.

Contribute Printer Profiles? -- Please look here first.
Contribute Translations? -- Please look here first.


Button Building Button Plugins Button Machines

Button Report Button Settings Button Localize

Button Libraries



Shows cura open on the preview screen with a large benchy model in the center.

OpenSSF Scorecard


Description
No description provided
Readme Cite this repository 1.8 GiB
Languages
Python 71.3%
QML 25.6%
GLSL 1.4%
Rich Text Format 0.9%
Jinja 0.5%
Other 0.1%