我正在使用 Crunchbang Linux 和 Openbox,并且希望拥有 Synergy(http://synergy-foss.org/) 在登录屏幕自动启动。
我尝试了以下方法:https://wiki.archlinux.org/index.php/Synergy然而我对 Linux 还不太熟悉,不太清楚应该如何去做。
有任何想法吗?
编辑:
我希望它是客户端。
使用连接到它的键盘和鼠标手动登录并将 Synergy 添加到 autostart.sh 后,我可以让它工作
我希望 Synergy 在登录之前启动,这样我就不必将键盘和鼠标连接到计算机即可登录
答案1
Openbox 使用 ~/.config/openbox/autostart.sh 文件来启动文件。您可以从此文件中添加或删除内容。
在 #! 中,您可能需要注释掉其中包含 cb-fortune 的行,以删除烦人的“Statler Says”消息。
由于您使用的是 #!,因此有一种简单的方法可以获取此配置。按SUPER+ SPACE,然后转到 SETTINGS > OPENBOX CONFIG > EDIT AUTOSTART.SH
在底部,添加一行synergyc server-host-name &
,将 server-host-name 替换为... 嗯... 服务器主机名,保存,然后使用 SETTINGS > OPENBOX CONFIG > RESTART 重新启动
答案2
您可以将其添加到 /etc/rc.local
sudo nano /etc/rc.local
我让它看起来像这样:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
## Synergy Test thingy
echo "Starting Synergy Client"
synergyc lolhosttest
exit 0
如果您切换到 TTY1(ctrl + alt + f1),您将看到它在提示登录之前的最后一件事是“正在启动 Synergy 客户端”。如果您通过 tty 登录,然后执行 top 或 htop,您将看到它正在运行。由于 openbox 未启动,因此显然 autostart.sh 与它无关。
答案3
我发现唯一的方法是vi /etc/slim.conf
设置默认用户并启用自动登录:
default_user yomomma
...
auto_login yes
然后vi .config/openbox/autostart
添加您的 synergy 命令。(专业提示:对于 synergy 的最新版本,您只需将其添加synergy &
到自动启动文件中,它就会打开 GUI、连接,并且(如果您选中“编辑”>“设置”>“启动时隐藏”框)成功时图标化!)
这不是最好的,你应该能够编写一个由 rc.local 启动的脚本并等待,直到有一个 X 服务器/WM/任何可以连接(可能只是类似while ! synergyc --no-restart --enable-crypto theserverip; do sleep 1; done
?的东西),但这在紧急情况下有效。
答案4
我没有找到完整的解决方案,所以做了这个,与 synergy home 分开。Ubuntu 19.10 带有 Lubuntu 桌面。结果 synergy 客户端在重启后自动启动并在登录屏幕上工作。
1.
[Unit]
Description=Synergy Service
Requires=display-manager.service
After=display-manager.service
[Service]
Type=simple
Restart=always
RestartSec=3
ExecStartPre=/bin/bash -c "sleep 10; /bin/systemctl set-environment SDDMXAUTH=$(/usr/bin/find /var/run/lightdm/ -type f)"
ExecStart=/bin/bash -c "XAUTHORITY=${SDDMXAUTH} /usr/bin/synergyc -f --restart --name YOURCLIENTNAME --enable-crypto SRVPCNAME:24800"
[Install]
WantedBy=graphical.target
您需要在 /var/run/ 中更改显示管理器...
systemctl daemon-reload
systemctl enable synergy
另外,我遇到了指纹问题,因此我将文件从我的用户 /home/user/.synergy/SSL/Fingerprints/TrustedServers.txt 复制到 root 的用户主目录。