非標準目錄中的 .desktop 文件
我通過使用環境模組管理器(即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_PATH
ecc… 到自編譯應用程序的路徑,當您這樣做時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
程序進行任何與桌面相關的更新。它們比處理環境變數要容易得多。