If your 3DConnexion device does not work with the driver you will likely need to do the following for now: https://github.com/prusa3d/PrusaSlicer/issues/7277#issuecomment-1006359238
(updated January 2022)
PrusaSlicer (from version 2.2.0) supports the following 3Dconnexion devices:
- Spacemouse plus XT
- Cadman
- Spacemouse classic
- Spaceball 5000
- Space traveller
- Space pilot
- Space navigator (TESTED)
- Space explorer
- Space navigator for notebooks
- Space pilot pro
- Space mouse pro
- Spacemouse wireless (USB cable) (TESTED)
- Spacemouse wireless receiver
- Spacemouse pro wireless (TESTED)
- Spacemouse pro wireless receiver
- Spacemouse enterprise
- Spacemouse compact (TESTED)
- Spacemouse module
- Nulooq
- 3Dconnexion universal receiver (TESTED)
On Linux, press Ctrl + M while in the platter view to open 3Dconnexion settings dialog.
If you're unable to configure your device, enable Configuration - Preferences - Enable support for legacy 3D connexion devices. You might have to do this even for relatively new devices, due to lack of support from 3Dconnexion. Then press CTRL+M (Shift+Command+M on Mac).

Windows
It is enough to plug-in any of the listed devices to the pc to have it working.
The current implementation does not support flipping axes in the 3dconnexion driver on Windows.
Mac
It is enough to plug-in any of the wired listed devices to have it working.
3Dconnexion universal receiver is currently not working on Mac.
Linux
Linux users need to create a file named “90-3dconnexion.rules” with the following content:
# Logitech vendor devices
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c603", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c605", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c606", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c621", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c623", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c625", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c626", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c627", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c628", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c629", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c62b", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c62e", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c62f", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c631", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c632", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c633", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c635", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c636", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c640", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c652", MODE="0666"
# 3D Connexion vendor devices
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c603", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c605", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c606", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c621", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c623", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c625", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c626", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c627", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c628", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c629", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c62b", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c62e", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c62f", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c631", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c632", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c633", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c635", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c636", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c640", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c652", MODE="0666"
and save it into:
/etc/udev/rules.d
After this is done, it is enough to plug-in any of the listed devices to the pc to have it working.
The cited file is part of the PrusaSlicer distribution. You can find it in: resourcesudev90-3dconnexion.rules
15 comments
KERNEL=="hidraw*"
The asterisk after hidraw is a wildcard, so will make the rule apply to all hidraw devices - my spacemouse was /dev/hidraw1, and would not work until I changed the udev rules and rebooted.
1. Install the Open Source driver "spacenavd". There are many good reasons to use this instead of the proprietary Linux driver:
sudo apt install spacenavd
This will install a systemd unit which will be started automatically
2. Install the lib to access the daemon. I am not sure if PursaSlicer requires it, but mostly any other Linux application with support for 3DConnexion devices will require it anyways.
sudo apt install libspnav0
3. To set the access rights for the device nodes create the 90-3dconnexion.rules as described above. However I needed to change the rules from "KERNEL" to "SUBSYSTEM", e.g. for the Sacemouse Wirless the rule will be:
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c652", MODE="0666"
(not sure why the KERNEL filter did not apply, maybe I will check this later or somebody can point me to the root cause)
And just a last info for anybody having trouble and digging into the details:
When starting the systemd service for spacenavd it will report the following in the logs:
systemd[1]: Started 3Dconnexion Input Devices Userspace Driver.spacenavd[1193]: Authorization required, but no authorization protocol specified
I believe you can just ignore it (and it is triggered by an xauthority issue which should not matter). For me any application is working perfectly with the spacenavd driver and the only issue I had was to set the access rights for PrusaSlicer with the udev rule as described above.
https://github.com/prusa3d/PrusaSlicer/issues/7549
in the comment about editing the prusa-slicer.xml file. This worked for me on Windows 10, Spacemouse Wireless Pro, Prusa Slicer ver 2.4.1-beta1.
sudo udevadm control --reload-rules
sudo udevadm trigger
However the Configuration -> preferences menu does not have an option to enable the 3dconnexion legacy mode.
This is on Ubuntu 20.04 and PrusaSlicer 2.3.0+linux-x64-20210111322.AppImage