Получение всплывающих окон с графическим интерфейсом (из bash), чтобы они оставались поверх других окон

Я разместил это в списке Яд, видимо, с включенной невидимостью (никто даже не просматривал его! Обычно список очень отзывчивый.), Поэтому я подумал, увижу ли у кого-нибудь из вас какие-нибудь идеи. Это, вероятно, применимо к любому bash-скрипту, использующему любую всплывающую утилиту gui, такую ​​как dialog, xdialog или zenity с рабочего стола KDE.

В общем, я люблю Яд. Это уносит с ума, и разработчик, как правило, тут же отвечает на вопросы и исправляет / совершенствует вещи.

По сути, у меня есть набор сценариев, которые используют всплывающие диалоговые окна для взаимодействия с пользователем.

Он отлично работает, пока вы не щелкнете мышью где-либо еще на рабочем столе KDE, пока отображается одно из всплывающих окон.

После того, как вы это сделаете, все последующие диалоги "появляются" позади всего остального и обычно невидимы, кроме как на панели задач, и их приходится выбирать вручную, чтобы они снова стали видимыми / активными / сфокусированными.

Есть ли способ это исправить? Я предполагаю, что это рабочий стол, а не проблема Яда.

Спасибо,

Джо Кубунту точный 64-разрядный (KDE 4.8.5)


Моя система двусторонней печати, написанная на bash, выполняет несколько вызовов yad из одного (возможно, вложенного) скрипта. Это прекрасно работает, но есть одна большая проблема.

Если пользователь щелкает мышью в любом месте за пределами диалогового окна YAD во время выполнения сценария и отображения чего-либо с помощью YAD, все последующие диалоговые окна YAD появляются за всем остальным и по существу невидимы.

Сценарий по-прежнему отображается в диспетчере задач, поэтому эти диалоги можно возвращать на передний план один за другим, но это действительно нелогично и раздражает.

Я предполагаю, что это "особенность" KDE, а не ошибка в yad. Есть ли способ исправить / предотвратить это? Я попытался добавить --on-top к диалогам, но это не помогло.

Когда я запускаю сценарий (который может занять некоторое время, или я могу захотеть сделать что-то еще, пока диалог ожидает ввода), я не могу ничего сделать из-за боязни возникновения этой проблемы. Я могу переключиться на другой рабочий стол, но это хитроумно, потому что там может появиться следующий диалог (но только тот, который), и все это будет сброшено. Я использую последний YAD из PPA на Kubuntu точной.

2 ответа

Порядок расположения окон контролируется диспетчером окон KDE. Когда приложение пользовательского интерфейса, как yadсоздает окно, оно может сообщать предпочтительные атрибуты, такие как "всегда сверху", WM. Если по какой-то причине это не работает, вы можете попробовать вызвать утилиту командной строки, например wmctrl который инструктирует WM поднять существующее окно:

wmctrl -a "Yad"

Спасибо! У меня была та же проблема с диалоговым окном zenity, всплывающим из пользовательского внешнего инструмента gedit (сценарий sh). Добавление wmctrl -a "CVS commit" cmd исправил это.

Другие вопросы по тегам