3D鼠标

出自ArchWiki

出自 Wikipedia:3d mouse#3D mice

这些设备也被称为蝙蝠、飞行鼠标或魔杖,通常通过超声波工作,并提供至少三个自由度。 可能最著名的例子是 20 世纪 90 年代早期的 3DConnexion/Logitech 的 SpaceMouse。

更多信息: https://web.archive.org/web/20200731022623/https://www.3dconnexion.com/products/spacemouse.html#panel-whatis

注意: 以下说明已在最基本的型号(Space Navigator)上测试并证明有效。

专有驱动程序自 2014 年以来未更新,并且需要潜在的不安全破解才能使其工作。

安装

spacenav 项目维护了一个用于 3Dconnexion 设备的开源驱动程序。 从支持 spacenavd 的软件的简短列表中,我们可以列举

  • Blender
  • Freecad
  • OpenSCAD

要使其工作,必须满足三件事

  1. 设备必须被内核识别为输入设备
  2. spacenavd 守护进程必须正在运行
  3. 应用程序必须使用 spacenav 支持进行编译。(blender 应该是)

第一个要求应该在插入设备后自动满足。 可以通过查看设备是否在 /proc/bus/input/devices 中列出来检查。

$ grep 3Dconnexion /proc/bus/input/devices
N: Name="3Dconnexion SpaceNavigator"

对于第二点,安装 libspnavspacenavdAUR。 为了测试,最好在前台模式下启动守护进程。 输出应该类似于这样

# 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

如果它工作,您可以简单地通过点击 Ctrl+c 关闭守护进程,并使用以下服务 启动 守护进程(应该随 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

现在一切都已启动并运行,每个受支持的应用程序都应该能够使用 3D 鼠标。

故障排除

如果您遇到设备输入访问错误,例如

failed to open device: Permission denied

按照 udev#允许普通用户使用设备 来允许用户访问输入设备。

参见