Признаться честно, у меня было довольно сильное предубеждение относительно всяческих рюшечек на десктопе: тени, полупрозрачность и прочее. Тем более, что на рабочем столе у меня Fluxbox, а у него своей прозрачности нет (есть правда псевдопрозрачность, но это штука гадкая). Однако, путешествуя по различным блогам наткнулся на интересную весч - xcompmgr. Автор использовал ее вместе с transset, однако, как выяснилось в последствии, он мне не пригодился. На работе выдалось свободный часик, и я решил попробовать...
Как оказалось, в репозитариях Debian Lenny этого пакета не оказалось, однако же он нашелся в ветке Experimental. Опасаясь неприятностей с неудовлетворенными зависимостями и прочих трудностей, решил собрать этот пакет из исходников в своем окружении.
1. Насторойка apt-get
В список репозитариев /etc/apt/sources.list добавляем строчку:
deb-src [WWW] http://ftp.debian.org/debian experimental main contrib non-free
После этого:
#apt-get update
Будем считать систему готовой к дальнейшим действиям
2. Получение и распаковка исходников:
$apt-get source package
В нашем случае package=xcompmgr поэтому делаем
$apt-get source xcompmgr
Читання переліків пакетів... Виконано
Побудова дерева залежностей
Reading state information... Виконано
Потрібно завантажити 72,5kB архівів з вихідними текстами.
Отр:1 http://ftp.debian.org experimental/main xcompmgr 1.1.1+cvs.20051218-1 (dsc) [844B]
Отр:2 http://ftp.debian.org experimental/main xcompmgr 1.1.1+cvs.20051218-1 (tar) [70,2kB]
Отр:3 http://ftp.debian.org experimental/main xcompmgr 1.1.1+cvs.20051218-1 (diff) [1470B]
Отримано 72,5kB за 2sB (35,9kB/s)
gpg: Signature made пн, 19-гру-2005 04:57:34 +0200 EET using DSA key ID 37155778
gpg: Can't check signature: public key not found
dpkg-source: extracting xcompmgr in xcompmgr-1.1.1+cvs.20051218
dpkg-source: unpacking xcompmgr_1.1.1+cvs.20051218.orig.tar.gz
dpkg-source: applying ./xcompmgr_1.1.1+cvs.20051218-1.diff.gz
Ну вот, все получили, хотя были предупреждения о том, что не найден public key, ну да это не критично.
3. Зависимости для сборки:
Это может оказаться как самый простой вопрос, так и самый сложный. Ситуация состоит в следующем. Майнтенер пакета, как правило является человеком хорошо разбирающимся во внутреннем устройстве Debian поэтому майнтенеры зачастую раньше других переходят на использование testing/unstable веток. Кроме того аплоад пакетов в Debian происходит прежде всего в unstable, а потому во первых: майнтенер часто оттестировал сборку своего пакета только под testing/unstable, а во вторых прописал Build-зависимости на те версии библиотек которые у него были на момент сборки. Довольно редко авторы программ указывают версионные зависимости для своих детищ, а потому такое поведение майнтенера, зачастую, является наиболее логичным. Выяснять с какой версией той или иной библиотеки перестанет собираться программа занимает много времени и сил, а зачастую и не очень нужно.
4. Установка зависимостей:
Делаем
# apt-get build-dep xcompmgr
Тут возможны два варианта:
1 - все получилось с первого раза. Мы облегченно вздыхаем, создаем .deb-пакет и радуемся.
2 - есть неудовлетворенные зависимости. Тогда придется еще немного поплясать.
Есть разные варианты решения этой проблемы, но 100% результат дает метод - проверить, каких пакетов не хватает, и рекурсивно, по этому же руководству их установить. Как правило их перечень не настолько большой чтобы испугать настойчивого человека.
Для того чтобы узнать что еще не установлено для сборки пакета, запустите утилиту dpkg-checkbuilddeps в каталоге с исходными текстами. Эта утилита выведет список того что требуется для сборки, но еще не установлено в Вашей системе. Для перехода к следующему шагу Вам необходимо добиться того чтобы утилита dpkg-checkbuilddeps не выдавала сообщений о неудовлетворенных зависимостях.
5. Сборка пакета:
Переходим в каталог с распакованными исходниками и набираем:
$ fakeroot ./debian/rules binary
В результате в родительском каталоге будет собран .deb-пакет, ради которого все и затеивалось. В нашем случае это xcompmgr
Ну а дальше просто:
#dpkg -i xcompmgr_1.1.1+cvs.20051218-1_i386.deb
И сердце учащенно бьется ожидая, когда же мы увидим заветную прозрачность и тени... :)
Для этого в консоли набираем:
$xcompgr &
И тут возникает вопрос: "Почему ничего не происходит?.."
А все дело в том, что мы забыли включить необходимые опции в файле /etc/X11/xorg.conf :)
Идем в xorg.conf и добавляем туда такой раздел:
Section "Extensions"
Option "Composite" "Enable"
Option "RENDER" "Enable"
EndSection
Пробуем еще раз:
$xcompgr &
Это добавит нам прозрачности. Чтобы установить прозрачность окошка, кликаем правой кнопкой мыши на заголовке интересующего нас окошка и мышкой устанавливаем значения прозрачности. Левая кнопка - уменьшить, Правая - увеличить. Потом желательно пойти в раздел: Запомнить, и значения прозрачности запомнить, поставив галочку напротив пункта Прозрачность.
Если хочется теней вокруг окошек, то делаем так:
$xcompmgr -c &
А если хочется еще и эффекта затухания, тогда делаем так:
$xcompmgr -cf &
Для того чтобы эта радость сопровождала нас каждый сеанс работы за компьютером, идем в ~/.fluxbox/startup и дописываем туда xcompmgr -c & перед exec /usr/bin/fluxbox
Вот что у нас получилось...


Статья о том, как устанавливать пакеты из unstable и experimental лежит здесь
А вот здесь я взял саму идею. Спасибо авторам.
Как оказалось, в репозитариях Debian Lenny этого пакета не оказалось, однако же он нашелся в ветке Experimental. Опасаясь неприятностей с неудовлетворенными зависимостями и прочих трудностей, решил собрать этот пакет из исходников в своем окружении.
1. Насторойка apt-get
В список репозитариев /etc/apt/sources.list добавляем строчку:
deb-src [WWW] http://ftp.debian.org/debian experimental main contrib non-free
После этого:
#apt-get update
Будем считать систему готовой к дальнейшим действиям
2. Получение и распаковка исходников:
$apt-get source package
В нашем случае package=xcompmgr поэтому делаем
$apt-get source xcompmgr
Читання переліків пакетів... Виконано
Побудова дерева залежностей
Reading state information... Виконано
Потрібно завантажити 72,5kB архівів з вихідними текстами.
Отр:1 http://ftp.debian.org experimental/main xcompmgr 1.1.1+cvs.20051218-1 (dsc) [844B]
Отр:2 http://ftp.debian.org experimental/main xcompmgr 1.1.1+cvs.20051218-1 (tar) [70,2kB]
Отр:3 http://ftp.debian.org experimental/main xcompmgr 1.1.1+cvs.20051218-1 (diff) [1470B]
Отримано 72,5kB за 2sB (35,9kB/s)
gpg: Signature made пн, 19-гру-2005 04:57:34 +0200 EET using DSA key ID 37155778
gpg: Can't check signature: public key not found
dpkg-source: extracting xcompmgr in xcompmgr-1.1.1+cvs.20051218
dpkg-source: unpacking xcompmgr_1.1.1+cvs.20051218.orig.tar.gz
dpkg-source: applying ./xcompmgr_1.1.1+cvs.20051218-1.diff.gz
Ну вот, все получили, хотя были предупреждения о том, что не найден public key, ну да это не критично.
3. Зависимости для сборки:
Это может оказаться как самый простой вопрос, так и самый сложный. Ситуация состоит в следующем. Майнтенер пакета, как правило является человеком хорошо разбирающимся во внутреннем устройстве Debian поэтому майнтенеры зачастую раньше других переходят на использование testing/unstable веток. Кроме того аплоад пакетов в Debian происходит прежде всего в unstable, а потому во первых: майнтенер часто оттестировал сборку своего пакета только под testing/unstable, а во вторых прописал Build-зависимости на те версии библиотек которые у него были на момент сборки. Довольно редко авторы программ указывают версионные зависимости для своих детищ, а потому такое поведение майнтенера, зачастую, является наиболее логичным. Выяснять с какой версией той или иной библиотеки перестанет собираться программа занимает много времени и сил, а зачастую и не очень нужно.
4. Установка зависимостей:
Делаем
# apt-get build-dep xcompmgr
Тут возможны два варианта:
1 - все получилось с первого раза. Мы облегченно вздыхаем, создаем .deb-пакет и радуемся.
2 - есть неудовлетворенные зависимости. Тогда придется еще немного поплясать.
Есть разные варианты решения этой проблемы, но 100% результат дает метод - проверить, каких пакетов не хватает, и рекурсивно, по этому же руководству их установить. Как правило их перечень не настолько большой чтобы испугать настойчивого человека.
Для того чтобы узнать что еще не установлено для сборки пакета, запустите утилиту dpkg-checkbuilddeps в каталоге с исходными текстами. Эта утилита выведет список того что требуется для сборки, но еще не установлено в Вашей системе. Для перехода к следующему шагу Вам необходимо добиться того чтобы утилита dpkg-checkbuilddeps не выдавала сообщений о неудовлетворенных зависимостях.
5. Сборка пакета:
Переходим в каталог с распакованными исходниками и набираем:
$ fakeroot ./debian/rules binary
В результате в родительском каталоге будет собран .deb-пакет, ради которого все и затеивалось. В нашем случае это xcompmgr
Ну а дальше просто:
#dpkg -i xcompmgr_1.1.1+cvs.20051218-1_i386.deb
И сердце учащенно бьется ожидая, когда же мы увидим заветную прозрачность и тени... :)
Для этого в консоли набираем:
$xcompgr &
И тут возникает вопрос: "Почему ничего не происходит?.."
А все дело в том, что мы забыли включить необходимые опции в файле /etc/X11/xorg.conf :)
Идем в xorg.conf и добавляем туда такой раздел:
Section "Extensions"
Option "Composite" "Enable"
Option "RENDER" "Enable"
EndSection
Пробуем еще раз:
$xcompgr &
Это добавит нам прозрачности. Чтобы установить прозрачность окошка, кликаем правой кнопкой мыши на заголовке интересующего нас окошка и мышкой устанавливаем значения прозрачности. Левая кнопка - уменьшить, Правая - увеличить. Потом желательно пойти в раздел: Запомнить, и значения прозрачности запомнить, поставив галочку напротив пункта Прозрачность.
Если хочется теней вокруг окошек, то делаем так:
$xcompmgr -c &
А если хочется еще и эффекта затухания, тогда делаем так:
$xcompmgr -cf &
Для того чтобы эта радость сопровождала нас каждый сеанс работы за компьютером, идем в ~/.fluxbox/startup и дописываем туда xcompmgr -c & перед exec /usr/bin/fluxbox
Вот что у нас получилось...


Статья о том, как устанавливать пакеты из unstable и experimental лежит здесь
А вот здесь я взял саму идею. Спасибо авторам.
6 коментарів:
Читал про это, но всё побаивался делать. Может, получится. Чтобы в IceWM была ещё и прозрачность, которая время от времени нужна.
P.S. Добавил вас в кольцевой поиск.
to virens:
Может, получится. Чтобы в IceWM была ещё и прозрачность, которая время от времени нужна.
И правда порой нужна, но перебарщивать тоже не стоит. Я вот на радостях сначала сделал все прозрачным, а потом понял, что это не всегда удобно :)
Добавил вас в кольцевой поиск
Спасибо
P.S.
Спасибо за первый комментарий по теме блога :)
На FreeBSD+fluxbox хотел настроить прозрачность, в статьях на эту тему не встретил уточнения про то что нужен xcompmgr, целых два дня ломал голову почему у всех есть прозрачность, а у меня нет... спасибо автору за подробности! Очень радовался.
to Анонім:
Рад был, что статья оказалась полезной, даже не для пользователя Debian. :)
Спасибо, пригодилось, хотя до этого не собирался ставить прозрачность и тени, но теперь при этом =)
Дописати коментар