我有一个宽屏格式(1024x600)的小屏幕上网本,这意味着很多程序的设计者没有想到这样的东西打开无法调整大小且底部被遮挡的窗口。通过 Ubuntu 10.04,我使用 xrandr 命令处理它:
xrandr --output LVDS1 --fb 1024x768 --panning 0x768
Run Code Online (Sandbox Code Playgroud)
(注意 0x),它的效果是给我一个垂直平移的正常大小的虚拟桌面,但是(不知何故)窗口管理器忽略了它,所以最大化的窗口只占用了物理屏幕。结果是,除非弹出一个大对话框,否则我不必平移:很好。
在 11.04 中,这不太有效。我上面说的一切都是真的,但底部 168 像素似乎永久变黑,所以如果一个大窗口向下延伸,我看不到里面有什么(但是,它在那里:调整大小手柄出现,并且对那些很有用允许调整大小的场合)。我想这是与 Unity 相关的。这违背了目的,所以我正在尝试这个 xrandr 命令:
xrandr --output LVDS1 --fb 1024x768 --panning 1024x768
Run Code Online (Sandbox Code Playgroud)
(注意 1024x)。唉,它不再欺骗窗口管理器,最大化的窗口都从底部消失了。题:
如何设置以使“最大化”窗口仅占用物理屏幕(或更一般地说,占用特定的屏幕)?
我很乐意回答的一个相关问题是:
为什么第一个 xrandr 命令会愚弄窗口管理器(根据手册页,“0x”表示禁用了沿水平轴的平移;在功能上,这毫无意义,因为虚拟大小与物理大小相同)?Unity 出了什么问题?
请注意,“最大化”操作是必要的,因为在 Unity 中,最大化窗口的样式不同:它的标题栏被吸收到屏幕顶部的工具栏中,为我节省了宝贵的像素。简单地调整窗口大小并不是一个好的选择。
参考:
我发现了这个问题:我想防止最大化覆盖屏幕的三分之一。当 Compiz Maximumize 似乎什么都不做时,我感到非常失望(有一个 Launchpad 错误:https ://bugs.launchpad.net/ubuntu/+source/compiz-fusion-plugins-extra/+bug/462158 )。
我也在超级用户上发现了同样的问题:https : //superuser.com/questions/269966/id-like-to-prevent-maximize-from-covering-one-third-of-the-screen,它提供了两种选择。Compiz Grid 插件没有帮助,因为它没有最大化,正如我上面所描述的。我还没有尝试过 Python 窗口管理器,但它看起来类似于 Grid。一般来说,我不希望聪明的脚本会有所帮助,因为“最大化”的含义是由窗口管理器本身控制的,因此解决方案应该是 Compiz 解决方案。有吗?
让我回答我自己的问题;答案很奇怪。诀窍在于,所需的桌面行为(在 10.04 中保留)现在(在 11.04 中)由 Compiz 控制,Compiz 具有“输出”的概念:即要绘制的屏幕。这些是在 CompizConfig 设置管理器(包compizconfig-backend-gconf或-kconfig)中,在“常规选项”菜单中,在“显示设置”选项卡下进行配置的。
这东西有三个设置,每一个都很重要。最重要的是“检测输出”:必须取消选中,因为重点是我想创建一个非物理屏幕设置,而自动检测只会选择我的屏幕大小。
第二个最重要的是“输出”框,它是一个分辨率列表。乍一看,你可能以为这里放的东西是“1024x768”,但这是错误的:它告诉Compiz使用整个虚拟屏幕,所以最大化的窗口会流入底部;这是错误的行为。但是写“1024x600”也不起作用,因为这会告诉 Compiz 假装屏幕只有 600 像素高;因此,违反直觉的结果是它决定拉伸每个窗口。这既丑陋又无功能,会导致惊人的图形故障,并且神秘地将按钮从您需要单击以激活它们的位置移开。不好。
一个更好的选择是写“1024x600+0-168”,它告诉 Compiz 底部实际上有 168 个未使用的像素:再现了我抱怨的“黑条”行为。很高兴知道它来自哪里,但我仍然不想要它。但它告诉我这意味着什么:这意味着 Compiz 只是忽略这些像素:它不会在那里绘制窗口。不过,我的鼠标仍然在那里,因为这种行为是由 X 控制的,它在 Compiz 之前。似乎要做的事情是以某种方式告诉 Compiz 在那里绘制(这样窗口可以去那里),但也不要在那里绘制(所以他们不想去那里)。
因此,完全正确的解决方案是向 Compiz描述两个输出设备:一个“1024x600+0-168”和一个“1024x768”,从而告诉 Compiz 同时绘制而不是绘制那些底部像素。但是如何确保它知道“想要”哪一个呢?这是此选项卡中的第一个选项:“重叠输出处理程序”。将其设置为“首选较小的输出”,这正是我在上面所说的。
所以答案是:运行xrandr --mode 1024x700 --fb 1024x768 --panning 0x768;转到 Compiz 的显示选项并输入两个输出“1024x600+0-168”和“1024x768”;取消选中“检测输出”;并使“重叠输出处理程序”更喜欢较小的输出。哇。
| 归档时间: |
|
| 查看次数: |
5319 次 |
| 最近记录: |