如何创建可在自身所在目录执行命令的.desktop文件?
解决.desktop文件在自身所在目录执行命令的问题
你的问题出在$PWD的使用上:.desktop文件执行时的默认工作目录是用户主目录,这里的$PWD会被解析为主目录路径,而非.desktop文件所在的目录。
要实现需求,你可以利用freedesktop标准中.desktop文件的%k占位符——它会被系统替换为当前.desktop文件的完整本地路径(包含文件名)。通过dirname命令提取该路径的目录部分,再切换到该目录执行命令即可。
修改后的完整配置如下:
[Desktop Entry] Type=Application Name=MyApp Exec=bash -c 'cd "$(dirname "$0")" && node index.js; read' "%k" Icon=obconf Terminal=true Categories=Utility
关键说明:
"%k":将.desktop文件的完整路径作为参数传递给bash命令$(dirname "$0"):从传入的完整路径中提取出文件所在的目录- 用双引号包裹路径:避免目录名包含空格或特殊字符时出现解析错误
内容的提问来源于stack exchange,提问作者djip.co
相关产品推荐
相关产品推荐

