问题是什么?
KDE 不尊重其他窗口管理器/DE 设置。
有没有一种方法可以安全地与其他窗口管理器一起运行 KDE,而不必在每次完成 KDE 测试后都重新配置它们?
背景
我的用户的主要桌面主要是 xfce(4.6、4.8、4.10)和 Unity。
- 我经常测试多个窗口管理器(fluxbox、enlightenment、unity、gnome 等)。只有 KDE 会在我测试完某些 KDE 功能后返回另一个窗口管理器时出现问题。
我该怎么做才能修复这个问题?
当返回到 KDE 以外的 WM 时,我发现我必须删除配置(特别是 *gtk 文件)文件才能将其他 WM 恢复为默认设置。
我在寻找什么答案?
- 我可以设置任何文件权限来防止 KDE 破坏我的其他 WM 设置吗?
- 有没有办法确定 KDE 接触和修改了我的主目录中的哪些文件?这可能有助于我缩小问题范围。
- 我愿意编写一个登录脚本来纠正 KDE 出现的任何错误。对于 3 个用户来说,这是可以接受的。但对于 50 个用户来说,这无法扩展。
我该怎么做才能安全地测试 KDE 并返回到我的默认窗口管理器,而不必不断地恢复我的配置?
为什么这很重要?
这是一个给我带来问题的用例:
我有一个用户(可能是 C 级高管)喜欢在 KDE 和 xfce(以及其他窗口管理器)之间来回切换。我该如何配置他们的配置文件,以便当他们决定返回 xfce 时不会获得 KDE 窗口装饰?
就目前情况而言,我无法防止用户登录 KDE 会话后 xfce 会话被完全破坏。
答案1
这是我发现的缓解在 KDE 和 Xfce 之间切换时显示/窗口装饰问题的解决方案。
如何查找 KDE 修改了哪些文件?
查找在指定时间段内主目录中发生变化的文件相当简单。
find ~ -maxdepth 5 -mmin 10
(搜索最近 10 分钟内的变更)
但是,结果中充斥着大量动态文件(例如各种应用程序缓存)。因此,我需要从结果中排除这些文件:
find ~/ -maxdepth 5 \( -path ~/.cache -o -path ~/.xchat2 -o -path ~/.local -o -path ~/Downloads -o -path ~/.config/deluge -o -path ~/.config/chromium -o -path ~/docs -o -path ~/.dropbox -o -path ~/Dropbox -o -path ~/.pulse -o -path ~/.dbus \) -prune -o -mmin -5
这样就会产生一个更易于管理的列表来识别 KDE 已修改的文件(我相信有更优雅的解决方案来获得相同的结果)。
需要更改哪些文件以及应该运行哪些命令?
退出 KDE 之前,进入终端(Ctrl- Alt- t),然后输入以下命令:
rm ~/.gtkrc-2.0
这将删除 KDE 窗口装饰设置,删除该设置将导致这些设置不应用于 Xfce。但是,一旦登录 Xfce,就需要使用以下命令重置 WM:
xfwm4 --replace
此外,如果在 KDE 中工作时对任何主题或字体进行了更改,则需要在登录 Xfce 之前删除另一个文件。否则,Web 浏览器中的字体将被修改。
再次,从命令行:
rm ~/.fonts.conf
我怎样才能(部分)实现自动化?
/etc/lightdm/lightdm.conf
我通过编辑和放置以下行在文件中实现了部分自动化:
[SeatDefaults]
session-cleanup-script = home/<userdir>/clean_up_after_kde.sh
rm
该脚本包含上述两个命令。xfwm --replace
只有在桌面环境启动后才能运行,因此仍需手动运行。
为了使更改生效,需要重新启动 lightdm。运行以下命令:
sudo restart lightdm
。
执行此命令后,您的会话将立即重新启动并返回到登录屏幕,因此请确保在重新启动之前已保存所有工作。
这些命令现在将作为注销过程的一部分运行。请注意,此脚本仅运行后用户已完全退出。
尽管这仍然很笨拙,但这是一个较小的进步,可以使其变得更好。
答案2
设置单独的 /home 分区可能是可行的方法。基本上,您有 2 个 /home 分区(或文件夹,一个虚拟分区),并将虚拟分区用于 KDE。