* 获取 Linux 上所有 .desktop 文件的搜索路径(XDG 规范)
()
| 218 | * 获取 Linux 上所有 .desktop 文件的搜索路径(XDG 规范) |
| 219 | */ |
| 220 | function getLinuxDesktopPaths(): string[] { |
| 221 | const home = os.homedir() |
| 222 | const xdgDataDirs = process.env.XDG_DATA_DIRS || '/usr/local/share:/usr/share' |
| 223 | const baseDirs = xdgDataDirs.split(':').filter(Boolean) |
| 224 | |
| 225 | const paths = [ |
| 226 | path.join(home, '.local/share/applications'), // 用户级 |
| 227 | ...baseDirs.map((dir) => path.join(dir, 'applications')) // 系统级 |
| 228 | ] |
| 229 | |
| 230 | return [...new Set(paths)] // 去重 |
| 231 | } |
| 232 | |
| 233 | /** |
| 234 | * 扫描单个目录下的所有 .desktop 文件 |