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.

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

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

  • Compton — Форк Xcompmgr, содержащий большинство предыдущих исправлений и многие другие.
https://github.com/chjj/compton || compton-gitAUR

Настройка

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

$ xcompmgr -c

Чтобы запускать Xcompmgr в начале сессии, добавьте следующее в 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 установит непрозрачность на уровне 25% (75% прозрачности).

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

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

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

~/.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 и добавить следующую строчку в .xinitrc перед xcompmgr:

hsetroot -solid "#000066"

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