Xorg - 默认情况下启动窗口未映射的程序

Xorg - 默认情况下启动窗口未映射的程序

据我所知,有两种方法可以取消应用程序窗口的映射。

  1. 从应用程序的设置(如果该选项存在)
  2. 使用像 xdotool 这样的东西

默认情况下,某些应用程序窗口需要取消映射(例如面板)。而且它们恰好不符合选项 1。

我能做的就是启动应用程序,然后立即使用 xdotool 隐藏它。问题是该窗口在隐藏之前会显示很短的一段时间。

您是否知道默认隐藏窗口的通用方法?只需指示 Xorg 执行此操作即可,但我不知道如何执行。

答案1

您是否知道默认隐藏窗口的通用方法?

通用方法称为“窗口管理器”(WM)。它在 X 中的工作方式是应用程序调用X地图窗口创建一个窗口后。 (应用程序可以在此处检查应用程序设置并决定不这样做 - 这需要在应用程序中为此编写显式代码。)但是此调用不会直接映射窗口,它可以被 WM 拦截,并且那么WM可以决定在映射之前将该窗口移动到某个位置,或者不映射它,而是显示一个图标,或者做一些完全不同的事情。

以同样的方式,WM 拦截 unmap 调用。

所做xdotool的基本上是假装它是应用程序,然后像应用程序一样执行映射或取消映射命令。

所以不,这不是“指示 Xorg”的问题 - 你不能在 X 服务器中配置它。

但是,如果您有一个可以对其进行配置的窗口管理器(如果应用程序最初显示为图标,则可以与配置一起进行),那么这是一种方法。

第二种方法是编写您自己的类似 WM 的程序(或修改现有的 WM),然后您可以添加所有配置来以您想要的任何方式处理拦截的调用。

相关内容