如何更改_NET_WM_NAME(X库)

时间:2014-04-23 12:58:12

标签: xorg x11

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

但是xkbind只更改了WM_NAME属性

这是xkbind.c代码片段

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属性?

实施例

xkbind
gvim

xprop输出

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

1 个答案:

答案 0 :(得分:3)

XChangeProperty()的直接调用应该可以解决问题:

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