Synergy启动在登录前
Contents
介绍
Synergy是一个模拟键盘和鼠标的软件,我的win和mac都启动时可以用一套键鼠操控。 mac作为Synergy的客户端时,win作为Synergy的服务端使用。
背景
目前Synergy在登录前软件没有启动,只有登录后启动,导致登录时无法输入密码,因为我的键盘鼠标连接在win上。下面是解决办法
原理
软件在mac未登录前是root的身份运行,登录后才是选择的用户,在root身份下将软件加入mac的Launch Daemons就可以解决了
实操
synergy的存放位置是 /Applications/Synergy.app/Contents/MacOS/synergy
运行命令行启动
open /Applications/Synergy.app/Contents/MacOS/synergy
时,可以看到启动参数
/Applications/Synergy.app/Contents/MacOS/synergyc -f --no-tray --debug INFO --name "mac" "192.168.50.59:24800"
修改为Launch Daemons的配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.hello</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/Synergy.app/Contents/MacOS/synergyc</string>
<string>-f</string>
<string>--no-tray</string>
<string>--debug</string>
<string>INFO</string>
<string>--name</string>
<string>mac</string>
<string>192.168.50.59:24800</string>
</array>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
ProgramArguments对象下是cli启动参数
然后以root身份 放入 /Library/LaunchDaemons/
下,文件名随便起一个com.example.synergy.plist
这样重启后,就可以在mac上输入密码,当键盘连接在win上时候,因为synergy已经生效
总结
# 敲root密码
sudo su
# 切目录
cd /Library/LaunchDaemons/
#创建文件
touch com.example.synergy.plist
# 将xml的配置内容放入com.example.synergy.plist
# 接着重启
而xml的内容是通过open /Applications/Synergy.app/Contents/MacOS/synergy
看到的