没有任务栏,无法右键单击桌面

joz*_*yqk 38 kde kde-plasma-workspace kde-plasma-5

不知道这是怎么发生的。plasmashell消耗 6GB 内存后崩溃,我尝试删除~/.cache. 不久之后plasmashell要做的就是用壁纸启动我的桌面背景,但不会给我任何任务栏,而且我无法通过右键单击桌面来调出菜单。

重新启动它或重新启动整个机器没有帮助。

Eri*_*icS 47

jozxyqk 的回答是正确的,但它是相当激烈的。它会清除您所有的工具栏自定义、应用程序收藏夹等。

根据您的情况出现此问题的原因,您可以通过编辑 Plasma-org.kde.plasma.desktop-appletsrc 文件然后执行

kquitapp plasmashell && kstart plasmashell
Run Code Online (Sandbox Code Playgroud)

我遇到的一个原因是有问题的多显示器功能有时会在我连接到外部显示器然后断开连接后从我的笔记本电脑屏幕上“丢失”任务栏(我认为这是在等离子 5.5 或 5.6 中)。在这种情况下,我发现问题出在任务栏配置中的 lastScreen 设置上。要解决此问题,请在plasma-org.kde.plasma.desktop-appletsrc 中找到如下所示的文本部分:

[Containments][1]
activityId=
formfactor=2
immutability=1
lastScreen=1
location=4
plugin=org.kde.panel
wallpaperplugin=org.kde.image
Run Code Online (Sandbox Code Playgroud)

(其中一些行在您的配置中可能会有所不同。在我的文件中,这部分只有十几行,但我不知道可能会有多少不同。)

设置 lastscreen=0 为我解决了这个问题。我假设 0 代表我的笔记本电脑屏幕,而 1 是外接显示器。

如果有疑问,您可以随时执行 jozxyqk 的答案中的程序,并在恢复编辑过的之前将新生成的 Plasma-org.kde.plasma.desktop-appletsrc 与您保存的 Plasma-org.kde.plasma.desktop-appletsrc.bak 进行比较您保存的副本的版本。


joz*_*yqk 34

更新:请先查看EricS 的回答,因为您可以避免丢失 KDE 配置。


我最终删除了其中包含名称的随机配置文件plasma。有效的是:

cd ~/.config
mv plasma-org.kde.plasma.desktop-appletsrc \
   plasma-org.kde.plasma.desktop-appletsrc.bak
Run Code Online (Sandbox Code Playgroud)

然后重新启动等离子外壳

kbuildsycoca5 && kquitapp plasmashell && kstart plasmashell
Run Code Online (Sandbox Code Playgroud)


Ser*_*kov 5

注意:先备份

cp ~/.config/plasma-org.kde.plasma.desktop-appletsrc ~/.config/plasma-org.kde.plasma.desktop-appletsrc.bak
Run Code Online (Sandbox Code Playgroud)

整体错误描述

假设执行以下操作:附加新的第二台显示器 -> 附加旧的第二台显示器。在此过程之后,旧的第二台显示器的“屏幕 ID”被损坏。您看不到任务栏(面板),壁纸已重置等。


下面的步骤参考文件 ~/.config/plasma-org.kde.plasma.desktop-appletsrc (之后是 SETTINGS_FILE)


怎么修

I. 找出您的显示器的屏幕 ID

  • 更改两个屏幕上的桌面壁纸,例如 foo.png 用于监视器 1 和 bar.png 监视器 2。

下面描述如何找到监视器1的屏幕ID

  • 打开 SETTINGS_FILE
  • 在 SETTINGS_FILE 中找到 foo.png 和 bar.png

您将看到以下块(对于 foo.png)

[Containments][2][Wallpaper][org.kde.image][General] 
FillMode=6 
Image=~/Pictures/foo.png 
Run Code Online (Sandbox Code Playgroud)

这意味着 foo.png 是 [Containments][2] 的一部分。

  • 此后找到以下引用 [Containments][2] 的块

.

[Containments][2]
activityId=9c23ff19-bffa-4182-bdb6-d9b36dd27cdb
formfactor=0
immutability=1
lastScreen=0
location=0
plugin=org.kde.plasma.folder
wallpaperplugin=org.kde.image
Run Code Online (Sandbox Code Playgroud)

瞧,我们看到字符串“lastScreen=0”。表示监视器1的屏幕ID为0(因为监视器1指的是foo.png,foo.png指的是[Containments][2],而[Containments][2]指的是lastScreen=0)。

与查找监视器 2 的屏幕 ID 的方法相同,例如 1。

因此,假设监视器 1 和监视器 2 的屏幕 ID 分别为 0 和 1。

二、查找和替换屏幕 ID

  • 在 SETTINGS_FILE 上运行 grep

.

$ grep lastScreen=  plasma-org.kde.plasma.desktop-appletsrc
lastScreen=0
lastScreen=1
lastScreen=0
lastScreen=0
lastScreen=1
lastScreen=2
lastScreen=1
lastScreen=0
lastScreen=2
lastScreen=1
lastScreen=0
lastScreen=0
lastScreen=1
lastScreen=2
Run Code Online (Sandbox Code Playgroud)

如您所见,有“lastScreen=2”行。这些是损坏的线路。

  • 在 SETTINGS_FILE 中进行替换 lastScreen=2 -> lastScreen=1。

  • 重启 KDE

.

kquitapp5 plasmashell && kstart5 plasmashell
Run Code Online (Sandbox Code Playgroud)

现在,您的桌面应该得到修复!