AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1153956
Accepted
hiigaran
hiigaran
Asked: 2019-06-26 12:46:20 +0800 CST2019-06-26 12:46:20 +0800 CST 2019-06-26 12:46:20 +0800 CST

在特定窗口上打开全屏应用程序

  • 772

运行 19.04,具有三重显示器设置。我用 Wine 在我的中央显示器上全屏打开游戏,只需运行wine game.exe. 然而,Wine 最近更新了,现在它在我最左边的显示器上打开了。我怎样才能让它回到我的中央显示器上打开?

我尝试--geometry在 Wine 命令末尾使用该选项,但似乎没有什么不同。该软件仍然在同一位置打开。

中央监视器也被确认为主监视器。

使用 Nvidia 驱动程序 430.26。


如果我记得,X 不会为每个监视器创建单独的屏幕。相反,它将监视器组合成一个逻辑屏幕。看着nvidia-settings,我看到 X 屏幕 0 显示为 5040x1086。我的三台显示器从左到右设置为 1680x1050、1920x1080 和 1440x900。

我不知道这是否是 X Server 一直以来的做法,但如果每台显示器都是其自己的单独屏幕,也许我的问题可以解决。有没有办法做到这一点?还是有更好/更简单的解决方案来解决这个问题?

大约一年前,我问过一个类似的问题,关于如何在特定显示器上打开终端。不幸的是,同样的方法似乎不适用于这里的情况。


编辑:

显示的信息nvidia-settings表明X Screen 0包含我的三台显示器的显示名称为hiigaran:0.0。

根据earthmeLon 的建议,我尝试SDL_VIDEO_FULLSCREEN_HEAD在我希望用来启动相关应用程序的命令之前添加。以下三个命令用于测试应用程序将在哪个监视器上打开:

SDL_VIDEO_FULLSCREEN_HEAD=0 wine game.exe
SDL_VIDEO_FULLSCREEN_HEAD=1 wine game.exe
SDL_VIDEO_FULLSCREEN_HEAD=2 wine game.exe

使用这些命令和单独使用这些命令之间没有观察到差异wine game.exe。该应用程序仍然在最左侧的显示器上全屏打开。

multiple-monitors wine xorg
  • 2 2 个回答
  • 4247 Views

2 个回答

  • Voted
  1. earthmeLon
    2019-06-26T14:31:13+08:002019-06-26T14:31:13+08:00

    通常,您使用单个屏幕,并且您的所有显示器都属于该屏幕,如您所见。通过使用多个屏幕,您可以更准确地定义应用程序的加载位置,但您无法在不同屏幕之间移动应用程序。

    如果您使用多个屏幕,您将通过DISPLAY变量确定哪个屏幕:

    DISPLAY=:1 wine
    

    为了设置哪个监视器用于全屏应用程序,以及确保所有监视器不完全用于全屏应用程序,我最幸运地设置了SDL_VIDEO_FULLSCREEN_HEAD环境变量,以便在窗口管理器中可用。您将其设置为显示器的编号,从零开始:

    export SDL_VIDEO_FULLSCREEN_HEAD=0
    

    对于三台显示器,您可以在0、1和之间进行选择2。您可以在~/.xinitrc/中设置它~/.xsessionrc。您放置它export的位置高度取决于您的窗口管理器如何启动,使用 GDM、LightDM 或startx等。

    您可以通过在运行时设置变量来测试这是否适合您,或者哪个监视器是哪个监视器:

    $ SDL_VIDEO_FULLSCREEN_HEAD=1 wine
    

    注意: OP 提到此测试不起作用。


    将其设置为默认监视器或确保它不是您的默认监视器可能是有意义的。默认监视器可以设置为xrandr:

    $ xrandr primary NAME_OF_DEVICE
    

    Wine 虚拟桌面

    如果所有这些都失败了,您可以将 Wine 配置为使用虚拟桌面。这将导致 Wine 创建一个 Windows 窗口,您可以指定此窗口的分辨率(以匹配您的显示器的分辨率)。通过 Wine 运行的全屏 Windows 应用程序将仅填充该窗口。您可以使用窗口管理器将其移动到正确的桌面/监视器。

    这可以通过打开 Wine 配置 (winecfg) 并打开图形选项卡来完成,或者/desktop=name,1024x768在运行 wine 时使用标志:

    wine /desktop=name,1024x768 game.exe
    
    • 0
  2. Best Answer
    hiigaran
    2019-06-28T05:26:16+08:002019-06-28T05:26:16+08:00

    因此,似乎在虚拟桌面上运行 Wine 是可行的方法。我一直在避免这样做,因为如果我要将桌面设置为我想要使用它的显示器的分辨率,虚拟桌面的标题栏与 Ubuntu 的顶部/活动栏相结合会导致相当一部分虚拟桌面在底部被切断。再加上码头会让事情变得更糟。

    在摆弄了一下之后,我想出的最佳解决方案如下:

    1. 确保gnome-control-center在“设置”>“设备”>“键盘”中设置了热键,用于将窗口移动到不同的显示器,以及用于进入全屏
    2. 正常使用 Wine 启动您想要的程序
    3. 当虚拟桌面出现并获得焦点时,使用热键将窗口移动到所需的监视器。
    4. 使用全屏热键让虚拟桌面使用整个显示器区域

    虽然在正确的显示器上打开已经全屏的软件本来是理想的,但这对我来说是一个合适的解决方案,尽管从技术上讲,它更像是一种解决方法,而不是实际的解决方案。

    • 0

相关问题

  • 类似于 Eyefinity 的东西?

  • 为自定义 PPA 修补 Wine 的正确方法是什么?

  • 如何在 Ubuntu 中运行 Windows XP

  • 如何重置我的键盘布局?

  • 帮助让 Flash 播放器在第二个屏幕上工作?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve