X11

FVWM:有條件地讓 xterm 保持領先

  • April 23, 2015

算法:如果目前沒有視窗在頂部,則讓下一個新的 xterm 留在頂部(第 6 層)。

我讓它工作:

Module FvwmEvent

AddToFunc MyUpdate
+ I WindowStyle StaysOnTop

AddToFunc MyUpdateIfXterm
+ I Current ("XTerm") MyUpdate

AddToFunc MyUpdateIfLayer6Empty
+ I None (Layer 6) MyUpdateIfXterm

*FvwmEvent: Cmd
*FvwmEvent: add_window MyUpdateIfLayer6Empty

Style * ClickToFocus

現在,我希望頂部的 xterm 也沒有標題,因此我將第四行更改為:

+ I WindowStyle StaysOnTop, NoTitle

但是,這會阻止 xterm 進入頂部。好像StaysOnTop 停止工作了。

我遇到了錯誤嗎?如果是這樣,是否有解決方法?

版本:

$ fvwm --version
fvwm 2.6.5 compiled on May 15 2014 at 22:08:55
with support for: ReadLine, Stroke, XPM, PNG, SVG, Shape, XShm, SM, Bidi text, Xinerama, XRender, XCursor, XFT, NLS

UpdateStyles將視窗移到頂部後立即插入可以解決問題:

AddToFunc MyUpdate
+ I WindowStyle StaysOnTop
+ I UpdateStyles
+ I WindowStyle NoTitle

從文件:

延遲執行命令

注意:有許多命令會影響特定、部分或全部視窗的外觀和感覺,例如Style、Mouse、Colorset、TitleStyle等。出於性能原因,此類更改不會立即應用,而是僅在 fvwm 空閒時應用,即沒有使用者互動或模組輸入未決。具體來說,在函式中設置的新樣式選項直到函式完成後才會應用。這有時會導致不良影響。

要強制立即應用所有掛起的更改,請使用 UpdateStyles、RefreshRefreshWindow命令。

引用自:https://unix.stackexchange.com/questions/197742