基于Motif的窗口管理器(Mwm
,Dtwm
,4Dwm
,5Dwm
)允许将自定义菜单项(带有相应的回调)添加到应用程序窗口菜单(见截图,可用的要点here)。应用程序本身也需要与-lXm
链接(至少XmAddProtocols()
和XmAddProtocolCallback()
可用)。
从 X Window 的角度来看,这是通过客户端设置的一些额外Atom
来实现的:
_MOTIF_WM_MESSAGES(ATOM) = _MOTIF_WM_OFFSET, CUSTOM_MENU_ACTION_A, CUSTOM_MENU_ACTION_B
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, _MOTIF_WM_MESSAGES
_MOTIF_WM_MENU(STRING) = "no-label f.separator\n
Custom\ Menu\ Title f.title\n
XTerm f.exec \"xterm &\"\n
Custom\ Menu\ Action\ A Shift Alt<Key>F1 f.send_msg 393\n
Custom\ Menu\ Action\ B Shift Alt<Key>F2 f.send_msg 394\n"
显然,任何现代 EWMH 兼容的窗口管理器都不支持此行为。此外,EWMH specification似乎没有提供任何替代方案。
是否有任何非Motif跨WM方式来操作窗口菜单( GTK , Qt 或 Xlib )?