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

时间:2015-09-02 17:36:17

标签: 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_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(又名pygtk)获取gtklib以获取shell图标或任何文档URL

感谢您的建议。

0 个答案:

没有答案