有没有办法在桌面上与某人通信?


36

我妻子坐在她的家用台式机上alpha,该台式机正在运行最新版本的Ubuntu。我在公共汽车上,在我的G1手机上使用ConnectBot,并且alpha无论我身在何处都可以通过SSH进入。

由于复杂的原因,我无法使用IM,电子邮件或电话与她联系。(例如,我不想唤醒婴儿,我的IM客户端已损坏,我的电子邮件服务器已关闭。)我唯一的选择是alpha远程进入ssh 并尝试以某种方式使某些内容出现在屏幕上。她正在使用KDE;我该如何弹出提示框以引起她的注意,并让她知道我正在尝试与她交流?我认为即使我的SSH会话没有X显示器,也可以远程触发某些东西(例如xmessage)显示在她的屏幕上。

编辑:澄清一下,我的手机没有运行X的任何风格,因此X-over-ssh是不可能的。以下工作有效吗?

$ export DISPLAY=:0
$ xmessage "test"

在静音模式下向手机发送短信...还是仅我一个?
尼瓦斯

Answers:


27

DISPLAY只要知道alpha当前正在显示哪个显示,就可以告诉X程序哪个显示要与环境变量一起使用。几乎可以肯定,唯一的显示是:0,除非您手动进行了摆弄,所以如果运行:

$ export DISPLAY=:0

然后,您运行的所有X应用程序都会显示在alpha的监视器上。xmessage是显示消息的好选择;还有xdialog。如果已libnotify安装,则可以用来notify-send在屏幕角落弹出消息:

例


xauthxhost需要在这里吗?
Mikel

@Mikel我不确定当另一个用户运行X时安全性如何工作;我觉得很好 我只曾用于xhost允许远程连接,但是他直接通过SSH连接到计算机
Michael Mrozek

如果您可以使用与其登录时使用的相同帐户登录,那很好。否则,您将不得不处理X访问控制。
user7440

10

正如Michael Mrozek所说明的,您可以运行显示在妻子桌面上的X应用程序。您需要做的就是将DISPLAY环境变量设置为正确的值(几乎总是:0)……并获得授权。

此解决方案要求您有权读取妻子的文件。访问X服务器需要身份验证“ cookie”,它是X启动时随机生成并存储在文件中的密码。该文件通常是~/.Xauthority; 如果不是,则必须在XAUTHORITY环境变量中指出。在具有默认设置(使用Gdm)的Ubuntu下,妻子的会话cookie不在~wife/.Xauthority文件中,而是在文件中自动生成。参见ssh DISPLAY变量。另请参见以root用户身份可以在另一个用户桌面上启动图形程序吗?Linux:通过ssh + screen启动会话时wmctrl无法打开显示

如果您的妻子打开了文本终端,则可以write 按照user7440的建议在她的终端中使用一些文本。这要求终端接受此类通知;您可以使用mesg y或打开或关闭此功能mesg n,但我不知道现代终端仿真器的默认状态是什么。

更复杂的机制writetalk。对话协议是聊天程序的始祖。您可以与运行对话服务器且未过滤UDP端口517或518(有两个协议变体)的计算机上的任何人交谈。所以安装talkd 安装talkd http://bit.ly/software-small,客户如ytalk 安装ytalk http://bit.ly/software-smallytalk wife。还有一个X客户端,xtalk 安装xtalk http://bit.ly/software-small。据我所知,谈话只是不为所知(每个人都在使用现代聊天协议之一),并且没有系统组件会生成有关谈话请求的KDE通知。

当您说您无法运行任何IM客户端时...在通过SSH访问的家用计算机上运行的命令行IM客户端是否可以?有这样的例子,例如weechat Install weechat http://bit.ly/software-small。您仍然需要依靠某些服务器来与您的妻子建立连接,但是只能通过家用计算机(而不是手机)进行访问。


finch是pidgin的命令行版本。
LawrenceC

4

如果她打开了终端窗口(使用“ who”来查找),则可以使用“ write”写入该终端。这不适用于主终端,因为KDE将其隐藏了,但是任何终端窗口都可以工作(如果它在当前桌面上,没有最小化,那么她正在看...)。


3

我不确定100%是否可以使用设置DISPLAY=:0.0。我认为您需要一种方法来授权连接到妻子的PC上的X服务器。可以使用的工具是xhostxauth,但是它们似乎要求您已经可以访问X服务器,因此大概只有您的妻子可以运行它们。(鸡肉和鸡蛋的问题。)

失败的话,您也许可以启动第二台X服务器,例如使用X :1,或者可能chvt会有所帮助。

例如,类似

# X :1
# export DISPLAY=:1.0
# xmessage 'hello'

如果我以root身份运行,它似乎可以在我的系统上运行。

X :1 是在我的系统上的vt7上启动的,因此您也可以运行

# chvt 7

确保X显示是当前可见的显示。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.