我通过输入命令" Firefox“从bash窗口启动firefox,
它在用户界面中启动Firefox浏览器。

当我通过输入"ps“命令检查Firefox进程时,我发现Firefox进程附带了一个控制终端(从上面的屏幕截图可以看出这一点),而且firefox进程也有bash作为父进程。
现在,我如何能够直接将键盘输入提供给Firefox浏览器窗口?(我在浏览器中输入了"Hello world“)
因为tty是附在进程上的,所以Firefox的输入应该是通过终端窗口,对吗?

我知道这里有一种叫X-11的东西,但不能全貌。
问此问题时,请将以下内容保留为没有提供关于上述查询的足够信息的基础,键盘输入和文本输出是如何工作的?
发布于 2020-12-16 09:42:34
X11应用程序的输入不是经过tty设备,而是作为X11事件提供的。X11服务器接收输入事件,确定哪个应用程序当前具有焦点,并将输入事件转换为相应的X11事件。
X11服务器为系统中的硬件提供了抽象。X11应用程序作为服务器的客户端运行,并从服务器接收事件。事件甚至可以远程接收,即您可以在本地系统上运行X11服务器,并使用它与运行在另一个系统上的X11应用程序进行交互。
您可以在运行xev时看到这种情况,如键盘输入和文本输出是如何工作的?中所提到的
发布于 2020-12-16 10:42:05
正如在另一个答复和评论中所提到的,但我想在这里说得更清楚。
标准输入,标准输出,标准误差,ttys,是最初的Unix中的一个概念,至今仍被广泛使用:ls,cat grep,等等。
X11,键盘焦点,窗口(一个程序上的视图,而不是20世纪80年代的操作系统)是另一个例子:firefox,konsole,等等。
它们都可以一起工作,例如,虚拟终端既是一个X11程序,又提供一个tty (伪tty)。
ttys。https://unix.stackexchange.com/questions/624721
复制相似问题