Управление оконным меню X11 без учета WM
Оконные менеджеры на основе мотивов (Mwm
, Dtwm
, 4Dwm
, 5Dwm
) разрешить добавление пользовательских элементов меню (с соответствующими обратными вызовами) в меню окна приложения (см. скриншот, суть которого доступна здесь). Само приложение также требуется для связи с -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 нет альтернативы.
Есть ли какой-нибудь не-Motif кросс-WM способ манипулирования оконным меню (GTK, Qt или Xlib)?