Xubuntu 平铺:如何最大化终端窗口以进行部分平铺?

Xubuntu 平铺:如何最大化终端窗口以进行部分平铺?

我在 Xubuntu 14.10 中平铺终端时遇到问题。这些终端仿真器(我已经用xfce4-terminalxterm和测试过gnome-terminal)只能根据它们使用的字体的宽度/高度调整大小,因此不能调整大小1px,见图1。

图 1:调整终端窗口大小

图。1:当我将鼠标光标放在终端窗口的右下角时(图中未包含光标),它们会显示窗口的当前大小。如果我将光标向右移动,终端窗口的宽度将每次扩大 1 个字符。

现在,当我进行全屏平铺(最大化窗口)时,终端窗口将拉伸其主体以覆盖整个屏幕,见图 2。

图 2:最大化终端窗口

图2:最大化终端窗口,您可以看到一行[ NORMAL > ... < 100% < 1:1 ]以空白结束,其宽度短于字体的宽度。

但是当我进行部分平铺时(例如,通过将窗口移动到左边缘进行左平铺,以便它扩展以占据整个屏幕的左半部分),终端窗口将不会像我最大化时那样尝试拉伸,见图 3。

图 3:左侧平铺终端窗口

图3:左侧平铺的终端窗口与右侧平铺的网络浏览器和底部边缘留有空间。

问题是,如果我进行部分平铺,然后打开一个新的终端选项卡(ctrl+shift+t),终端窗口将垂直扩展其大小,这会使一些行超出屏幕(图 4)。这非常烦人。

图 4:平铺终端窗口的踢脚线

图4:打开新选项卡后,左侧平铺终端的最后一行(:q!)将被踢出屏幕。

最大化窗口时不会发生此问题(如图 2 所示)。

该问题在 Unity/Ubuntu 14.10 中也不会发生。

所以我想知道窗口(不仅仅是终端)是否可以部分最大化?或者还有其他解决方法?(或者这只是一个错误,应该报告给问题跟踪器?)

答案1

我在使用 Xubuntu 的默认终端仿真器和窗口管理器时遇到了同样的问题,我几乎要疯了才能修复它。我有一个部分答案,但不幸的是,没有真正的解决方案。

正如您所提到的,终端仿真器中的窗口大小(至少在xtermxfce4-terminal中,我测试过的)是根据字体大小而不是像素来处理的,这可能是意料之中的。根据X 窗口系统手册页:“几何规范的宽度和高度部分通常以像素或字符为单位来衡量,具体取决于应用程序。”

这就是在进行部分平铺时终端窗口周围有间隙的原因:窗口管理器会最大化一半显示屏内的窗口,同时使用字体大小的整数倍作为尺寸。可能有办法添加偏移量或通过深入xfwm或 X 配置调整来修复此问题,但超出了我的能力(我对 Linux 还很陌生)。

窗口在最大化时占据整个屏幕区域的原因似乎与新安装的 Xubuntu 中默认启用的设置有关(我认为)。如果您打开 Xfce4 设置管理器,转到“窗口管理器调整”,然后单击“辅助功能”选项卡,则有一个选项“最大化时隐藏窗口框架”。选中此选项后,最大化的终端窗口周围没有间隙;未选中此选项时,则有间隙。

不幸的是,此选项仅适用于最大化的窗口,而不适用于通过部分平铺“最大化”到屏幕一半的窗口。禁用它至少会使两种情况下窗口周围的间隙保持一致。

至于标签栏将线条推离屏幕的问题,打开新标签后再次平铺窗口将使窗口底部重新可见。您还可以将终端设置为始终显示标签栏。此选项无法通过图形首选项菜单使用;您必须编辑并将选项~/.config/xfce4/terminal/terminalrc更改MiscAlwaysShowTabsTRUE。这样,打开新标签时窗口的大小就不会改变。

很抱歉我无法提供更多帮助。

答案2

您可以使用 xprop 从任何终端窗口删除 WM_NORMAL_HINTS。

将这些行放入 ~/.bashrc 文件中:

if [ "$DISPLAY" ]; then
 activ_win_id=`xprop -root _NET_ACTIVE_WINDOW`
 activ_win_id=$(echo $activ_win_id | awk '{ activ_win_id=substr($0,41,9); print activ_win_id; }' )
 xprop -id $activ_win_id -remove WM_NORMAL_HINTS
fi

提示将自动从当前终端窗口中删除。

相关内容