我最近从在两个不同的办公室(难以加热的车库和加热良好的后卧室)使用两台计算机,转为在任一位置使用一台计算机(MacBook Pro)。这个决定涉及很多因素,我将在以后的文章中详细介绍,但这篇文章是关于此切换最令人沮丧的方面之一:我的计算机、自动化和设置无法理解上下文何时发生变化。
幸运的是,我的 Mac 对网络配置的切换做出了沉着的反应,因此我不必深入研究网络位置,尽管如果我这样做了,有几种替代旧经典实用程序(如 ControlPlane)的选择。
但我录制了很多播客,并且有两个完全不同的 USB 设备用于音频。如何才能让当我按下“录音”按钮时,正确的 USB 设备正在录制和接收音频?
我的整体解决方案最终相当复杂,但关键的见解是使用终端命令列出所有连接的 USB 设备。您无需了解终端即可使用它,因为您可以将其粘贴到快捷方式中的“运行 Shell 脚本”块中。这是命令:
ioreg -p IOUSB -w0 | sed 's/[^o]*o //; s/@.*$//' | grep -v '^Root.*'
此命令将以纯文本形式输出当前连接的所有 USB 设备的列表。
(可选解释: ioreg
将显示系统上的大量设备和端口列表。 -p IOUSB
将其限制为 USB 设备, -w0
使其每行显示完整设备,而不截断。该结果将发送到sed
,它使用仅匹配连接的 USB 设备名称的正则表达式。最后一步是使用grep
删除初始行,该行总结了列表而不是列出实际的 USB 设备。)
此时,您可以构建一个快捷方式,根据输出的内容改变其行为。例如,我的快捷方式的下一步是 If/then 块,用于检查结果是否包含适用于我的 Shure MV7 麦克风的文本“MV7”或适用于我的 USBPre2 音频接口的文本“USBPre”。但它可以与在给定时间连接的任何 USB 设备配合使用。
原文: https://sixcolors.com/post/2025/01/quick-tip-which-usb-devices-are-currently-attached/