xdotool:将窗口移动到“上方”​​ 0 0

xdotool:将窗口移动到“上方”​​ 0 0

正如标题所示。当我这样做时

xdotool getactivewindow windowmove 0 0 windowsize 1200 $height_first_monitor

xdotool移动窗口。但当我这样做时

xdotool getactivewindow windowmove -40 0 windowsize 1200 $height_first_monitor

我得到一个windowmove: unrecognized option '-40'

在 Google 上搜索“xdotool move above 0 0”和“xdotool move negative”等类似内容没有得到任何有用的结果。

答案1

这似乎是一个错误,但从很久以前开始它可能现在被称为特征。要在某些地方使用负数,您需要添加参数结束标记 --。例如,你可以这样做

xdotool getactivewindow windowmove 0 -10

但你需要做

xdotool getactivewindow windowmove -- -10 0

这是因为 windowmove 可以采用可选参数--sync--relative,但也可以(可能是为了向后兼容)采用单个破折号:-sync-relative。遗憾的是,-10然后被误认为是这样的(意外的)参数。

看看来源对于 windowmove,你可以看到它使用了标准 C 库函数获取opt_long_only()。此函数查找以--或开头的长参数-。另一种方法getopt_long()是只查找--长参数。

我不确定上述链接是否是可靠的来源,但此功能似乎在 2010 年之前就存在了。

相关内容