我正在尝试玩一款没有无边框窗口模式的游戏,并且我不想在游戏上使用普通窗口模式。
我使用两个显示器,一个是大型主显示器,另一个用来跟踪聊天、维基等内容。我玩的大多数游戏都有一个选项,可以在我玩游戏时将全屏游戏保持在最上面(无边框窗口模式),但是,对于没有此功能的游戏来说,这可能会非常令人沮丧。
如果我点击第二台显示器,有什么方法可以强制游戏保持最大化?
答案1
我没有足够的声望来发表评论gunix 的回答,但有人要求提供背景信息,因此我只能写下自己的答案。
此行为通常是由 SDL 引起的,SDL 是一个常用的库,用于为游戏创建 OpenGL 上下文来渲染事物。这次提交2012 年在 libSDL2 中添加了一个环境变量,SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS
顾名思义,该变量控制游戏在失去窗口焦点时是否将自身最小化。
要停止此行为,您需要将此环境变量设置为 0。有几种方法可以做到这一点:
- 修改位于主目录中的本地环境文件,也许
.profile
或.xprofile
;.bashrc
会将其设置为您的 Bash shell,但如果您通过 xdm 或其众多替代方案之一登录,这可能没有帮助。这将影响所有使用 SDL 并以您的用户身份运行的游戏。 - 修改全局环境文件,通常
/etc/profile
是 或/etc/environment
。与主目录中的环境文件相比,这不是推荐的选择,但如果您是系统上的唯一用户,并且.profile
即使在注销并重新登录后更改似乎也没有应用,那么这是值得尝试的第二件事。
对于以上两个选项,您都需要添加此行:
export SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0
如果这是 Steam 游戏,您可以将其添加到启动选项中:
SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0 %command%
如果这不是 Steam 游戏,但您仍想仅针对这一个游戏进行更改,则可以
launch_game.sh
在与游戏主可执行文件相同的目录中创建一个文件:#!/bin/sh export SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0 ./SomeGame "$@"
答案2
添加以下行:
export SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0
到文件/etc/环境然后重新启动。
答案3
如果您很难找到本地环境变量文件,那么可以通过控制面板轻松添加新变量。
请按照以下步骤操作https://www.java.com/en/download/help/path.html
- 在 中
Search
搜索并选择:System (Control Panel)
- 单击
Advanced
系统设置链接。 - 点击
Environment Variables
。 - 在该部分中
System Variables
找到PATH
环境变量并选择它。
SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS
一旦选择“新建”并添加具有值的变量0
并保存。
如果您找不到该文件,这应该可以解决您的问题,而无需直接编辑该文件或使用命令行。
答案4
许多游戏可以在图形设置中设置为“无边框窗口”、“窗口无边框”或类似设置。设置后,游戏仍将使用整个屏幕,但操作系统会将其视为常规窗口。我认为这可以防止在单击第二个屏幕时将游戏最小化。