从 ssh 登录到“前端 GUI”(与 Synergy 一起)

从 ssh 登录到“前端 GUI”(与 Synergy 一起)

因此,我的办公桌上有 3 台 PC,全部运行ubuntu 14.04 64bit。并且全部运行 的最新版本Synergy,这样我仅使用一个键盘和一个鼠标即可控制 3 台 PC 和 4 台显示器。效果很好!但是,有一个问题。

每次我登录(解锁)时,我都必须登录 3 次。每次我锁定计算机时,我都必须将其锁定 3 次。(好吧,我必须锁定并分别登录到 3 台电脑中的每一台)。

到目前为止,synergy他们的代码中还没有针对此问题的系统,但我在想也许我可以使用 ssh 脚本来解决这个问题?有人知道我该怎么做吗?这可能吗?

编辑:我在下面的评论中得到了一个提示,并尝试了一些方法(请参阅我自己的答案,至于我到目前为止尝试过的方法),这个问题仍然没有解决,所以请阅读下面我自己的答案,看看你是否可以帮助我找出为什么这不起作用,或者可能想出一个完全不同的解决方案。

答案1

我还没有完成这项工作,但我想添加我已尝试过的内容以及迄今为止失败的原因,以防这会让其他人看到我做错的事情。

一切都基于c0rp, 通过此链接(谢谢)

我创建了两个这样的 bash 脚本文件:

1)/sbin/my_loginscript.sh(用于“登录”,并打开两台电脑)

#!/bin/bash          
# 
# Script to loging to my other computers when I login, save some time
#
echo "UNLocking laptop and desktop"
ssh -X [email protected] "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -d;"
ssh -X [email protected] "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -d;"
echo "Now get some back to work" 

2)/sbin/my_logoutscript.sh(用于“注销”并关闭两台计算机)

#!/bin/bash          
# 
# Script to loging to my other computers when I login, save some time
#
echo "Locking laptop and desktop"
ssh -X [email protected] "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -l;"
ssh -X [email protected] "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -l;"
echo "Now get some rest"

这两个脚本都运行得相当好,当我直接运行它们时,另外两台台式计算机就会“打开和关闭”,我可以用synergy它们来控制它们,这本身比手动登录另外两台计算机要快得多。

现在我尝试实现自动化,但这就是我遇到的问题。

当我登录计算机时(必须注销才能正常工作)

我创建了一个新文件“/etc/xdg/autostart/my_script.desktop”

它看起来像这样:

[Desktop Entry]
Type=Application
Name=global login
Exec=sudo /sbin/my_loginscript.sh
Icon=system-run
X-GNOME-Autostart-enabled=true

这确实有效。当我登录时,另外两个屏幕就像我希望的那样解锁了。

待办事项:如何在退出时关闭它?

而且,我几乎从不从我的电脑上注销,我只LOCK注销它UNLOCK,所以这才是我真正想要修复的问题,这就是我尝试过的方法。

我创建了一个名为“/etc/pm/sleep.d/99_resume.sh”的新文件

它看起来像这样:

#!/bin/bash

case "$1" in
thaw|resume)
    /sbin/my_loginscript.sh 2> /var/log/wakeup.log
    ;;
suspend|hibernate)
    /sbin/my_logoutscript.sh 2> /var/log/wakeup.log
    ;;
esac

但这似乎根本不起作用,我很难对其进行故障排除。如果有人能提供任何提示或建议,那就太好了。

编辑:根据下面 C0rp 的评论,我编辑了他的脚本,可以找到(已编辑)这里

基本上,在您克隆或以其他方式创建文件后event_catcher.sh,首先复制我的两个文件 my_logoutscript.sh andmy_logoutscript.sh as described earlier, to the/sbin folder. Then start the daemon by running this./event_catcher.sh start`。

下次您点击时,Ctrl Alt L您的计算机将被锁定,并且您的其他电脑也将被锁定。

附言:我假设您已ssh-copy-id在那些无需密码的电脑上启用登录。

所以,我考虑这个问题解决了现在,但我会等 c0rp 一会儿,看看他是否愿意创建一个非常快速的答案(而不是只有评论),如果他愿意,我会给他信用。再次感谢 c0rp!

相关内容