Для начала давайте разберемся с терминологией. Установленное вами свойство «Всегда сверху» не является функцией X11, а является частью стандартного набора так называемых «подсказок» оконного менеджера, указанных как часть Inter-Client-Communication-Manual и Extended-Window-Manager. -Подсказки.
X11 не занимается размещением окон на экране, этим занимается оконный менеджер. В вашей типичной системе X11 у вас есть оконный менеджер, совместимый с ICCCM/EWMH, который контролирует все окна, и все в порядке. Это также работает со всеми видами переадресации, так как для сервера X11 не имеет значения, каким образом подключаются клиенты, и все коммуникации между клиентами происходят через сервер X11.
Теперь в вашем случае вы используете Exceed, который представляет собой сервер X11, работающий поверх рабочего стола Microsoft Windows. Windows сама управляет окнами, и такие вещи, как Always-On-Top, являются частью политик кода управления окнами Windows. Однако, поскольку X11 не определяет политику, а только метод, любая информация ICCCM/EWMH никогда не будет передаваться управлению окнами Windows. Все, что видит Windows, — это безликие окна верхнего уровня, созданные Exceed для отдельных клиентов.
Теперь вы можете запустить X11 WM в Exceed, но этот WM тогда живет только в X11, и, поскольку X11 не определяет политику, такую как «Всегда поверх», не может сообщить Windows, что окно действительно должно оставаться сверху. Вы также можете запустить Exceed в «полноэкранном» режиме, когда он открывает целое окно, в котором все клиенты X11 работают на своем собственном маленьком рабочем столе. Работающий в нем WM будет управлять только клиентами X11, но опять же не может передавать свою информацию в Windows.
Что вам действительно нужно, так это какой-то обходной путь, который будет подключаться к Exceed параллельно и синхронизировать свойства окна Windows (политику) с ICCCM/EWMH на стороне X11. Такая программа вполне осуществима, но я не знаю ни одной доступной программы, делающей это.
person
datenwolf
schedule
05.06.2012