有没有办法阻止 KDE 覆盖我的其他 WM 设置?

Kev*_*wen 8 kde window-manager

问题是什么?

  • KDE 不尊重其他窗口管理器/DE 设置。

    有没有一种方法可以安全地将 KDE 与其他窗口管理器一起运行,而不必每次在使用 KDE 完成测试后都重新配置它们?

背景

我的用户的主要桌面主要是 xfce(4.6、4.8、4.10)和 Unity。

  • 我经常测试多个窗口管理器(fluxbox、enlightening、unity、gnome 等)。一旦我完成了一些 KDE 功能的测试,当我返回另一个 WM 时,只有 KDE 会给我带来问题。

我做了什么来解决这个问题?

当返回到 KDE 以外的 WM 时,我发现我必须删除配置(特别是 *gtk 文件)文件才能将我的其他 WM 恢复到它们的默认设置。

我在寻找什么答案?

  • 是否有任何文件权限可以设置以防止 KDE 破坏我的其他 WM 设置?
  • 有没有办法确定 KDE 接触和修改我的主目录中的哪些文件?这可能有助于我缩小我的问题。
  • 我愿意构建一个登录脚本来纠正 KDE 损坏的任何东西。对于三个用户来说,这是可以接受的。这不会扩展到 50 个用户。

我该怎么做才能安全地测试 KDE 并返回到我的默认窗口管理器,而不必不断恢复我的配置?

为什么这很重要?

这是一个导致我出现问题的用例:

我有一个用户(想想 C 级 exec)喜欢在 KDE 和 xfce(以及其他 WM)之间来回切换。我如何配置他们的配置文件,以便他们在决定移回 xfce 时不会获得 KDE 窗口装饰?

就目前而言,在用户登录 KDE 会话后,我一直无法防止 xfce 会话被完全破坏。

Kev*_*wen 5

这是我发现在 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 
Run Code Online (Sandbox Code Playgroud)

该脚本包含rm上面的两个命令。将xfwm --replace无法运行,直到桌面环境已经开始,所以这仍然是手动运行。

为了使更改生效,需要重新启动 lig​​htdm。运行以下命令:

sudo restart lightdm.

执行此命令后,您的会话将立即重新启动,并使您返回登录屏幕,因此请确保在重新启动之前已保存所有工作。

这些命令现在将作为注销过程的一部分运行。请注意,此脚本仅用户完全注销运行。

虽然这仍然很笨拙,但这是减少它的一小步。