Synergy:映射附加鼠标按钮以在 Mac 上显示/显示桌面

Synergy:映射附加鼠标按钮以在 Mac 上显示/显示桌面

我拥有一台 Mac 和一台 PC,最近我开始使用协同作用为了使用相同的鼠标和键盘在两台电脑上。截至目前,鼠标和键盘已连接到我的 PC - 这意味着我在 PC 上托管 Synergy 服务器,并通过有线网络在我的 Mac 上连接到它。

我想知道是否有人知道如何使用 Synergy 重新映射鼠标按钮。我的鼠标有 5 个按钮,我想使用另外两个按钮在 Mac 上调出 Expose 和桌面。截至目前,当光标在 Mac 上时,其中一个按钮不起作用,而另一个按钮实际上在 Windows 屏幕上执行命令(即使鼠标光标在 Mac 上)。

我现在最好的猜测是使用 Synergy 中的配置文件,因为它允许您重新映射大量用户输入。但是,在这种情况下,我无法弄清楚如何在配置文件中引用额外的鼠标按钮(有没有办法找出它们的名称)。我也愿意接受任何其他建议...... 有一件事可能会派上用场,那就是额外的鼠标按钮可以编程为 Windows 上的几乎任何命令。

答案1

如果按钮在 Windows 下是可编程的,那么就意味着在 Synergy 看到它们之前有一个程序正在监视它们(这就是为什么按下客户端上的按钮会导致服务器上发生操作的原因)。您必须停止使用该程序,然后按钮按下操作才会发送到 Mac。

可能唯一能实现目标的方法就是在 Mac 上运行一个程序,监听鼠标按钮事件并相应地启动程序。我认为 Synergy 不能配置为执行鼠标/键盘操作事件,只能生成其他鼠标/键盘事件。

答案2

如果今天有人遇到此问题,请考虑以下几点:

在你的 Mac 中客户,进入系统偏好设置/键盘/快捷键并在不同类别中搜索您要查找的操作。您可以通过选择右侧列并在输入栏闪烁时按下所需的鼠标按钮来输入鼠标键,从而重新映射那里的快捷键。

如果不存在您要查找的操作(例如“后退”或“前进”命令),请转至应用程序快捷方式,然后按+左下角的符号。输入菜单标题您想要的,例如“后退”、“剪切”或“撤消”,然后按照前面的描述映射您想要的鼠标按钮。

如果您遇到此问题,请访问服务器计算机并尝试使用鼠标专用软件为不同的鼠标按钮分配新的按键(例如罗技 SetPoint 软件)。

请记住,您还可以重新映射修饰键您可以通过访问协同作用在服务器计算机上,点击配置服务器...,选择您的客户图标并更改您的修饰键从右侧的“Ctrl”变为左侧的“Super”,从左侧的“Super”变为右侧的“Ctrl”。

这将允许您使用相同的修饰键在两台电脑上,以便在两个平台上使用相同的鼠标快捷键。我在 Mac 和 Windows 系统中都使用Alt+Left在 Chrome 等应用程序中“返回”。

答案3

为了调试 Synergy 所看到的内容(以及发送的内容,因为它有一些内置的重新映射,这些映射让我头疼不已),您可以进入编辑 > 设置(Windows/Linux)或 Synergy > 首选项或cmd+,(macOS)并将每个系统上的日志记录级别更改为 Debug1,然后在设置/首选项对话框中保存,然后在主 Synergy UI 中应用以获取更详细的输出。

当您的光标位于“服务器”机器上时,按下鼠标按钮时您将看不到任何输出,但是如果您移到客户端机器,您将在服务器的日志中看到它识别的按钮/键,在客户端日志中您将看到它实际接收/重新映射的键。

如果您也熟悉xev -event buttonxinput list和,您可能很快就会注意到一件事xinput test -event button deviceIdFromList,即事件与 Synergy 报告的内容不完全匹配。例如,在我的 Logitech 鼠标中,按钮 8/9 是 WWWBack/WWWForward,但 Synergy 将它们报告为 6/7。因此,当您重新映射时,您需要使用 Synergy 数字而不是数字xev

如果您的客户端计算机是 macOS,您将需要将 6/7 重新映射到keystroke(Meta+[)keystroke(Meta+])用于后退/前进,如果您的客户端计算机是 Windows,您可能想要将 6/7 重新映射到mousebutton(4)mousebutton(5)

请参阅此评论以及同一主题中的其他评论,https://github.com/symless/synergy-core/issues/58#issuecomment-24804381​​1

我反复遇到的一个棘手问题是,您可能需要创建一个新的 Synergy 配置(尝试使用将配置另存为)并使用“使用现有配置”而不是使用交互式配置来加载该文件,因为我遇到过交互式配置只允许将按钮映射到鼠标按钮 4 的情况,按下前进/后退或其他键时,它总是显示鼠标按钮 (4)。

然后您可以使用这样的几行来进行更改。

# For Mac clients
mousebutton(6) = keystroke(Meta+[,macname)
mousebutton(7) = keystroke(Meta+],macname)

# For Windows clients
mousebutton(6) = mousebutton(4,winPC-123)
mousebutton(7) = mousebutton(5,winPC-123)

如果所有客户端都使用相同的操作系统,因此您想在所有客户端上以相同的方式重新映射它,则可以省略屏幕名称,但也许您不想在某些机器上重新映射它,这时:单独的屏幕名称列表就会有用。

相关内容