Xcompmgr (Русский)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи Xcompmgr. Дата последней синхронизации: 10 сентября 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

Так как 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. Для прозрачности установите transset-dfAUR. Для примера смотрите Xterm#Automatic transparency.

Настройка

Запуск xcompmgr:

$ xcompmgr -c

Чтобы запускать xcompmgr при старте сессии, добавьте в xprofile:

xcompmgr -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 OFF"
    pkill xcompmgr &
else
    echo "Turning xcompmgr ON"
    xcompmgr -c -C -t-5 -l-5 -r4.2 -o.55 &
fi

exit 0

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

Mozilla Firefox падает при заходе на сайт с Flash

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

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

Фон становится светло-серым после входа в систему (например, в Openbox)

Эта ошибка исправляется установкой hsetroot и настройки цвета фона посредством hsetroot -solid "#000000" (просто введите код цвета, который вы хотите вместо #000000) перед xcompmgr. Если xcompmgr запускается до exec в ~/.xinitrc, то вы можете заменить xcompmgr & на (sleep 1 && xcompmgr) &; это позволит 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.

Чтобы исправить это, вам нужно установить hsetroot и добавить следующую строчку в .xinitrc перед xcompmgr:

hsetroot -solid "#000066"

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