我在 Thunderbird 中设置了自定义tags
和相应的过滤器,这样到达我收件箱的电子邮件就会根据发件人进行过滤,并带有相应的标签tag
。在我的收件箱中,这显示为不同颜色的电子邮件。到目前为止一切顺利。
这很有效,但我意识到我实际上并不希望在收件箱中出现不同颜色的电子邮件。我希望标签颜色仅对新(未读)电子邮件有效。一旦电子邮件被阅读,它就不应该被染上不同的颜色。
假设目前我有red
和blue
标签。
通常情况下,新邮件会以粗体显示。普通邮件会以白色粗体显示,带有 标记的邮件red
会以红色粗体显示,依此类推。阅读邮件(即单击邮件)后,粗体会消失。
我也希望标签颜色消失。
因此,实际上,所有新邮件都以粗体显示(与现在相同),并且只有新邮件会根据标签以不同的颜色显示。因此,所有已读邮件看起来都应该相同。
我知道如何让所有新邮件以粗体红色显示:
#threadTree treechildren::-moz-tree-cell-text(unread), treechildren::-moz-tree-cell-
text(hasUnreadMessages-true) {
font-weight: bold !important;
color: red !important;
}
我还知道如何改变给定标签的颜色:
treechildren::-moz-tree-row(Tred, selected) {
background-color: #ff0000 !important;
color: white !important;
}
treechildren::-moz-tree-cell-text(Tred, selected) {
background-color: #ff0000 !important;
color: white !important;
}
但我不知道如何实现上面所描述的。
答案1
我希望有人能想出基于 CSS 或其他东西的更好解决方案,也许他们仍会想出,但在此之前,这里有一个使用消息过滤器的临时解决方案。缺点是,在读取消息后,颜色更新不可避免地会延迟长达一分钟。
首先,需要一个优先级高于其他所有要使用的标签的“已读”标签。原因是:标签是分层的;如果一条消息被分配了多个标签,则只显示优先级最高的标签的颜色。理想情况下,标签 1(默认的“重要”标签)应该是“已读”标签。
接下来,需要一个选择“定期”选项的过滤器,如下所示(其中显示的“重要”标签将是选择为“阅读”标签的任何标签):
然后,为了减少过滤器的运行时间:
- 打开 Thunderbird 的配置编辑器
periodic
在搜索框中输入- 双击
mail.server.default.periodicFilterRateMinutes
,然后 - 将值更改为
1
(当然,点击OK
)。如果您返回“已读消息”过滤器,它现在应该显示“定期,每分钟”而不是“定期,每 10 分钟”。
当过滤器运行时,“已读”消息应标有优先级更高的“已读”标签,从而覆盖消息的其他标签设置的颜色,将其颜色更改为“已读”标签的颜色。
全面披露:我已全部测试过除了让它定期运行,而不是只手动运行过滤器。不想意外地为所有已读消息设置标签。
请...有人...想出一个更好的解决方案。:)
答案2
就像您使用的属性一样unread
,也存在read
。
您或许可以添加一个额外的过滤器read
来逆转颜色的变化。
我无法尝试,因此以下只是猜测:
treechildren::-moz-tree-row(read)
{
font-weight:normal !important;
background-color: #ffffff !important;
color: black !important;
}