用软件实现macOS及Windows下快捷切换显示器输入源

最近新入了eGPU,也新入了4k外屏,沉浸在”工作”的喜悦中 🙂
办公桌面有限,也不想把桌面弄的像机舱一样各种屏幕各种线缆,就只留下了这新买的一台外屏显示器,把PC主机通过HDMI的方式连接,把Macbook通过eGPU的DP方式连接.用macOS时就在显示器按键上把输入源选为DP,用Windows时就在显示器通过按键把输入源选为HDMI,虽然不是很麻烦,但也绝对不便捷,所以想着能像快捷键一样在键盘上实现一键切换输入源就好了,于是下了一些功夫查找,还不赖,如愿以偿了.要实现下面的效果,外屏显示器要支持DDC/CI控制,现在大多数显示器都可以支持.

实现的效果是在外屏显示PC下的Windows系统信号时,按 WIN+F11 键,外屏直接切换信号源至Macbook下的macOS系统信号.而外屏显示Macbook下的macOS系统信号时,按 F11 键,外屏直接切换信号源至PC下的Windows系统信号.

首先来实现Windows系统下一键切换,这里借助了一款绿色且免费的软件叫ControlMyMonitor(官网:http://www.nirsoft.net/utils/control_my_monitor.html),下载后放到一固定目录下保存运行:

这时软件窗口可以看到显示器可控的方法和值,注意图中高亮部分,Input Select为输入源,其中Current Value为当前输入口的值,在Possible Values查看可用的值,我这台显示器有2个HDMI,1个DP,一共三个输入口.所以这里显示有16,17,18三个值.PC主机接在了HDMI口,即这里的18.Macbook的eGPU接在了DP口,即16.那么怎么能确定这三个值与输入口的对应关系呢,可以改变值来看结果,比如在cmd中使用这样的命令切换主屏到16对应的输入口:

[软件路径]\controlmymonitor\ControlMyMonitor.exe /SetValue Primary 60 16

命令解释 /SetValue 是ControlMyMonitor软件的内置命令,用于设定值,Primary 代表主显示器,60代表输入源设定,16代表对应的DP输入口,执行后显示器输入源将切换至DP信号源.

接下来找个快捷键设定软件将这段命令设置为快捷键执行即可,我用了WinHotKey(官网:http://www.directedge.us/content/winhotkey),也是免费软件,安装后设定Win+F11快捷键运行可执行程序,即运行ControlMyMonitor,并在高级设定中增加命令行参数 /SetValue Primary 60 16,设定完成后,使用快捷键即可切换输入源为DP接口.

接下来我们来实现macOS系统下一键切换输入源,之前有关eGPU的教程中我们提到了一款控制外屏亮度调整的软件NativeDisplayBrightness,因为它是开源的,我对它进行了修改,在原有调整屏幕亮度和色温的基础上增加了输入源的控制,将它分享在了github仓库,项目地址为https://github.com/huaikitty/NativeDisplayBrightnessPlus,下载后使用xCode修改项目中的AppDelegate.m文件第 161 行数值为18(通过上面ControlMyMonitor获取到对应的输入口数值):

编译后放入Application目录下即可使用,默认快捷键为F11,可以在软件属性中更改快捷键,按下F11时,外屏将切换至HDMI信号源.

好了,今天教程就写到这里,github上记得点亮小星星哦.

发表评论

电子邮件地址不会被公开。