3D printer / slicing GUI built on top of the Uranium framework
Find a file
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
.github Disable nightly builds 2025-05-23 10:07:02 +02:00
.run_templates Moved pycharm_targets to conandata 2022-08-11 18:01:45 +02:00
cura Export project settings into BambuLab 3MF 2025-04-29 11:28:56 +02:00
licenses_thirdparty rename due to not-really-a-typo 2025-02-19 13:28:26 +01:00
packaging win/pacakging -- Start menu-macro is only needed for when in folder? 2025-04-22 10:24:06 +02:00
plugins Add SpaceMouse support for Linux via libspnav 2025-05-23 14:25:32 +00:00
printer-linter Use yaml.safe_load instead of yaml.load 2025-03-14 11:38:45 +01:00
resources Merge pull request from Ultimaker/CURA-12074_introduce-bambu-printers 2025-05-02 13:08:46 +02:00
scripts Merge branch 'main' into CURA-7435_3DConnexion 2025-02-13 11:36:06 +01:00
tests Add unit test for single-line statement 2025-02-26 15:02:22 +01:00
.gitignore Make Conan/Python installs available for whole project and not just the AboutDialog 2023-10-19 18:39:08 +02:00
.printer-linter Disable 'temp should be defined in material' warning for now. 2024-07-02 13:17:21 +02:00
.pylintrc Fix regex for private & long functions 2020-01-10 17:43:40 +01:00
CITATION.cff Update version & releasedate in CITATION.cff 2023-08-15 16:51:50 +02:00
CMakeLists.txt Add CMakeLists.txt back for translation scripts. 2022-09-06 10:25:14 +02:00
conandata.yml Bump pySavitar version 2025-04-24 09:55:23 +02:00
conanfile.py Fix color-switching code which only worked until 27/03 2025-03-28 14:14:27 +01:00
CONTRIBUTING.md Update CONTRIBUTING.md 2023-06-02 11:56:40 +02:00
cura-logo-dark.PNG Update README.md, use dark mode or light mode image depending on github theme. 2022-08-24 14:59:18 +02:00
cura-logo.PNG Update README.md, use dark mode or light mode image depending on github theme. 2022-08-24 14:59:18 +02:00
cura.sharedmimeinfo Update desktop and mimeinfo to add gcode mime type 2018-11-22 15:47:12 +01:00
cura_app.py description changed 2024-01-11 13:08:55 +01:00
CuraVersion.py.jinja Gather and display details of licences for pip packages 2025-02-17 08:51:36 +01:00
FUNDING.yml Create FUNDING.yml 2023-08-15 16:10:04 +02:00
LICENSE Changing AGPLv3 to LGPLv3 2017-09-28 13:00:43 +02:00
pytest.ini Re-add pytest.ini 2022-09-08 13:15:37 +02:00
README.md Add link to third-party libraries references 2025-02-19 13:25:25 +01:00
SECURITY.md Add security policy 2022-03-23 09:51:36 +01:00
UltiMaker-Cura.spec.jinja Merge branch 'main' into patch-1 2025-01-24 10:26:50 +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