繁体   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