LINUX.ORG.RU

Есть в чейнжлоге запись

1.3.7pre1: 2010-04-27
        - battery status as graphics not text (Alexander Drozdov)

Можешь Александру Дроздову симпу передать. :)

В README.Debian есть интересная пометка: чтобы отключить графически индикатор надо указать в ~/.icewm/preferences:

TaskBarShowAPMGraph=0

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

Вот спасибо! Заработало! Могли бы в чейнджлоге указать, не у всех ведь дебиан.

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

Хотя может и надо было грепнуть по сырцам:

[bastilie 61] ~/Downloads/icewm-1.3.7 > grep -ir TaskBarShowAPMGraph *

src/aapm.cc:    if (taskBarShowApmGraph)
src/aapm.cc:    if (taskBarShowApmGraph) {
src/default.h:XIV(bool, taskBarShowApmGraph,                  true) // hatred
src/default.h:    OBV("TaskBarShowAPMGraph",                  &taskBarShowApmGraph,           "Show APM status in graph mode"), // hatred

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

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

Могли бы в чейнджлоге указать, не у всех ведь дебиан.

В Debian, кстати, еще свой патчсет идет, который фиксит кое-какие ошибки в IceWM. Какие-то патчи ушли в апстрим, какие-то еще нет. Марко в спячке, иногда просыпается, пофиксит что-то и опять засыпает надолго. Сопровождающий IceWM в Debian даже предлагал форкнуть проект, но по просьбе Марко пока делать этого не стали.

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

В slackware тоже патч идет, но он всего лишь «Since we put the html files in $docdir/html/, let's fix the integrated help» Может и в дебиан такой же?

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

>В slackware тоже патч идет, но он всего лишь «Since we put the html files in $docdir/html/, let's fix the integrated help» Может и в дебиан такой же?

В Debian помимо всяких инфраструктурных патчей (скрипт для системы menu для автоматической генерации и т. п.) идут, например, патчи, которые исправляют поведение системного лотка (у некоторых при определенных условиях он выпадает в черное незакрываемое окошко), а также другие проблемы. Например, с иконками были патчи (мой вошел в апстрим, а другой, кажется, нет - надо смотреть), восстановление из полноэкранного режима, чтобы запоминал расположение окна, которое было до выхода в fullscreen (у тебя запоминает?). По мелочам, короче. Ну еще в icewm поломали кое-какие вещи, что Emacs на Xaw3d в бесконечный цикл пристарте впадает. Мой патч по этой теме еще в багзиле Debian лежит и не вошел еще никуда. Другой мой патч по поводу Emacs тоже только в Debian приложен. Но это особые случаи использования - можно и не нарваться.

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

>у некоторых при определенных условиях он выпадает в черное незакрываемое окошко

Периодически наблюдается такая пакость, как то лечится для дистрибутивов отличных от debian?

восстановление из полноэкранного режима, чтобы запоминал расположение окна, которое было до выхода в fullscreen (у тебя запоминает?).


Да, запоминает.

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

Периодически наблюдается такая пакость, как то лечится для дистрибутивов отличных от debian?

Вероятно, еще в производных дистрибутивах.

Вот этим патчем из Debian должно вылечиться:

--- icewm-1.3.7~pre2.orig/src/icetray.cc	2010-04-28 21:00:30.000000000 +0200
+++ icewm-1.3.7~pre2/src/icetray.cc	2010-04-29 22:11:16.938048246 +0200
@@ -36,14 +36,10 @@
     bool checkMessageEvent(const XClientMessageEvent &message);
     void requestDock();
 
-    void handleUnmap(const XUnmapEvent &ev) {
-        YWindow::handleUnmap(ev);
-        MSG(("hide1"));
-//        if (visible() && ev.window == handle()) {
-            MSG(("hide2"));
+    void handleUnmap(const XUnmapEvent &) {
+        MSG(("hide"));
+        if (visible())
             hide();
-            fManaged = false;
-//        }
     }
 
     void trayChanged();
@@ -51,7 +47,6 @@
     Atom icewm_internal_tray;
     Atom _NET_SYSTEM_TRAY_OPCODE;
     YXTray *fTray2;
-    bool fManaged;
 };
 
 class SysTrayApp: public YXApplication {
@@ -187,7 +182,6 @@
     setSize(fTray2->width(),
             fTray2->height());
     fTray2->show();
-    fManaged = false;
     requestDock();
 }
     
@@ -195,15 +189,10 @@
     fTray2->backgroundChanged();
     setSize(fTray2->width(),
             fTray2->height());
-    if (fTray2->visible()) {
-        if (!fManaged)
-            requestDock();
-        else
-            show();
-    } else {
-        fManaged = false;
+    if (fTray2->visible())
+        show();
+    else 
         hide();
-    }
 }
 
 void SysTray::requestDock() {
@@ -223,19 +212,12 @@
 
         XSendEvent(xapp->display(), w, False, StructureNotifyMask, (XEvent *) &xev);
     }
-    fManaged = true;
 }
 
 bool SysTray::checkMessageEvent(const XClientMessageEvent &message) {
     if (message.message_type == icewm_internal_tray) {
-        MSG(("requestDock %lX", (long)handle()));
-        setSize(fTray2->width(),
-                fTray2->height());
-        MSG(("requestDock2 %d %d", width(), height()));
-        if (fTray2->visible())
-            requestDock();
-        else
-            fManaged = false;
+        MSG(("requestDock"));
+        requestDock();
     }
     return true;
 }
Zubok ★★★★★ ()
Ответ на: комментарий от splinter

>Да, запоминает.

Хм, а я что-то этого кода в апстриме не вижу. ЕМНИП, симптомы были такие: есть, скажем, браузер, мы его делаем maximized, а потом средствами IceWM делаем его fullscreen (Super+F11). При повторном Super+F11 выходим из fullscreen, но браузер уже не maximized. Кажется, так было.

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

Мне трудно определить, так у меня не назначена клавиша SUPER (ноутбук или я как то неправильно её понимаю?), после обычного F11 браузер максимизируется и встает обратно в то положение в котором он был.

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

спасибо за патч, пока применять его не буду как проблема опостылет окончательно тогда попробую, пока подожду стабильную версию IceWM.

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

Мне трудно определить, так у меня не назначена клавиша SUPER (ноутбук или я как то неправильно её понимаю?)

А это настраивается. Есть параметр (у меня в 0 стоит, для всех функций IceWM и действий с окнами использую навязанную кнопку lwin).

#  Treat Super/Win modifier as Ctrl+Alt
ModSuperIsCtrlAlt=0 # 0/1

А можно на/прямую указать комбинацию для fullscreen (можно специально назначить Ctrl+Alt+F11, например):

KeyWinFullscreen="Super+F11"

после обычного F11 браузер максимизируется и встает обратно в то положение в котором он был.

Просто F11 — это функция браузера, скорее всего, а не IceWM.

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

меня больше раздражает проблема с иконками в трее, в 1.3.6 иногда они переставали отображаться (скайп, ляська, лотус) и если перезапустить icewm то они на секунду мелькали и пропадали вновь.

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

Это все похоже на тот же баг в трее, что выше. Там контейнер при определенных условиях выпадает. Плакали, плакали в debian-russian, а потом Станислав Масловский поправил и отправил в Debian (спасибо ему). Сопровождающий IceWM никак не мог у себя баг с выпадением трея воспроизвести, но потом ему написали скрипт, который запускал по циклу приложение и у него раз на десятый psi все-таки выпал. Вот и поправили. В апстриме баг зафайлен. Но я не знаю, слал ли патч сопровождающий в апсртим. Обычно он форвардит все Марко.

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

в 1.3.7 pre1 вроде бы такой ошибки не повторялось, неплохо бы заиметь тот скрипт который высылали мопровождающему, дабы потестить эту сборку.

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

>в 1.3.7 pre1 вроде бы такой ошибки не повторялось, неплохо бы заиметь тот скрипт который высылали мопровождающему, дабы потестить эту сборку.

Все может быть. У меня тоже сначала баг проявлялся, а потом сам собой как-то исчез, но у других продолжал проявляться на этой же версии. Гонки возникали, все очень от условий зависело. Западло было, когда в самый неподходящий момент выпадал трей. Я тогда еще Gaim использовал и трей вылетал иногда, когда сообщение приходило. И фиг потом поймешь, от кого оно пришло? Как его прочитать? :)

А скрипт самому можно написать, тот скрипт выслали напрямую сопровождающему, чтобы он написанием себя не утруждал.

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

в скрипте надо рекурсивно порождать и убивать процесс который юзает трей?

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

>в скрипте надо рекурсивно порождать и убивать процесс который юзает трей?

Да, что-то вроде этого. Если хочешь просмотреть тот тред на debian-russian, то вот он. В ветке также сопровождающий IceWM в Debian учавствует (Eduard Bloch). Он из Германии, но по-русски пишет.

http://lists.debian.org/debian-russian/2009/10/msg00670.html

Дальше просто жми на Next by Thread.

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

Вот как раз из треда.

while true; do gajim& sleep 5; pkill gajim; linuxdcpp& sleep 5; pkill linuxdcpp; done

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

на 10-й раз трей упал.

[1] 7957
[2] 7979
[1]-  Done                    licq
[3] 7993
[2]-  Done                    skype
[4] 8014
[3]-  Done                    licq
[5] 8029
[4]-  Done                    skype
[6] 8050
[5]-  Done                    licq
[7] 8065
[6]-  Done                    skype
[8] 8087
[7]-  Done                    licq
[9] 8101
[8]-  Done                    skype

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

>на 10-й раз трей упал.

Ага. Марко исправлял другой баг с треем (проблемы с перерисовкой при перезапуске IceWM, проблема не такая серьезная, баг тоже зафайлен), но сделал это не очень-то хорошо. При этом баг так и не исправил: трей хоть и перерисовывается цветом фона таскбара, но при этом как бы невидимый квадрат остается. Это можно заметить, если кнопки на таскбаре вплотную к индикаторам подошли.

Баг воспроизводится так: запускаем любое приложение в трей и выходим из приложения, трей исчезает. Все так и должно быть. Потом открываем каких-нибудь окон в достаточном количестве, чтобы их кнопки добрались до границы с индикаторами нагрузки и сети. Потом делаем Ctrl+Alt+Del и нажимаем перезагрузку IceWM (горячий рестарт). После перезагрузки видим, что кнопки таскбара остоят на некоторое расстояние от индикаторов (а расстояние как раз равно размеру иконки в трее). Это не ожидаемое поведение. А вот до изменений Марко, трей не перисовывал даже фон, то есть появлялась дыра на этом месте. Но если запустить опять приложение в трей, то оно на месте этой дыры появляется и нормально все выходит. Короче, что до текущих изменений в апстриме, что до них, работало все не так как должно.

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

>но при этом как бы невидимый квадрат остается. Это можно заметить
Было и такое. Сейчас трей упал и сейчас незакрываемый черный квадрат его даже xkill не берет. Раздражает это слегка, хочется нормальный WM без подобных галлюцинаций, жаль к айсу привык, всем нравится кроме этого. Буду копать fvwm, говорят там аудит кода усиленный.

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

Ну вот же патч наверху исправляет этот квадрат. Айс быстро собирается.

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

Как бы после этих слов

Ага. Марко исправлял другой баг с треем, но сделал это не очень-то хорошо. При этом баг так и не исправил: трей хоть и перерисовывается цветом фона таскбара, но при этом как бы невидимый квадрат остается.

и после этих

Марко в спячке, иногда просыпается, пофиксит что-то и опять засыпает надолго.

Прямо какое то разочарование снизошло :-(

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