Bash
wmctrl 在最大化來自 .bashrc 的終端時的行為不一致
我有這個
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
這讓我認為整個錯誤平衡在找到目前活動的視窗上。
我正在使用帶有 XFCE4 的 Mint 19.3,我的終端是 urxvt。什麼可能導致這種不一致的行為?
這似乎是一個XY 問題。正在顯示的終端與嘗試查找和調整終端大小的 shell 啟動腳本之間存在競爭。OP 發現 a
sleep 0.1
足以讓該視窗被發現為活動視窗。然而,正確的做法是以正確的初始大小打開終端,而不是以某個預設大小打開它然後調整它的大小。初始大小可以通過載入到 X 伺服器的預設值來指定,通常使用
xdb
程序,或者使用-geometry
終端仿真器的標準命令。