本文介绍了如何更改 _NET_WM_NAME(X 库)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用http://xkbind.sourceforge.net/(用于在窗口标题中显示键盘状态)在我的 Mint Maya 上(基于 Ubuntu 12.04)

I try usehttp://xkbind.sourceforge.net/ (useful for displaying keyboard state in window title)on my Mint Maya (based on Ubuntu 12.04)

但 xkbind 只更改 WM_NAME 属性

But xkbind change only WM_NAME property

这里是 xkbind.c 代码片段

Here is xkbind.c code fragment

if(XGetWindowAttributes(dpy, window, &wa)) {
    XSelectInput(dpy, window, wa.your_event_mask&~PropertyChangeMask);
    XSync(dpy, False);
    XSetWMName(dpy, window, p_tp);
    XSelectInput(dpy, window, wa.your_event_mask);
}

应该使用什么函数来改变_NET_WM_NAME属性?

What function should be used change _NET_WM_NAME property too?

示例

xkbind
gvim

xprop 输出

WM_NAME(STRING) = "Lat::[No Name] - GVIM"
_NET_WM_NAME(UTF8_STRING) = "[No Name] - GVIM"

推荐答案

XChangeProperty() 应该可以解决问题:

    XChangeProperty( display, win,
        XInternAtom(display, "_NET_WM_NAME", False),
        XInternAtom(display, "UTF8_STRING", False),
        8, PropModeReplace, (unsigned char *) utf8_buffer,
        count);

这篇关于如何更改 _NET_WM_NAME(X 库)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 06:01