我有這個
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