当前位置: 代码迷 >> 综合 >> Xcompmgr (简体中文)
  详细解决方案

Xcompmgr (简体中文)

热度:34   发布时间:2023-12-22 09:27:04.0

https://wiki.archlinux.org/index.php/Xcompmgr_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

 

Xcompmgr是一个简单的混合窗口管理器,可以实现阴影、原生窗口透明(配合transset工具)等特效。Xcompmgr设计初衷只是实现混合窗口管理器的概念,所以比起同类混合窗口管理器如 Compiz Fusion,Xcompmgr轻量许多。

Xcompmgr不替代任何窗口管理器,所以对于Openbox和Fluxbox这类缺乏特效的窗口管理器来讲,配合Xcompmgr能得到更华丽的视觉效果。

Contents

 [hide] 
  • 1 系统要求
  • 2 安装
  • 3 配置
    • 3.1 窗口透明度
  • 4 疑难解答
    • 4.1 Fluxbox windows won't raise
    • 4.2 Mozilla Firefox 打开 Flash 时崩溃
    • 4.3 登陆后变成浅灰色背景 (如Openbox)
    • 4.4 在 awesome 窗口管理器中出现 BadPicture request
    • 4.5 Chromium & Xcompmgr & Awesome & Conky
  • 5 小提示
    • 5.1 方便开关xcompmgr的脚本
  • 6 另见

系统要求

使用Xcompmgr前,必须做以下工作:

  • 安装Xorg,并正确配置、运行。
  • 打开显卡驱动或AIGLX的Composite功能。

安装

从官方软件仓库安装xcompmgr以及透明度设置工具transset-df

配置

运行xcompmgr:

$ xcompmgr -c

如果要在每次Xorg启动时运行,添加下面内容到xprofile:

xcompmgr -c &

用户可以通过命令行参数调整阴影、消隐等效果,以下是一个常用的配置:

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

查看命令行帮助:

$ xcompmgr --help

窗口透明度

transset工具用来设置单个窗口的透明度,透明特效可能会降低系统性能。

先启动要设置透明度的程序,然后运行:

transset n

.. 此处 n 是0到1之间的数字,0表示完全透明(不可见),1表示不透明。例如:transset .25 代表75%的透明度。

运行后,鼠标会变成十字形。点击要设置的窗口,即可应用透明度设置。

疑难解答

Fluxbox windows won't raise

This is fixed in fluxbox CVS after 0.9.10. See [1] for more info.

A workaround in 0.9.10 is to set the layer of the Slit to "Desktop" (flux menu -> Configure -> Slit -> Layer -> Desktop).

Mozilla Firefox 打开 Flash 时崩溃

新建可执行文件/etc/profile.d/flash.sh,文件内容如下:

export XLIB_SKIP_ARGB_VISUALS=1

这将关闭混合特效。

登陆后变成浅灰色背景 (如Openbox)

安装hsetroot,在运行xcompmgr之前,执行hsetroot -solid "#000000"(将000000替换成你想要的颜色代码)。

在 awesome 窗口管理器中出现 BadPicture request

如果你在 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。

Chromium & Xcompmgr & Awesome & Conky

I got some problems at startup after changing the displayresolution and autostarting Chromium in AwesomeWM (laptop with external monitor). In Combination with Conky there is always some part of the screen "stuck", the problem came from my resolution change at start via .xinitrc and Awesome setting the background afterwards via feh. I solved this by putting

hsetroot -solid "#000066"

in my .xinitrc just before xcompmgr.

小提示

方便开关xcompmgr的脚本

把这个脚本放在合适的应用程序目录,可以方便地启动、关闭xcompmgr。

#!/bin/bash
#
# Start a composition manager.
# (xcompmgr in this case)
function comphelp () {
echo "Composition Manager:"
echo "   (re)start: COMP"
echo "   stop:      COMP -s"
echo "   query:     COMP -q"
echo "              returns 1 if composition manager is running, else 0"
exit
}
function checkcomp () {
( ps nc -C xcompmgr &>/dev/null ) && exit 1
exit 0
}
function stopcomp () {
( ps nc -C xcompmgr &>/dev/null ) && killall xcompmgr
}
function 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 "$1x" in
"x") startcomp;;
"-qx") checkcomp;;
"-sx") stopcomp; exit;;
*) comphelp;;
esac

另见

  • AIGLX
  • Composite -- 混合窗口管理器需要的Xorg扩展
  • Compiz -- Novell开发的混合窗口管理器
  • Cairo Composite Manager -- 功能齐全、可扩展的混合窗口管理器,使用cairo渲染。
  • 维基百科:混合窗口管理器
Retrieved from " https://wiki.archlinux.org/index.php?title=Xcompmgr_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&oldid=184247"