如何访问当前系统主题的图标集?

Posted

技术标签:

【中文标题】如何访问当前系统主题的图标集?【英文标题】:How to access the icon set of the current system theme? 【发布时间】:2019-07-13 21:21:50 【问题描述】:

我正在编写一个 bash 脚本,它使用 notify-send(来自 notify-osd 包)向用户显示弹出通知,例如如果在运行时出现错误。这些弹出窗口可以用图标装饰,如下所示:

notify-send -i $icon $headline $message

为了使我的脚本尽可能精简,我想使用系统自带的默认图标。到目前为止,我已经使用了硬编码的文件名,如下所示:

icon="/usr/share/icons/Mint-Y/status/48/dialog-error.png"

这显然是一个非常糟糕的解决方案,因为图标取决于可能未安装在给定系统上的主题(在上面的示例中,它是“Mint Y”主题)。我正在寻找一种方法来告诉我的脚本:“向系统询问当前设置的图标主题中的错误图标,然后使用它。”

问题是:我该怎么做?

【问题讨论】:

这是特定于您正在使用的特定窗口管理器的内容。 抱歉,您能说得更具体一点吗? 究竟是什么是特定于正在使用的窗口管理器的?请求当前主题?请求通用图标?我在哪里可以阅读? 我的意思是桌面环境,如 Gnome、KDE ​​等。en.wikipedia.org/wiki/Desktop_environment 所以没有“跨DE”的方式来做到这一点?好的...假设我想在 Gnome(以及基于 Gnome 的 DE,例如 Cinnamon)中执行此操作...我该怎么做? 【参考方案1】:

不要指定路径之类的东西。您应该指定一个通用文件名片段,并让系统为您搜索最佳值。

因此,如果文件名中有大小或文件类型或其他内容,请将其删除,并且不要指定前导路径。

使用类似notify-send -i info testnotify-send -i error test ...

notify-send -i printer-error test,它会在后台找到类似/usr/share/icons/Adwaita/256x256/status/printer-error.png 的内容。

【讨论】:

谢谢,这对我有用。我现在正在使用 notify-send -i error |设置 |信息...像魅力一样工作! :) 这些通用名称是否在某处列出,这样我就不必为每个新通知随机获取正确的关键字?

以上是关于如何访问当前系统主题的图标集?的主要内容,如果未能解决你的问题,请参考以下文章

如何在桌面建立资源管理器的快捷方式图标

Qt:有没有办法让工具栏图标适应系统主题?

ubuntu19 更换GRUB启动界面和系统主题教程

如何在反应应用程序中设置系统偏好暗模式,但还允许用户来回切换当前主题

教你安装漂亮的Arc GTK主题

图标大小怎么调