从 .bashrc 最大化终端时 wmctrl 的行为不一致

从 .bashrc 最大化终端时 wmctrl 的行为不一致

我有这个

wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz

在我的 .bashrc 中,以便在打开时最大化我的终端。奇怪的是,它似乎只是随机工作,有时会导致全屏终端,有时则不会,没有可辨别的模式。在已打开的终端中输入上述命令始终会成功。

我应该注意到该命令xdotool windowsize $(xdotool getactivewindow) 100% 100%(来自答案),它达到了类似的效果,当放置在我的 .bashrc 中时也会导致相同的零星行为。同样,当从已经打开的提示符运行时它总是有效。更远,有时当此命令不起作用时,我将在第一个提示之前收到以下错误消息:

XGetWindowProperty[_NET_ACTIVE_WINDOW] failed (code=1)
xdo_get_active_window reported an error
There are no windows in the stack
Invalid window '%1'
Invalid argument count, got 3, expected 2
Usage: windowsize [--sync] [--usehints] [window=%1] width height
If no window is given, %1 is used. See WINDOW STACK in xdotool(1)
--usehints  - Use window sizing hints (like font size in terminals)
--sync      - only exit once the window has resized

这让我认为整个错误在查找当前活动窗口上达到了平衡。

我使用 Mint 19.3 和 XFCE4,我的终端是 urxvt。是什么导致了这种不一致的行为?

答案1

这似乎是一个XY问题。显示的终端与尝试查找终端并调整其大小的 shell 启动脚本之间存在竞争。 OP 发现 asleep 0.1足以让窗口被发现为活动窗口。

然而,正确的做法是以正确的初始大小打开终端,而不是以某种默认大小打开它,然后调整它的大小。初始大小可以通过加载到 X 服务器中的默认值(通常使用程序)或使用终端仿真器的xdb标准命令来指定。-geometry

相关内容