Jump to content

# 3D Mouse

1 language

- 日本語

From ArchWiki

From Wikipedia:3d mouse#3D mice:

  Also known as bats, flying mice, or wands, these devices generally function through ultrasound and provide at least three degrees of freedom. Probably the best known example would be 3DConnexion/Logitech's SpaceMouse from the early 1990s.

For more information: https://web.archive.org/web/20200731022623/https://www.3dconnexion.com/products/spacemouse.html#panel-whatis

Note: The following instructions have been tested and proven to work on the most basic model (Space Navigator).

The proprietary drivers have not been updated since 2014 and require potentially unsafe hacks to make them work.

## Installation

There is an open source driver for 3Dconnexion devices maintained by the spacenav project. From the short list of softwares that supports spacenavd we can cite:

- Blender
- Freecad
- OpenSCAD

For it to work three things must be fulfilled:

1. The device must be recognized by the kernel as input device
2. The spacenavd daemon must be running
3. The application must be compiled with spacenav support. (blender should be)

The first requirement should be fulfilled automatically after plugging in the device. It can be checked by looking if the device is listed in `/proc/bus/input/devices`:

    $ grep 3Dconnexion /proc/bus/input/devices

    N: Name="3Dconnexion SpaceNavigator"

For the second point install libspnav and spacenavdAUR. For testing it is a good idea to start the daemon on foreground mode. The output should look similar to this:

    # spacenavd -v -d

    Spacenav daemon 0.5
    Device detection, parsing /proc/bus/input/devices
    using device: /dev/input/event21
    device name: 3Dconnexion SpaceNavigator
    trying to open X11 display ":0"
       XAUTHORITY=/home/user/.Xauthority

If it works you can simply shut down the daemon by hitting `Ctrl+c` and run it using the following service to start the daemon (should come with spacenavd).

    /etc/systemd/system/spacenavd.service

    [Unit]
    Description=Userspace Daemon of the spacenav driver.

    [Service]
    Type=forking
    PIDFile=/var/run/spnavd.pid
    Environment=XAUTHORITY=/run/user/1000/gdm/Xauthority
    ExecStart=/usr/bin/spacenavd

    [Install]
    WantedBy=multi-user.target

Now everything is up and running and every supported application should be able to use the 3D Mouse.

## Troubleshooting

If you get an device input access error such as:

    failed to open device: Permission denied

Follow udev#Allowing regular users to use devices to allow the user access to the input device.

## See also

- 3dconnexion linux forum
- Source of C program used
- Information about libXm.so.4 and libXm.so.3
- Website of the open source driver spacenav
- Community Wiki about Spacemice

Category:

- Mice