LINUX.ORG.RU
ФорумTalks

Не может пережить кучу обновлений за раз, говорите?

 


0

2

Всем здрасти, господа, обезьяна на проводе. Давно не виделись.

В очередной раз развенчиваем городские легенды про кривой арч vs кривые руки. Арчик не обновлялся месяца 3-4 (а может и больше, не помню даже). 1 гиг обновлений, 474 пакета. Все прекрасно обновляется и работает. Единственное, что пришлось вручную сделать: перегенерировать initramfs, т.к. из-за изменения имени пакета udev получилась такая ситуация: старый udev удаляется, обновляется ядро, ставится новый udev. Из-за такой последовательности в postinstall-скрипте ядра не смог правильно отработать mkinitcpio.

А вот у кого руки действительно на этот раз кривоваты, так это у мейнтейнеров пакета filesystem. Раньше ссылки /var/lock и /var/run создавались при запуске инит-скриптов, теперь они вынесены в пакет, ооооок. Да вот только раньше они создавались с абсолютными путями, а теперь — с относительными. И если /var сам является симлинком на каталог не первого уровня (у меня является), то /var/{lock,run} начинают указывать куда угодно, только не туда, куда нужно. Пришлось поправить после первой перезагрузки, а то lxdm и ppp стартовать отказывались при виде такого счастья.

А, да, чтоб 2 раза не вставать: насчёт багрепортов по lxpanelx и прочим делам — займусь в ближайшие дни.

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

Вариантов у тебя, на первый взгляд, не так много. Или уломать разработчиков lxpanelx тоже добавить эту фичу, или забить на совместимость.

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

Я сейчас твою тему заметил, оказывается ты думаешь о совместимости в более крупном масштабе. Лично я за то, что пора идти своим путем.

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

Ну вообще я бы мог поддерживать обе версии ABI. Но это ненужно, т.к. нет сторонних плагинов, плакаться никто не станет.

geekless ★★
() автор топика

даже арч при обновлении сломать не может, ничтожество

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

Раз ненужно, то можно и сломать совместимость.

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

1. Да хрен его знает, это ж надо ответную часть в каком-нибудь плагине написать, чтоб протестировать.

2. А ты сам видишь какие-нибудь области для доработки?

У меня сейчас голова забита инфраструктурными изменениями. Надо полностью отвязать всё от lxpanel, чтобы в релиз пойти уже самостоятельной программой.

Еще я хочу до релиза имплементировать вот эту фичу: http://code.google.com/p/lxpanelx/issues/detail?id=26

И сделать режим свободного перемещения и ресайза панели.

По плагинам... даже не знаю, что есть дорабатывать в данный момент...

О, вспомнил. Поставь плазму и посмотри там на апплет часов. Там есть 2 фичи:

  • В контекстном меню часов есть пункты для помещения в буфер обмена текущего времени.
  • В контекстном меню календаря есть пункты для помещения в буфер обмена даты под курсором.

Сможешь реализовать?

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

Реализовал, работает, патч отправил тебе на мыло.

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

О, а может я еще эту фичу с перекрывающейся панелью смогу сделать? Есть ссылки на хорошие мануалы по xlib?

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

А после изменения свойств окна перерисовывать что-нибудь надо?

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

Хорошо, посмотрю. Я тут пока экспериментирую с иксами, изменил panel_start_gui() так:

===================================================================
--- src/panel.c	(revision 410)
+++ src/panel.c	(working copy)
@@ -1647,7 +1647,7 @@
 static void
 panel_start_gui(Panel *p)
 {
-    Atom state[3];
+    Atom state[4];
 
     ENTER;
 
@@ -1748,8 +1748,9 @@
     state[0] = a_NET_WM_STATE_SKIP_PAGER;
     state[1] = a_NET_WM_STATE_SKIP_TASKBAR;
     state[2] = a_NET_WM_STATE_STICKY;
+    state[3] = a_NET_WM_STATE_BELOW;
     XChangeProperty(GDK_DISPLAY(), p->topxwin, a_NET_WM_STATE, XA_ATOM,
-          32, PropModeReplace, (unsigned char *) state, 3);
+          32, PropModeReplace, (unsigned char *) state, 4);
 
     panel_calculate_position(p);
     gdk_window_move_resize(p->topgwin->window, p->ax, p->ay, p->aw, p->ah);
Но что-то окна на панель наползать не хотят.

netcat ★★
()

В очередной раз развенчиваем городские легенды про кривой арч vs кривые руки. Арчик не обновлялся месяца 3-4 (а может и больше, не помню даже). 1 гиг обновлений, 474 пакета.

А я вот год гентушку не обновлял. в итоге все обновилось всего ~800 пакетов, а нужно было пошевелить мозгами чуток.

И че?

lyrix87
()
Ответ на: комментарий от geekless

У меня сейчас слишком медленный инет, чтобы скачать плазму. Сделай, пожалуйста, несколько скриншотов, где показан апплет даты-времени с разных сторон.

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

То есть тебе не понравился не сам код, а интерфейс? Ну тогда мне, видимо, придется замутить дочерний виджет от GtkCalendar, ведь к оригинальному, кажется, контекстное меню не пришить.

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

Ну тогда мне, видимо, придется замутить дочерний виджет от GtkCalendar, ведь к оригинальному, кажется, контекстное меню не пришить.

Охщи. Всё новые грани упоротости открываются мною у разработчиков Gtk. Да эти ребята просто неисчерпаемы! Просто забей, в таком случае. Нет ну можешь конечно свой виджет календаря сделать, но мне кажется, оно того не стоит по трудозатратам.

То есть тебе не понравился не сам код, а интерфейс?

К коду тоже были претензии, уже не помню, какие.

По интерфейсу - надо выпадающую менюшку с разными форматами данных. Форматы брать из файла, в код не захардкоживать. Как-то так.

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

Форматы брать из файла, в код не захардкоживать.

А вот тут есть один нюанс.
Вроде бы, юзер, должен иметь возможность изменить список форматов, используя диалог настройки плагина. Плюс, lxpanelx использует конфиг формата ключ-значение, значит я должен список запихнуть в одну строку. Это можно. Например,

%d/%m/%y %h:%m:%s@%y/%m/%d %h:%m

@ - разделитель, %d - день, %y - год, и т.д.
Не слишком ли брутально для пользователя?

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

Форматы брать из файла, в код не захардкоживать.

А вот тут есть один нюанс.
Вроде бы, юзер, должен иметь возможность изменить список форматов, используя диалог настройки плагина. Плюс, lxpanelx использует конфиг формата ключ-значение, значит я должен список запихнуть в одну строку. Это можно. Например,

%d/%m/%y %h:%m:%s@%y/%m/%d %h:%m

@ - разделитель, %d - день, %y - год, и т.д.
Не слишком ли брутально для пользователя? Хотя, в том же dclock так же брутально настраивается формат часов.

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

Вроде бы, юзер, должен иметь возможность изменить список форматов

Не беги впереди паровоза. :)

Читай форматы из отдельного файла, по одному формату на строку.

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

«Показывать меню на основе внешних данных» и «дать пользователю конфигурировать эти данные» — это 2 разные фичи. Нет смысла их решать вперемежку.

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

А в glib есть функция которая меняет одну часть строки на другую? Кажется, видел где-то, но названия не помню.

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

1. Невозможно открыть контекстное меню апплета по ПКМ, на отжатие сразу срабатывает пункт.

2. if(fp = fopen(filename, «r»)) — не надо так делать. И вообще -Wall -Werror творят чудеса.

3. Файл-то с форматами где потерялся?

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

Выбор был небогат: defaults или profile/default. В defaults я конфигов не обнаружил, но зато они были в profile/defaults. Вот туда и пихнул.

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

Ну как бы это дефолт профиля, а не ресурсные файлы.

Вообще это нетривиальный вопрос. Я, пожалуй, не буду пока коммитить этот патч, надо сначала упорядочить работу с конфигурационными файлами, которые не относятся к настройкам профиля.

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

Опять при обновлении панели пользователям придётся вручную конфиги переносить в другой каталог. :-D

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