update drun application directory paths

* fixed xdg-data-home and xdg-data-dirs application directory paths
* added flatpak per-user application path
* deduplicate application paths before searching
This commit is contained in:
Penelope Gwen 2025-08-22 23:36:20 -07:00
parent a5ae9785ed
commit 98ba21b0fb

View file

@ -76,17 +76,21 @@ pub fn find_desktop_files() -> Vec<DesktopFile> {
if let Some(home) = dirs::home_dir() {
paths.push(home.join(".local/share/applications"));
paths.push(home.join(".local/share/flatpak/exports/share/applications"));
}
if let Ok(xdg_data_home) = env::var("XDG_DATA_HOME") {
paths.push(PathBuf::from(xdg_data_home).join(".applications"));
paths.push(PathBuf::from(xdg_data_home.clone()).join("applications"));
paths.push(PathBuf::from(xdg_data_home).join("flatpak/exports/share/applications"));
}
if let Ok(xdg_data_dirs) = env::var("XDG_DATA_DIRS") {
for dir in xdg_data_dirs.split(':') {
paths.push(PathBuf::from(dir).join(".applications"));
paths.push(PathBuf::from(dir).join("applications"));
}
}
paths.sort();
paths.dedup();
let p: Vec<_> = paths
.into_par_iter()