Я смотрю что у меня накопилось в openSUSE 11.4, чтобы прежде чем удалить её и заменить на openSUSE 12.3 навести порядок и случайно не удалить нужное. Я скомпилировал Beryl в /opt/beryl, потому что в Compiz я не победил тиринг. Кроме того, чтобы не глючил мне пришлось устарить Compiz с версии 0.9.2 до 0.8.8. Скриншот. О причинах сбоев версии 0.9.x можно почитать по этой ссылке (он был переписан на C++). Я подумал: а что я потеряю, заменив Compiz на Beryl? Шестерёнки внутри куба: я любил выставить прозрачность граней куба 90% в обычном состоянии и 35% при вращении, и сквозь них можно посмотреть на шестерёнки или дельфинов. И рисование огнём. И всё, больше ничего Compiz Fusion по сравнению с Beryl не привнёс, во всяком случае я больше ничего не вспомнил.
Несмотря на то что последний релиз Beryl был в 2007 году, в операционной системе 2011 года он успешно скомпилировался и заработал. Потребовалась правка только двух строчек исходного кода:
--- a/src/display.c 2012-08-07 16:22:49.000000000 +0700
+++ b/src/display.c 2012-08-07 16:39:17.567000078 +0700
@@ -340,7 +340,7 @@
}
static Bool
-raise(CompDisplay * d,
+raiseInitiate (CompDisplay * d,
CompAction * action,
CompActionState state, CompOption * option, int nOption)
{
@@ -2118,7 +2118,7 @@
o->value.action.terminate = 0;
o = &display->opt[COMP_DISPLAY_OPTION_RAISE_WINDOW];
- o->value.action.initiate = raise;
+ o->value.action.initiate = raiseInitiate;
o->value.action.terminate = 0;
o = &display->opt[COMP_DISPLAY_OPTION_ACTIVATE_WINDOW];
Плюс одна строчка для Aquamarine (рамочки KDE3), одна для плагина Video Capture, и для графического конфигуратора установить pyrex 0.95 вместо 0.98 (потом можно вернуть). Это я приводить не буду.
И никакого тиринга! Просто работает, я даже ничего не настраивал. Просто поставил VSync в Nvidia X Server Settings и больше ничего не потребовалось. Кроме того, Beryl быстрее Compiz: хотя Compiz Fusion взял себе плагины Beryl, ядро осталось старое и не пропатченное. Я хочу сделать OBS, чтобы получить RPM/DEB-пакеты для новых версий дистрибутивов Linux, и ищу знающих людей. Хотя бы покажите где лежат spec-файлы для старых дистрибутивов Linux.
Компилировал я с помощью команды:
./configure --prefix=/opt/beryl
Взяв исходный код здесь, по этой последовательности, и запускаю командой:
PATH=/opt/beryl/bin:$PATH LD_LIBRARY_PATH=/opt/beryl/lib:/opt/beryl/lib/beryl/:$LD_LIBRARY_PATH /opt/beryl/bin/beryl-manager