Xcompmgr (Русский)

From ArchWiki
Jump to: navigation, search

Xcompmgr - это простой композитный менеджер окон, умеющий прорисовывать тени и создавать примитивную прозрачность с помощью transset. Разработан как доказательство возможности существования легковесных альтернатив Compiz Fusion.

Так как xcompmgr не заменяет оконный менеджер, он является идеальным для придания элегантности легковестным оконным менеджерам

Установка

Перед установкой Xcompmgr, убедитесь в правильности установки и настройки Xorg. Чтобы убедиться, что расширение Composite включено для X Server, выполните:

$ xdpyinfo | grep Composite
Composite

Если вывод отсутствует, добавьте опцию Composite в раздел Extensions в xorg.conf:

/etc/X11/xorg.conf
Section "Extensions"
        Option  "Composite" "true"
EndSection

Xcompmgr может быть установлен из пакета xcompmgr, доступного в официальных репозиториях. Для обеспечения прозрачности также необходимо установить transset-df из официальных репозиториев. Для примера см. Xterm#Automatic transparency.

Форки и обновленные версии

Существуют форки, в которые внесены различные исправления:

  • xcompmgr-dana — Один из первых форков Xcompmgr.
http://oliwer.net/xcompmgr-dana/ || xcompmgr-danaAUR[ссылка недействительна: сохранено в aur-mirror]
  • Compton — Форк Xcompmgr, содержащий большинство предыдущих исправлений и многие другие.
https://github.com/chjj/compton || compton-gitAUR

Настройка

Для запуска xcompmgr, выполните:

$ xcompmgr -c

Для автозагрузки с сеансом X, добавьте следущее в xprofile:

xcompmgr -c &

Вместо -c Вы можете экспериментировать с другими настройками  изменив отбрасывание теней или даже включить затухание. Пример:

xcompmgr -c -t-5 -l-5 -r4.2 -o.55 &

Для получения полного списка опций, выполните:

$ xcompmgr --help

Прозрачность окон

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

Чтобы установить прозрачность окна программы, убедитесь, что она запущена, затем выполните:

$ transset-df прозрачность

где прозрачность это число от 0 до 1, где 0 - абсолютная прозрачность, а 1 - непрозрачный.

Курсор превратится в крест. Наведите его на желаемую программу. Например, transset-df 0.25 установит прозрачность до 75%.

Советы и рекомендации

Запуск/остановка xcompmgr по требованию

Этот скрипт (например в ~/bin) позволяет легко остановить/перезапустить композитный менеджер.

~/.bin/comp
#!/bin/bash
#
# Start a composition manager.
# (xcompmgr in this case)

comphelp() {
    echo "Composition Manager:"
    echo "   (re)start: COMP"
    echo "   stop:      COMP -s"
    echo "   query:     COMP -q"
    echo "              returns 0 if composition manager is running, else 1"
    exit
}

checkcomp() {
    pgrep xcompmgr &>/dev/null
}

stopcomp() {
    checkcomp && killall xcompmgr
}

startcomp() {
    stopcomp
    # Example settings only. Replace with your own.
    xcompmgr -CcfF -I-.015 -O-.03 -D6 -t-1 -l-3 -r4.2 -o.5 &
    exit
}

case "$1" in
    "")   startcomp ;;
    "-q") checkcomp ;;
    "-s") stopcomp; exit ;;
    *)    comphelp ;;
esac

Для удобства использования скрипта можно определить горячие клавиши, используя, например, Xbindkeys. Это позволит перезапускать или временно приостанавливать xcompmgr в случае необходимости, не прерывая работу.

Переключатель Xcompmgr

Следующий скрипт для привязки любой горячей клавиши:

#!/bin/bash

if pgrep xcompmgr &>/dev/null; then
    echo "Turning xcompmgr ON"
    xcompmgr -c -C -t-5 -l-5 -r4.2 -o.55 &
else
    echo "Turning xcompmgr OFF"
    pkill xcompmgr &
fi

exit 0

Решение проблем

Падает Mozilla Firefox при работающем флеше

Вы можете исправить это, создав файл /etc/profile.d/flash.sh, содержащий строку:

export XLIB_SKIP_ARGB_VISUALS=1
Важно: Это отключит эффекты композитинга.

Картинка оказывается светло-серой после входа в систему (например в Openbox)

Эта ошибка исправляется путем установки hsetrootAUR и настройкой цвета фона, выполнив hsetroot -solid "#000000" (введите код нужного цвета, вместо #000000) до xcompmgr.

BadPicture request в awesome

Если вы получаете следующую ошибку в awesome:

 error 163: BadPicture request 149 minor 8 serial 34943
 error 163: BadPicture request 149 minor 8 serial 34988
 error 163: BadPicture request 149 minor 8 serial 35033

просто установите feh и перезапустите awesome.

Экран не обновляется в awesome после изменения разрешения

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

Чтобы исправить это, необходимо установить hsetrootAUR из [[official repositories (Русский)|официальных репозиториев] и добавить следующую строку в .xinitrc перед xcompmgr:

hsetroot -solid "#000066"

(можно заменить #000066 на любой другой цвет).