十多年来,我已经使用了许多 Linux 变体(主要是 Debian 衍生版)。一个我还没有看到满意解决的问题是水平撕裂的问题,或者没有正确实现 Vsync。
我这么说是因为我在 4 台不同的计算机上使用了 5 种不同的发行版,这些计算机具有各种显示器和 Nvidia/AMD/ATI/Intel 显卡;每次都会出现视频撕裂甚至轻微运动的问题。
这是一个大问题,尤其是因为即使是 Windows XP 在现代硬件上也没有这些问题。如果有人打算将 Linux 用于任何事情,为什么他们希望在做任何非 CLI 的事情时不断出现缺陷?
我猜要么很少有开发人员知道这个问题,要么足够关心来解决它。我已经尝试了几乎所有的合成器,通常他们能做的最好的事情就是尽量减少问题,但不能消除它。不应该和显示器的刷新率同步这么简单吗?OSS 社区中是否有一些政治因素阻止任何人提交修复此问题的代码?
过去每次我就这个问题寻求帮助时,它要么被视为边缘情况(我发现很难相信这是我复制问题的次数),要么我得到了潜在的解决方案最多减少撕裂。
如何通过命令行禁用合成?我需要暂时禁用某些游戏,例如 Nexuiz,以便在包装器脚本中使用以切换合成状态。
为了让我在不撕裂的情况下观看高清视频,我需要禁用我的复合设置 xorg.conf
Section "Extensions"
Option "Composite" "Disable"
EndSection
Run Code Online (Sandbox Code Playgroud)
但是我喜欢我的透明度,所以,如何在不重新启动 X 的情况下启用和禁用它?(最好使用命令行)
我正在使用 Arch Linux,并且安装了 Gnome 和 i3 窗口管理器。运行 i3 时,我试图启动复合管理器 Compton。但是尝试这样做会导致以下错误:
$ compton
[ 04/11/2019 22:32:36.443 register_cm FATAL ERROR ] Another composite manager is already running
Run Code Online (Sandbox Code Playgroud)
我认为这意味着 Compton 已经在运行,或者 Mutter 正在运行,但我不确定哪个。
是否有可以用来确定当前正在运行的复合管理器的命令?
xcompmgr 提供以下选项:
-s Server-side compositing with hard-edged shadows.
Run Code Online (Sandbox Code Playgroud)
根据实验,我可以说这比“客户端”选项快得多。但它究竟在做什么?在 Xorg 中,客户端和服务器端合成有什么区别?
而且,更重要的是:如果我想在例如窗口管理器中实现服务器端合成,我必须使用哪些 Xorg 函数集?
如何在 Awesome WM 中的标签之间添加平滑滚动?我意识到我无法使用 Awesome 运行 compiz。有什么可比的东西我可以运行吗?我不需要任何其他效果,在标签之间快速切换只是在它跳跃时令人不安。
编辑:虽然我没有找到确切的答案,但 cairo-compmgr 可以在标签和客户端之间平滑淡入淡出。我很满意:)