No description
  • C 97.4%
  • Shell 2.2%
  • Makefile 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
sid e36eccd31e
Some checks failed
FreeBSD build / build (push) Has been cancelled
GNU/Linux build / build (push) Has been cancelled
GNU/Linux build / build-nox11 (push) Has been cancelled
MacOS X build / build (push) Has been cancelled
MacOS X build / build-nox11 (push) Has been cancelled
Move fork profile/LCD request IDs out of upstream's reserved 0x1000 block
REQ_SET_APP_ID/REQ_SET_PROFILE/REQ_GET_PROFILE (added by the jl1990 cherry-pick)
landed at 0x1005-0x1007, inside upstream's per-client REQ_S*/REQ_G* block
(currently used through 0x1004). Upstream claiming that range later would
silently collide with these fork-only requests. Renumbered to a private
0x6000 block, well clear of every range upstream currently uses
(0x1000/0x2000/0x3000/0x3ffe/0x5500).
2026-08-20 06:30:22 -06:00
.github/workflows update github actions 2024-05-22 20:22:16 +03:00
contrib Added sandboxing options to spacenavd.service 2026-05-14 16:24:08 +03:00
doc Add multi-profile support with LCD display for SpaceMouse Enterprise 2026-08-20 05:55:38 -06:00
src Move fork profile/LCD request IDs out of upstream's reserved 0x1000 block 2026-08-20 06:30:22 -06:00
.gitignore .gitignore 2018-08-21 05:36:46 +03:00
AUTHORS - fix memory leak when re-reading config file 2022-03-27 13:15:59 +03:00
configure Remove SVG dependency 2026-08-20 05:55:38 -06:00
COPYING initial import of the daemon 2007-07-02 22:03:28 +00:00
init_script LSBized the init script to prevent a possible error by leaving it at default 2018-11-08 16:58:50 -05:00
Makefile.in Add multi-profile support with LCD display for SpaceMouse Enterprise 2026-08-20 05:55:38 -06:00
mkrel added helper script to prepare releases 2020-02-01 02:00:08 +02:00
README.md update readme (spacenav-ws) 2025-04-27 22:56:01 +03:00
setup_init fix setup_init to work correctly on Solaris 2.6 2024-11-27 05:31:14 +02:00
spnavd_ctl - forgot to update the spnavd_ctl script to use the new pid location, this will 2009-02-02 02:11:10 +00:00

spacenavd

GNU/Linux build status FreeBSD build status MacOS X build status

About

Spacenavd is a free software user-space driver (daemon), for 6-dof input devices, like 3Dconnexion's space-mice. It's compatible with the original 3dxsrv proprietary daemon provided by 3Dconnexion, and works as a drop-in replacement with any program that was written for the 3Dconnexion driver, but also provides an improved communication mechanism for programs designed specifically to work with spacenavd.

For more info on the spacenav project, visit: http://spacenav.sourceforge.net

There's an effort to create a websocket layer, to allow web applications to receive 6dof input from spacenavd. This is currently hosted separately at: https://github.com/RmStorm/spacenav-ws

We're looking for someone interested to take over maintainance of that interface, in order to improve it past the proof of concept stage, and make it a part of the free spacenav project.

License

Copyright (C) 2007-2025 John Tsiombikas nuclear@mutantstargoat.com

This program is free software. Feel free to copy, modify and/or redistribute it under the terms of the GNU General Public License version 3, or at your option, any later version published by the Free Software Foundation. See COPYING for details.

Dependencies

In order to compile the spacenavd daemon, you'll need the following:

  • GNU C Compiler
  • GNU make
  • Xlib (libX11, optional)
  • XInput2 (libXi, optional)
  • Xtest (libXtst, optional)

You can compile the daemon without Xlib, but it won't be compatible with applications that where written for the original proprietary 3Dconnexion driver (e.g. maya, houdini, etc). The 3dxsrv compatibility interface needs to communicate with clients through the X window system. Programs designed to work with the alternative spacenavd-specific interface however (e.g. blender) will work fine even when spacenavd is built without X11 support.

Installation

If you have the dependencies installed, just run ./configure and then make to compile the daemon, and then make install, to install it.The default installation prefix is /usr/local. If you wish to install somewhere else, you may pass --prefix=/whatever to the configure script.

Running spacenavd

Spacenavd is designed to run during startup as a system daemon.

If your system uses SysV init, then you may run setup_init as root, to install the spacenavd init script, and have spacenavd start automatically during startup. To start the daemon right after installing it, without having to reboot your system, just type /etc/init.d/spacenavd start as root.

If your system uses BSD init or some other init system, then you'll have to follow your init documentation to set this up yourself. You may be able to use the provided init_script file as a starting point.

For systems running systemd, there is a spacenavd.service file under contrib/systemd. Follow your system documentation for how to use it.

Configuration

The spacenavd daemon reads a number of options from /etc/spnavrc. If that file doesn't exist, then it will use default values for everything. An example configuration file is included in the doc subdirectory, which you may copy to /etc and tweak.

You may use the graphical spnavcfg program to interactively set and tweak any of the configuration options.

Troubleshooting

If you're having trouble running spacenavd, read the up to date FAQ on the spacenav website: http://spacenav.sourceforge.net/faq.html

If you're not sure if spacenavd is set up correctly and works with your device, a good first step is to try and run the "simple" example program which comes with libspnav. It builds into two variants: simple_af_unix and simple_x11, which is helpful for testing both supported communication protocols. If either or both fail to work, there's something wrong with your setup.

If you're still having trouble, send a description of your problem to the spacenav-users mailing list: spacenav-users@lists.sourceforge.net along with a copy of your /var/log/spnavd.log and any other relevant information.

If you have encountered a bug, please file a bug report in our bug tracker: https://github.com/FreeSpacenav/spacenavd/issues