如何更改 Plasma 桌面通知中的文本颜色?

如何更改 Plasma 桌面通知中的文本颜色?

我使用 Plasma-desktop 通知来处理各种事情,通常来自使用kdialog或 的脚本notify-send。我的 Plasma 桌面使用深色背景和浅色前景(文本)。直到几个月前,一切都很好,但在系统更新(五月?)之后,我的通知保留了深色背景,但开始在通知正文中使用深色文本。因此,我只能读到标题。

我查看了 中当前的配色方案~/.local/share/color-schemes/*.colors,将所有文本 ( Foreground*=255,0,0) 设置为红色,但通知字体没有改变。 这个文件ForegroundInactive提供了一些应用于正文的规范和提及。然而,这可能是目前配色方案中所缺乏的一部分。此外,该文件已有大约三年的历史。

我在 Gentoo Linux 上使用 KDE Plasma v.5.25.5。

如何更改通知中(正文)文本的颜色?

答案1

您应该能够更改通知的正文文本颜色系统设置->外貌->颜色。在这里,单击当前所选主题的编辑图标,然后选择“查看文字”颜色。保存并应用更改后(您可能需要注销并再次登录),通知正文应以您选择的颜色显示。这里要小心,因为这也会改变其他地方的颜色。这似乎是某种标签的通用设置。应用更改后,您基本上应该立即在系统设置窗口中看到新颜色,因为它使用与通知本身相同的标签。最好将原始值复制到某处,以防系统主题发生过多更改。

我不确定在哪里可以专门更改通知正文文本的颜色,而不影响系统的其他部分。根据这个线程,通知继承系统颜色似乎是 KDE Plasma 新版本所特有的。不过,你随时可以尝试更改颜色直接在代码中但这似乎是一个过于侵入性的解决方案。希望这可以帮助!

答案2

卢卡斯的回答为我指明了解决方法(而不是解决方案)的方向:

In /usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui/NotificationItem.qml
@@ -230,7 +230,7 @@ ColumnLayout {
                         // HACK RichText does not allow to specify link color and since LineEdit
                         // does not support StyledText, we have to inject some CSS to force the color,
                         // cf. QTBUG-81463 and to some extent QTBUG-80354
-                        text: "<style>a { color: " + PlasmaCore.Theme.linkColor + "; }</style>" + notificationItem.body
+                        text: "<style>a { color: " + PlasmaCore.Theme.linkColor + "; } p { color: " + PlasmaCore.Theme.textColor + "; }</style><p>" + notificationItem.body + "</p>"
 
                         // Cannot do text !== "" because RichText adds some HTML tags even when empty
                         visible: notificationItem.body !== ""

虽然这不能正确解决我的问题,但至少我可以再次阅读我的通知。由于我花了几个小时才达到这样一个微不足道的目标(每次更改后我都必须注销并进入 Plasma,这对我没有帮助 - 在这次编辑后你必须做同样的事情),我很高兴/很恼火停在这里。

然而,这种解决方法可能会让您对实际问题有一些了解 - 我仍然很有兴趣听到任何进一步的建议。

相关内容