Environment-Variables

非標準目錄中的 .desktop 文件

  • October 17, 2017

我通過使用環境模組管理器(即Lmod)向我的系統使用者提供一些應用程序。所以我有一堆標準樹之外的自編譯應用程序:例如,假設我有軟體安裝在/software. 在這些應用程序中,有一些提供.desktop條目。例如,假設我重新編譯了 evince: 的更新版本/software/evince/2.32,這樣我分別擁有/software/evince/2.32/bin /software/evince/2.32/lib /software/evince/2.32/share/applications/evince.desktop.

modulefiles您所做的是預先添加PATH, LD_LIBRARY_PATHecc… 到自編譯應用程序的路徑,當您這樣做時module load evince$PATH您將獲得更新的版本。

我希望能夠對desktop條目執行相同的操作,以便能夠為使用者提供額外的(或更新的)桌面應用程序。是否有我可以更新的環境變數讓 WM 能夠desktop從其他目錄獲取文件?

有兩種方法可以做到這一點:

第一個選項是更新$XDG_DATA_DIRS變數。但是,您的.desktop文件必須在$XDG_DATA_DIRS/applications/目錄中。因此,您需要/software/applications為文件創建目錄.desktop並附/software加到$XDG_DATA_DIRS. 之後,執行update-desktop-database命令以更新記憶體。這是由desktop-utils軟體包提供的。

另一種選擇是xdg-desktop-menu install.desktop文件上執行。xdg-utils該程序是任何非標準環境的一部分並將自動處理,並且也可以由普通使用者執行。它還使解除安裝更容易,因為您只需執行xdg-desktop-menu uninstall. 詳情請參閱man xdg-desktop-menu

我個人的建議是使用各種xdg-utils程序進行任何與桌面相關的更新。它們比處理環境變數要容易得多。

引用自:https://unix.stackexchange.com/questions/398642