如何在Ubuntu / Gnome上将宽屏垂直拆分为两个虚拟工作区?


23

我的新笔记本电脑有一个16:9的大屏幕,我发现在95%的时间内我没有在上面观看高清电影时,很难充分利用它。

我想通过将物理屏幕拆分为两个工作区来将其设置为一种虚拟双屏幕。我知道我可以手动安排窗口,但是我希望能够最大化一个窗口,使其只消耗一半的显示器,并且将弹出对话框的中心放在其半屏上。

有某种插件可以做到这一点吗?


如果您使用的是compiz,则可能会发现网格插件更简单,请参阅下面的答案。
kynan 2012年

Answers:


24

您可以使用“ fakexinerama ”来实现您想要的:

 Fake Xinerama is a replacement libXinerama library that instead 
 of querying the XServer reads ~/.fakexinerama and provides fake 
 information about Xinerama screens based on this file. It can be 
 used to fake a Xinerama setup even on computers with just one monitor
 or to fake Xinerama setup other than one specified in the XServer 
 configuration (e.g. making one screen smaller when using two same 
 screens). It's probably only useful for developers.

1
谢谢,这很完美,并且比我实际希望的要好。我的基座,面板栏和浮动窗口跨越了物理屏幕,但是最大化和“全屏”的应用程序(包括我的vmware guest虚拟机实例)礼貌地保持在屏幕的一半。我对linux还是很陌生,所以在我的显示设置上进行黑客攻击有点冒险,但实际上并没有涉及太多工作。 我在下面的其他答案中记录了我对其他Linux业余爱好者(如我)的确切步骤。
大卫2010年

2
链接断开。知道在哪里可以找到此软件吗?
2013年

17

为了进一步扩展akira在使用Lubos Lunak的“ fake xinerama”方面的技巧,以下正是我如何使其适用于我的方法:

  1. 我从Fake Xinerama网站下载了这个Xinerama.c文件
  2. 我打开一个终端,然后导航到保存Xinerama.c的文件夹文件夹。
  3. 我执行了:
    gcc -O2 -Wall Xinerama.c -fPIC -o libXinerama.so.1.0.0 -shared
  4. 我通过输入Alt-F2然后以根身份打开nautilus(gnome文件浏览器):
    gksu nautilus
  5. 我导航到/ usr / lib,找到libXinerama.so.1.0.0并对其进行了备份。
  6. 我从下载目录中将libXinerama.so.1.0.0复制到了/ usr / lib目录中,覆盖了其中的副本(我刚刚在第5步中进行了备份,因此以后可以根据需要撤消此操作。)事情很清楚,注意到“假”版本的文件大小(12.6 kb)比我要替换的“真实”版本的文件大小(8.6 kb)更大。
  7. 我在/ home / dave目录中创建了一个名为.fakexinerama的新文本文件,并将其放入其中:(基于1440x900的物理屏幕尺寸)
    2
    0 0 720 900
    720 0 720 900

Fake Xinerama允许您定义所需的任何类型的虚拟屏幕设置,但我只需要垂直分割屏幕。为了在显示器上实现这一点,请看我的文件示例,将X尺寸乘以Y像素,只需将X / 2替换为720,将Y替换为900。

而已。我注销并重新登录,然后启动并运行。

再次感谢Lubos Lunak创建此mod,并感谢akira向我指出了它。


三头显示器使我受益匪浅。Xinerama的三个桌面速度非常慢,因此使用它可以让我将其中两个放置在twinview中,而不会烦人地最大化两个问题,并且让第三个作为单独的X屏幕与Xinerama一起加入twinview。感谢您抽出宝贵的时间写出大卫的步骤!
凯尔·布​​兰特

7

现在有一个名为FakeXRandR的新项目,可以直接进行。

这是一种欺骗X11服务器的工具,可以认为监视器的数量比实际数量多。它与libXRandR和libXinerama挂钩,并用多个虚拟监视器替换某些可配置的监视器配置。该软件包随附的工具可用于配置监视器的拆分方式。


我偶尔会成功使用fakexrandr。不幸的是,当我有xorg.conf(我的超宽显示器需要自定义分辨率)时,我的屏幕变得混乱了。我被迫删除fakexrandr配置,重新启动X并重新配置fakexrandr。
JAponte

3

无需附加软件即可在XRandR 1.5中完成。虽然fakexinerama和FakeXRandR都没有在Xubuntu上为我工作,但此解决方案最终将屏幕分成了两部分。

要拆分监视器,请执行以下操作:

  1. 输入xrandr终端以检查输出名称和您要拆分的显示器的当前分辨率。
    在我的系统上,结果是:

    Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
    HDMI1 disconnected (normal left inverted right x axis y axis)
    HDMI2 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 509mm x 286mm
       1920x1080     60.00*+  50.00    59.94
       1920x1080i    60.00    50.00    59.94  
       1600x900      60.00  
       1280x1024     75.02    60.02  
       1152x864      75.00  
       1280x720      60.00    50.00    59.94  
       1024x768      75.08    60.00  
       800x600       75.00    60.32  
       720x576       50.00  
       720x576i      50.00
       720x480       60.00    59.94
       720x480i      60.00    59.94
       640x480       75.00    60.00    59.94
       720x400       70.08
    VGA1 disconnected (normal left inverted right x axis y axis)
    VIRTUAL1 disconnected (normal left inverted right x axis y axis)
    

    我们可以看到我的显示器已连接到HDMI2,并且分辨率设置为1920x1080。

  2. 使用xrandr --setmonitor命令添加2个虚拟监视器,以确保它们与您的物理显示器重叠并且彼此相邻放置。该命令的语法为(不带引号):

    xrandr --setmonitor "monitor_name" "width_px"/"width_mm"x"height_px"/"height_mm"+"x_offset_px"+"y_offset_px" "output_name" 
    

    对于我的系统,它是:

    xrandr --setmonitor HDMI2~1 960/254x1080/286+0+0 HDMI2
    xrandr --setmonitor HDMI2~2 960/255x1080/286+960+0 none
    
  3. 尽管上面已经在我的系统上配置了虚拟监视器,但是直到我执行完之后才应用更改(它似乎刷新了xrandr):

    xrandr --fb 1921x1080
    xrandr --fb 1920x1080
    

要在重新启动后保留更改,您需要在登录时执行以下命令。您可以通过在~/.profile文件末尾附加命令来实现。


1
它存在于xrandr中很好,太好了。但这仅使显示器的左侧可用,右侧没有显示任何内容。而且我没有显示任何错误。-哦,看来Awesome WM不支持监视器,而仅使用输出。因此,您也需要WM中的支持。
nert

哦,没关系,很棒的支持xrandr的显示器,对我来说不起作用。但是很棒的人可以自己做到这一点:awesomewm.org/apidoc/classes/screen.html#screen
nert

1

我碰到了有关omgubuntu的文章,该文章提供了一种非常简单的方法,即使用Compiz控制面板在Ubuntu / Gnome中模拟Windows Snap功能。Windows Snap使我只能使用一个宽屏桌面,但是Windows本身可以轻松停靠以填充任一半屏。(这并不是我最初想要的,但仍然很方便。)


1

多年来,我一直在使用Triplehead2go来解决这些确切的问题。该设备将合并多达3个监视器,并将一个巨大的监视器报告给X。

这是在xorg.conf中将大型监视器拆分为虚拟工作区的方法:

Section "Device"
    # ... your other settings above
    Option         "TwinViewXineramaInfoOverride" "1280x1024+0+0, 1280x1024+1280+1, 1280x1024+2560+0"
EndSection

并且,如果您使用的是最新的nvidia驱动程序,则这些驱动程序将提供其自己的xinerama扩展名,该扩展程序似乎忽略了上述设置,因此您必须在该设备部分中添加以下内容:

Option         "NoTwinViewXineramaInfo" "true"

0

我相当确定您可以通过调整X配置文件来做到这一点,但我不只是因为我可能会破坏我的显示配置。如果尝试此操作,请务必小心,备份显示配置并确保您具有备用登录名,以防万一必须修复显示。

您可能会从xmonad之类的平铺窗口管理器中获得更大的满足感,甚至可以运行compiz来控制窗口的打开,关闭和平铺方式。


0

对我来说效果很好:

我将以下内容用于两个监视器(1280x1024 + 2048x1152):

3
0 0 1280 1024
1280 0 1024 1152
2304 0 1024 1152

0

如果您使用的是compiz,则可能会发现其网格插件是一个更简单,更灵活的解决方案。您可以将其配置为在将其向边缘拖动时在屏幕的左/右半部平铺一个窗口。

这就是David链接到的文章中描述的Window Snapping功能。此外,您可以配置快捷方式并使窗口占据屏幕顶部/底部的一半或四分之一。

Xinerama导致明显的性能下降(因为它在所有Xinerama屏幕上复制了X动作),并且不适用于复合窗口管理器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.