解决Deepin Linux + KWin屏幕界面的撕裂问题

解决Deepin Linux + KWin屏幕界面的撕裂问题,第1张

笔者是一个苛求显卡性能的程序员,对坐拥的两台“古董”笔记本也一视同仁。这两台笔记本,一台是2009年的老机器ThinkPad X61,安装了OpenSUSE;而另一台是2012年的ThinkPad X200,用的是Deepin Linux。

按理说,新机器的显卡性能相对于旧机器应当有所改善,可是事实却让我无奈——X200的Deepin下,拖动窗口时画面会有明显的撕裂感,一个窗口被拆成两半,而且在使用SMPlayer播放视频(720p)时,也会有细微但肉眼可辨的撕裂。然而,X61的OpenSUSE却完全不存在这样的问题,拖动窗口时一气呵成,不会撕裂,观感体验要好上不少。

撕裂现象是Deepin在一些老机器上容易产生的问题。Deepin属于比较新的系统,不可能会对旧机型进行细致的优化,其默认的显卡配置(Xorg的配置文件)也不是放之四海而皆准的,因此还得手动解决。但是,Deepin最新适配的窗口管理器(下文简称“窗管”)KWin,能够便捷地解决这个问题。KWin是KDE的窗管,得益于它的桌面混成器(desktop compositor),KDE Plasma桌面得以充分发挥显卡的性能,哪怕是X61所使用的旧显卡都能实现行云流水的使用体验。这一特性也在Deepin版的KWin得到了实现。

Deepin目前的版本(15.10.1)默认的窗管是Mutter,而不是KWin。KWin需要手动安装,安装下面的包之后,下次启动系统后窗管就会自动从Mutter切换到KWin:

Deepin的KWin默认没有启用桌面混成器,所以在KWin下仍然会出现画面撕裂的情况,与默认的Mutter窗管无异。笔者曾以为Deepin团队会针对KWin的性能作出针对性优化,然而事与愿违了。接下来只能手动启用混成器。

桌面混成器的设置位于 systemsettings 包中。这个包是精简版的KDE系统设置程序,只保留了与KWin和网络有关的设置项。使用下面命令直接安装:

安装后,启动器中就会多出一个“KDE系统设置”,如图所示。

打开KDE系统设置,左栏最后一项“显示和监控”即为桌面混成器的设置。点开它:

首先,勾选“Enable compositor on startup”,让KWin在系统启动时自动启动混成器。然后“Rendering backend”(渲染后端)选择“OpenGL 2.0”或“OpenGL 3.1”。

垂直同步是防止撕裂的关键。KDE提供了若干种垂直同步的处理方法,位于“Tearing prevention ('vsync')”这个选项中。每选择一个方法,设置界面中就会用蓝色的框说明该选项可能会导致的后果。

具体的方法见下表:

实践证明,只有Full screen repaints适合我的X200笔记本。 选择该模式并应用,再拖动窗口,果然不再撕裂了,使用体验变得顺滑了不少!

另外两种方式中,“Only when cheap”只在播放视频时能起到防止撕裂的作用。而对于“Re-use screen content”,KDE的开发者表示 该模式会在MESA驱动中导致严重的性能问题 ,果不其然,选择该模式后,电脑就卡成了PPT,动d不得,延迟爆表!我可是费了很大的劲才把设置还原回来。Linux配备的英特尔集显驱动就是一种MESA驱动,它最终的表现正应了开发者的警告。

启用桌面混成器并选用有效的垂直同步处理方法后,Deepin的体验有了质的提升。

首先是窗口拖动不再出现撕裂的情况,使得界面的 *** 作体验更为舒适流畅,提高了Deepin的规格。

同时,桌面混成器也提高了各种应用程序的界面渲染性能,这是我意料之外的收获。举个例子:Typora,基于Electron开发的Markdown编辑器,它的Chromium内核默认没有启用硬件加速,在启用桌面混成器之前滚屏时会有间歇性错位的现象;Deepin设置,滚屏时虽然很流畅,但也常常会出现界面错位,影响观感。上述两个问题在配置桌面混成器后,竟然在我不经意之间都得到了解决,偶然再使用它们时才发现这一切的转变。

X61上的OpenSUSE,它的KDE Plasma桌面默认就配置好了混成器,所以一开始就无比流畅。而Deepin在经过调教之后,它的表现也开始不输于KDE了。电脑要流畅,启用混成器是王道。

deepin--解决屏幕撕裂问题 :从更改Xorg配置文件来解决撕裂。

Deepin Linux 绝对是 Linux 发行版里最漂亮的那个了,甚至美过 MAC

而且,deepin linux 不只是美,还开发了一系列软件,比如深度终端、深度影院、深度音乐等等,此外又跟搜狗合作,开发了搜狗输入法 Linux 版,真的很良心了。

此外,deepin Linux 对 wine 适配做的也很好,比如 qq、微信、钉钉、迅雷 都可以很完美的使用。

deepin Linux 自带的应用商店也很不错,安装软件非常简单,甚至比 windows 还要省心。windows 下载软件,比如 qq,你需要打开 qq 官网去下载,下载迅雷,你需要打开 迅雷官网去下载,当然,你也可以安装一个软件管家来做这些事。

deepin linux 的桌面是非常漂亮华丽的,壁纸也很漂亮。总结下优点,可能如下:

1、基于 debian,debian 的稳定性值得信赖,所以 deepin Linux 绝对是很稳定的,你基本不用担心升级系统会挂掉,也不用担心系统漏洞啊,病毒啊这些。

2、使用自己开发的桌面,很漂亮,甚至比 mac 还漂亮。

3、有不少 深度 自家应用,比如深度影院,深度音乐,深度终端等。

4、wine 支持的很好,qq、微信、迅雷、钉钉 等大量国产软件可用。

5、与搜狗合作的 搜狗输入法 Linux 也算是给 Linux 用户的礼物,我很喜欢。

但,即使如此,我依旧不喜欢 deepin linux,理由如下:

1、最初的 deepin linux 是基于 ubuntu 开发的,界面也很漂亮,但是稳定性不好,安装失败是常事,而且很卡顿。

2、之后再用 deepin Linux 可能是 18 年了,在公司电脑,唯一不满的是 安装 docker 这些比较麻烦,因为改了 发行版名字嘛,这个所有的发行版都有这个问题,但是我不知道 它基于 debian 那个版本开发的,不知道添加 debian 那个版本的软件源… 这点可能是所有的衍生版都有的毛病。我得自己改下 /etc/os-release 还得去查到底基于 debian 那个版本。

3、小 bug 不断,最新的 deepin Linux,将时间设置为 24 小时格式后,重启会丢失这个保存,即使更新了几次,这个 bug 依旧… 我甚至怀疑,他们的开发是不是真的也用 deepin Linux,这个 bug 对于时间观念强的人,是场灾难!再比如 同时搞了两套驱动(xserver-xorg-input-libinput 和 xserver-xorg-input-synaptics),导致鼠标抖动。其实,后者已经不建议使用了。

4、软件陈旧,以不更新换取稳定。Linux 内核现在都 5.4 了,而 deepin Linux 还是 4.19,如果手动安装新版本,可能有问题。

5、配置不合理。比如 /etc/modprobe.d/iwlwifi.conf 这个文件里,11n_disable 是1,wifi 模式有 b、g、n 三种,n 速度最好,11n_disable=1,意味着 如果 wifi 模式 是 n only,那么将搜不到该 wifi,你需要手动改为 8

对于普通用户而言,deepin Linux 还是很不错的选择,可能是众多 linux 发行版里唯一的选择,尤其是国人。而对于,程序员而言,或者强迫症,可能并不合适。简单的说,如果你对微信、qq 这些软件是强依赖,而且必须是在电脑上登录,那么 deepin Linux 很不错,或者说,你需要 mac 和 windows 的替代品,且不愿意多学习,deepin Linux 也不错。如果两者都不是,那你可能和我一样,眼前一亮,而后又失望一回。

桌面的外观设置一般包括窗口主题、图标主题、光标主题和字体设置,其中窗口主题就是常见的 gtk 主题,字体设置又包括标准字体、等款字体和字体大小。对于进些年的高分屏,又添加了字体缩放和窗口缩放这2个选项。

界面上设置方法就不介绍了,都可以在各自桌面的控制中心中找到,这里主要介绍命令行下的。

deepin 和 gnome 桌面环境的外观配置数据是使用 gsettings 来存储,所以可以通过 gsettings 来设置和读取。 gsettings 相比设置界面就是 可以设置到更多的选项,设置的值更加精确。

下面先简单介绍下 gsettings 的用法。

其中 schema 是在 /usr/share/glib-2.0/schemas 这个目录下, schema_id 是文件内容中 id 的值, key 就是文件中描述的,每个 key 都有一个默认值。

如 deepin 的主题配置文件是 com.deepin.dde.appearance.gchema.xml ,通过其文件开头的内容 <schema path="/com/deepin/dde/appearance/" id="com.deepin.dde.appearance" gettext-domain="DDE"> 可知,其 schema_id 就是 com.deepin.dde.appearance 。

gnome 的外观配置的 id 是 org.gnome.desktop.interface , deepin 的则是 com.deepin.dde.appearance 和 com.deepin.xsettings 。

通过命令 gsettings list-keys <schema_id> 可以查询到所有支持的 key ,如查询 gnome 支持的 key :

每个 key 的含义请阅读对应的 schema 文件来查询。

窗口主题对应的 key 是 gtk-theme ,值是字符串类型。

所有系统附带的 gtk 主题都在 /usr/share/themes 目录下。

如设置 Adapta 作为窗口主题

图标主题的 key 是 icon-theme ,光标主题的 key 是 cursor-theme ,值都是字符串类型,系统附带的图标和光标主题都在 /usr/share/icons/ 目录下。

主题的设置和获取方法与上面的窗口主题一样,这里就不再赘述了。

gnome 标准字体设置的 key 是 font-name ,等宽字体的 key 是 monospace-font-name ,值也都是字符串类型,字体的大小附加在字体名称后面一起设置,如设置标准字体:

gsettings set org.gnome.desktop.interface font-name 'Cantarell 11'

deepin 下标准字体的 key 是 font-standard ,等宽字体的是 font-monospace ,值也是字符串类型。但它的字体大小是单独在 font-size 中设置的,值是浮点数类型。

使用 gsettings *** 作的方法就不再赘述了,与窗口主题一致。

gnome 下字体缩放的 key 是 text-scaling-factor ,它的值是浮点数类型;窗口缩放的 key 是 scaling-factor ,但它的值是无符号整型,即非负的整数。

deepin 下缩放的 schema_id 变为了 com.deepin.xsettings ,字体缩放的 key 是 scale-factor ,它的值也是浮点数类型;窗口缩放的 key 是 window-scale ,它的值也是无符号整型。

注意: 只有在设置 deepin 缩放时 schema_id 才是 com.deepin.xsettings ,其他的设置时都是 com.deepin.dde.appearance 。

以上介绍的设置方法在使用 deepin 或 gnome 作为桌面的 linux 发行版都可以适用,如 ubuntu , fedora 和 deepin 等,这些设置的改变桌面环境是会实时响应。

希望这些能够帮助到你,如写一个自动备份和恢复的脚本等...

如果你是想知道这些设置是如何生效的,请持续关注哦,本人计划在下篇文章中介绍 deepin 下的实现原理,谢谢支持。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7254093.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存