使用node.js从Linux下的应用程序中提取gtk/本机图标?

使用node.js从Linux下的应用程序中提取gtk/本机图标?,linux,node.js,gtk,gnome,Linux,Node.js,Gtk,Gnome,我需要写nodejs函数来检测Linux应用程序图标的名称。 我已经用应用程序启动器解析了INI文件,我需要知道在laucher中作为图标别名指定的真实位置在哪里 使用当前路径查找带有lstatSync的图标: var USR_PIXMAPS_PATH = '/usr/share/pixmaps', USR_APPS_PATH = '/usr/share/applications', USR_DOCKAPPS_PATH = '/usr/share/dock/applications', USR_

我需要写nodejs函数来检测Linux应用程序图标的名称。 我已经用应用程序启动器解析了INI文件,我需要知道在laucher中作为图标别名指定的真实位置在哪里

使用当前路径查找带有
lstatSync
的图标:

var USR_PIXMAPS_PATH = '/usr/share/pixmaps',
USR_APPS_PATH = '/usr/share/applications',
USR_DOCKAPPS_PATH = '/usr/share/dock/applications',
USR_64x64ICON_PATH = '/usr/share/icons/hicolor/64x64/apps',
USR_OTHERICON_PATH = '/usr/share/icons/hicolor';

try { (fs.lstatSync(USR_PIXMAPS_PATH+'/'+data["Desktop Entry"]["Icon"]+'.png')) && (icon=USR_PIXMAPS_PATH+'/'+data["Desktop Entry"]["Icon"]+'.png');    } catch(e) {}
try { (fs.lstatSync(USR_OTHERICON_PATH+'/'+data["Desktop Entry"]["Icon"]+'.svg')) && (icon=USR_OTHERICON_PATH+'/'+data["Desktop Entry"]["Icon"]+'.svg');    } catch(e) {}
try { (fs.lstatSync(USR_64x64ICON_PATH+'/'+data["Desktop Entry"]["Icon"]+'.png')) && (icon=USR_64x64ICON_PATH+'/'+data["Desktop Entry"]["Icon"]+'.png');    } catch(e) {}
try { (fs.lstatSync(data["Desktop Entry"]["Icon"])) && (icon=data["Desktop Entry"]["Icon"]); } catch(e) {  }
这是我检测gtk图标的方法

在Linux下使用node js或node.js的gtklib(又名pygtk)获取应用程序图标路径(可能是从二进制文件提取的简单方法)以获取shell图标或任何文档url


感谢您的建议。

这不是正确的主题感知方式来查找应用程序的图标名称。您应该在gtklib中调用与pygtk的
gtk.IconTheme.lookup_icon
等价的函数。(我甚至想帮你查一下,但我找不到gtklib)。(或者您可以从中实现适当的查找。)因此我需要node.js的相同解决方案。我正在按图标主题规范(主题是硬编码的)查找正确的文件夹,但并没有找到所有图标。例如,“系统测试”应用程序