Spacenav interactive configuration GUI
Go to file
Chris Mayo 1850554b75 Fix SPNAV_EVENT_MOTION comparison with maxval 2023-12-28 01:38:47 +02:00
.github/workflows autobuild: make sure to pull LFS data correctly 2023-03-11 23:49:42 +02:00
icons Progress on the new Qt GUI 2022-03-20 19:57:22 +02:00
src Fix SPNAV_EVENT_MOTION comparison with maxval 2023-12-28 01:38:47 +02:00
ui Add dominant axis button action 2023-02-22 20:16:26 +02:00
.gitattributes - added new interactive GUI config program for spacenavd 2008-04-07 08:37:52 +00:00
.gitignore changed the window type to QMainWindow, added menubar, and about dialog 2022-03-27 02:57:07 +02:00
COPYING forgot to add the GPLv3 license text to spnavcfg 2008-04-09 09:05:24 +00:00 Make sure there are no duplicate object files. Closes issue #29 2023-01-08 21:49:12 +02:00 add autobuild status on readme 2022-12-01 00:46:49 +02:00
configure started converting GUI to use the new protocol 2022-02-15 20:45:18 +02:00


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


Spacenav daemon interactive configuration program.



The current version of spnavcfg works with spacenavd v1.0 or higher (requires a spacenavd which speaks the spnav protocol v1).

This break in compatibility is necessary because the new protocol allows spnavcfg to act as a regular libspnav client and send configuration commands through the spacenavd socket, instead of having to modify /etc/spnavrc and send SIGHUP to the daemon, as was the old mode of operation.

This is a huge security improvement, as it makes it no longer necessary to install spnavcfg as setuid-root, and frankly much less clunky and error-prone. Plus it opens the way for a new and improved GUI with much more functionality and user feedback.

Therefore, you are advised to update your spacenavd to the latest version if at all possible. If you can't update spacenavd, the last version of spnavcfg which will work with older versions of the daemon is 0.3.1.


First make sure you have the dependencies installed:

  • libspnav v1.0 or higher
  • Qt 5 (core, gui, and widgets).

To build just run ./configure, make, and make install as usual. The make install part will probably need to be executed as root, if you're installing system-wide.

For build options, see ./configure --help.

Note: if you cloned the source code from the git repo without GIT-LFS, the image in icons/devices.png will be invalid leading to an incorrect build and crashes on startup. If you don't want to install GIT-LFS, you can grab the file from the latest release archive and drop it in place.


Copyright (C) 2007-2022 John Tsiombikas

This program is free software. Feel free to use, 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.


  1. Q: I'm trying to build spnavcfg, but the linker complains about missing functions starting with spnav_cfg_.

    A: You need libspnav v1.0 or higher to build spnavcfg. If it is installed, but you also have a previous version installed in a different path, please remove it in case the linker finds that one first.

  2. Q: When I ran spnavcfg, it immediately crashes with a SIGFPE.

    A: This is most likely caused by bulding with an invalid device atlas image. If you cloned the source code from git, you need GIT-LFS to correctly retreive the image from the repo. Without GIT-LFS, the file icons/devices.png will be a text file with a hash instead of a PNG file. If you don't want to install GIT-LFS, grab the file from the latest release archive and drop it in.