[英]How to change X window Properties
我正在使用 gdm,我的目標是禁用特定 X 窗口 ID 上的用戶交互。
我曾嘗試使用 xprop 更改許多 X-win 屬性,例如 WM_PROTOCOLS、WM_HINTS、_NET_WM_ALLOWED_ACTIONS。 雖然,我成功地更改了屬性,但看起來 wm 忽略了我的更改而不是采用默認值,或者需要 xsync(like) 步驟來反映這些更改。
使用 xprop 如下更改 WM_HINTS:
xprop -id 0x6a001f9 -format WM_HINTS 32cbcxxiixx -set WM_HINTS 3,False,1,0x0,0x0,0,0,0x0,0x0
xprop -id 0x6a001f9 WM_HINTS [BEFORE] 的結果:
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
xprop -id 0x6a001f9 WM_HINTS [AFTER] 的結果:
WM_HINTS(CARDINAL):
Client accepts input or input focus: False
Initial state is Normal State.
除了屬性類型從 WM_HINTS 更改為 CARDINAL 之外,其他一切都如預期,但窗口 # 0x6a001f9 仍然接收輸入。
xwininfo 的輸出確認:
xwininfo -id 0x6a001f9 -wm ====>
xwininfo: Window id: 0x6a001f9 "Log Attribute Selection"
No window manager hints defined
Window manager hints:
Displayed on desktop 0
Process id: (unknown)
Frame extents: 4, 4, 24, 4
我錯過了什么?
更新:檢查這個評論,它有在這里工作的代碼! https://gist.github.com/muktupavels/d03bb14ea6042b779df89b4c87df975d#gistcomment-3331569
不幸的是,我無法發表評論......但這可能會有所幫助(有一天它准備好了)。
我測試了你的命令,它給出了相同的結果,窗口提示改變但它仍然接收輸入焦點......
我想我們需要刪除 WM_TAKE_FOCUS 協議,但這樣做可能很復雜。
我認為我們可以聯合起來調整這個小代碼,讓它發生:
https://gist.github.com/muktupavels/d03bb14ea6042b779df89b4c87df975d
我仍在嘗試理解它以查看在那里/在那里更改的內容。
如果我們設法調整該代碼,這可能是唯一的答案。
觀察:你用 xprop 做了什么,如果用那個 gist 代碼完成可能會起作用,就像 xprop 不能改變一些東西但可以改變其他東西(比如窗口標題)。 因此,它可能更簡單,因為那里已經有代碼可以更改窗口提示!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.