LINUX.ORG.RU

Управление иконкой xterm


0

0

Есть ли возможность изменять иконку уже запущенного xterm из скрипта, который в этом терминале выполняется? Например GIMP постоянно держит иконку открытых в нем редактируемых изображений в соответствии с текущим состоянием картинки. Я хочу переключать иконку xterm, в котором запущен centericq по приходу нового сообщения.

Ответ на: комментарий от SatanClaus

А не в курсе ли Вы, умеют ли подобное другие терминалки? Возможно, есть сторонние утилиты, конфигурирующие иконки для уже существующих окон? Я смотрел netwmctrl (http://onion.dynserv.net/~timo/index.php?page=Projects/netwmctrl) и wmctrl (http://sweb.cz/tripie/utils/wmctrl/), но они этого к сожалению, не умеют.

arnold_shade
() автор топика
Ответ на: комментарий от anonymous

ID окна терминала узнать можно без проблем т.к. я пускаю centericq в xterm с соответствующим ему классом:
xterm -class centericq -e centericq

После этого окно ловится через xwininfo:
xwininfo -name centericq | grep "xwininfo: Window id:" | cut -d' ' -f 4
Или подобным образом через xlsclients -a -l

А вот как имея ID окна переключить ему иконку? Я начал смотреть API вызовы в Xlib.h типа XinternAtom и XChangeProperty, но похоже, это не так-то просто. По-видимому, надо задавать _NET_WM_ICON...

arnold_shade
() автор топика

Что-то непонятно ты объяснил, что дано (какой WindowManager, что конкретно понимается под иконкой) и что хочешь сделать. :)

Почему именно иконку надо менять, а не просто сделать так чтобы xterm сделал себе deiconify() по прибытию нового сообщения (смотри "man xterm" по этому поводу). Попробуй также "xterm -ai". Если используешь FVWM и имеешь ввиду под иконкой то что я имею ввиду, то можно давать WindowStyle комманды из shell с помощью FvwmCommand. В общем, вопрос не раскрыт. :)

А так, чтобы поменять картинку зная id окна, делай "display -window 0x400aeb image.png".

mihalych ★★★
()
Ответ на: комментарий от mihalych

Ок, простите.

WindowManager: IceWM

Под иконкой понимается ассоциированная с запущеным приложением пиктограмма - то есть, то, что высвечивается в taskbar-е рядом с названием. Иконки на десктопе я не использую.
У меня при старте X-ов запускается xterm с centericq и автоматически убирается в tray. Также ему назначается иконка как у виндового icq. Все это делается через файл winoptions в icewm.

Проблема в том, что при приходе нового сообщения я хочу не выдавать звуковой сигнал, как предлагает автор centericq, а мигать иконкой в tray-е.

Deiconify() не подходит т.к. я просто хочу быть извещен о том, что есть новое сообщение , а сразу открывать его мне на экране не надо - это не удобно.

По поводу xterm -ai посмотрю, спасибо.

Хоть я и не использую fvwm но по-видимому "WindowStyle комманды из shell с помощью FvwmCommand" это как раз то, что мне нужно. Но насколько я знаю, у icewm иконки статические (единожды сконфигурив через файл winoptions уже не поменять для запущенного приложения)

По поводу "display -window 0x400aeb image.png" посмотрю, снова спасибо.

arnold_shade
() автор топика
Ответ на: комментарий от mihalych

Нет, xterm -ai это тоже не то, что нужно. Изображение окна на экране вообще отсутствует в каком бы то ни было виде, так что нужно менять и именно одну иконку (статическую картинку) на другую (тоже статическую). К тому же я не нашел поддержки active icon window в icewm - полагаю ее там просто нет.

arnold_shade
() автор топика
Ответ на: комментарий от mihalych

Простите глупый вопрос - а в какой пакет входит утилита display? Я ее у себя не нашел. Поиск в Гугле результатов увы не дал... Или адрес сайта если вдруг помните.

arnold_shade
() автор топика
Ответ на: комментарий от arnold_shade

>Но насколько я знаю, у icewm иконки статические (единожды сконфигурив через файл winoptions уже не поменять для запущенного приложения)

Думаю это не так. Я пользуюсь старьем ickle, будучи свернутым в tray !!! icewm_ом !!!, он (ickle) прекрасно меняет иконку при приходе сообщения.

sdio ★★★★★
()
Ответ на: комментарий от arnold_shade

> в какой пакет входит утилита display

ImageMagick, рекомендуется на любой машине, в основном из-за утилит convert и import.

mihalych ★★★
()
Ответ на: комментарий от sdio

Да, конечно, существуют приложения, которые меняют сами себе иконки и icwwm это изменение иконки успешно отслеживает. Пример тому - GIMP (миниатюры изображений в виде пиктограмм для окон с редактируемыми картинками). Однако, для xterm это не так - он сам себе никаких пиктограмм не устанавливает (если не учитывать ублюдочный iconPixmap с двухцветными xbm-ами) и уж тем более не умеет их менять на лету. Таким образом, я говорил только о динамической смене иконки для приложения через winoptions. А это, повторюсь, IMHO невозможно без перезапуска самого icewm.

А еще тут есть вот какая тема - icewm является предоставляет tray для приложений kde и gnome - например у меня xxkb сворачивается в kde-шный tray под icewm, SIM тоже отличный пример. Смена иконок для таких приложений - отдельная тема, они сами этим занимаются. Xterm можно свернуть туда при помощи alltray, но проблема с динамической модификацией иконки остается.

arnold_shade
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.