id 游戏中的全屏窗口模式

id 游戏中的全屏窗口模式

我运行的是 TwinView 双显示器系统。我喜欢在其中一个显示器上全屏玩游戏,而不是同时在两个显示器上玩游戏。使用wine,只需将其设置为桌面模式并将分辨率设置为一个屏幕的分辨率即可。对于 OpenTTD,我使用了 Compiz 的 Window Rules 插件。

但我有几个原生游戏无法使用此功能。今天的实验涉及 Prey(Doom 3 引擎),但我在其他 ID 引擎上也遇到过类似的问题。

简而言之:是否有人找到让 Prey/OpenAreana/Doom3/etc 以窗口模式运行但具有全屏装饰(也就是说,没有边框且在面板上方)的方法?

答案1

我也遇到了同样的问题博克斯,但按照描述的步骤成功解决了这个问题在他们的论坛上

简而言之

  1. wmctrl通过打开终端并发出以下命令进行安装

    sudo apt-get install wmctrl
    
  2. 将您的游戏设置为以窗口模式启动。

  3. 用于wmctrl获取窗口名称列表并选择您的窗口名称

    wmctrl -xl
    
  4. 使用wmctrl切换到全屏,使用你在步骤3中从列表中得到的“something.something”。这里我以Boxee为例:

    wmctrl -x -r Boxee.Boxee -b toggle,fullscreen
    

答案2

您可以尝试在 X 设置中尝试关闭一个显示器。这是一种解决方法,而不是修复方法,其他人可能会有更好的答案。

答案3

好吧,在忍受了多年的装饰之后,我终于找到了解决办法。问题出在 SDL。它似乎没有遵循绘制窗口的标准方式,使得它们无法通过 Compiz 定位(然后通过 FULLSCREEN 提示删除装饰)……直到现在。

您可以设置SDL_VIDEO_X11_WMCLASS环境变量,窗口​​将采用该类。这本身并不会自动意味着任何事情,但是当您要求 Compiz 将该类呈现为全屏时,您就得到了您一直想要的东西。

你不必全局设置。只需将启动器更改为如下内容即可:

env SDL_VIDEO_X11_WMCLASS=pie /opt/revengeofthetitans/revenge.sh

并将 Compiz 的窗口规则设置class=pie为全屏目标。

我应该指出它仍然是一个窗口。游戏需要设置为窗口模式。大多数游戏在其设置中都有一个选项。

相关内容