簡體   English   中英

如何更改 X 窗口屬性

[英]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


不幸的是,我無法發表評論......但這可能會有所幫助(有一天它准備好了)。

我有完全一樣的問題:
https://unix.stackexchange.com/questions/590282/how-to-prevent-input-focus-for-a-single-window-in-gnome-shell-window-manager

我測試了你的命令,它給出了相同的結果,窗口提示改變但它仍然接收輸入焦點......

我想我們需要刪除 WM_TAKE_FOCUS 協議,但這樣做可能很復雜。

我認為我們可以聯合起來調整這個小代碼,讓它發生:
https://gist.github.com/muktupavels/d03bb14ea6042b779df89b4c87df975d
我仍在嘗試理解它以查看在那里/在那里更改的內容。

如果我們設法調整該代碼,這可能是唯一的答案。

觀察:你用 xprop 做了什么,如果用那個 gist 代碼完成可能會起作用,就像 xprop 不能改變一些東西但可以改變其他東西(比如窗口標題)。 因此,它可能更簡單,因為那里已經有代碼可以更改窗口提示!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM