如何在 .desktop 文件中用引号传递 URL 字符串

如何在 .desktop 文件中用引号传递 URL 字符串

我通过 Wine 安装了 WhatsApp Desktop,并尝试将whatsapp://链接与其关联。

通过命令行执行以下命令可以启动与电话号码的聊天+1234567890

env WINEPREFIX="/home/mike/WhatsAppDesktopWine" wine C:\\users\\mike\\AppData\\Roaming\\Microsoft\\Windows\\Start\ Menu\\Programs\\WhatsApp\\WhatsApp.lnk "whatsapp://send/?phone=%2B1234567890&text&type=phone_number&app_absent=0"

我编辑了我的~.config/mimeapps.list文件并添加了:

x-scheme-handler/whatsapp=~/.local/share/applications/wine/Programs/WhatsApp/WhatsApp.desktop

WhatsApp.desktop 包含以下行:

Exec=env WINEPREFIX="/home/mike/WhatsAppDesktopWine" wine C:\\\\users\\\\mike\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start\\ Menu\\\\Programs\\\\WhatsApp\\\\WhatsApp.lnk

然后我"%u"在最后添加,所以整行是

Exec=env WINEPREFIX="/home/mike/WhatsAppDesktopWine" wine C:\\\\users\\\\mike\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start\\ Menu\\\\Programs\\\\WhatsApp\\\\WhatsApp.lnk "%u"

但是它不会将 URL 传递给命令。

答案1

最后Exec一行应该工作,但是我发现它xdg-open缓存了文件的内容.desktop。我不确定缓存的时间是多长,但是以下内容似乎清除了我的缓存:

首先,将 .desktop 条目复制到临时位置:

cp -a ./.local/share/applications/wine/Programs/WhatsApp/WhatsApp.desktop ./.local/share/applications/wine/Programs/WhatsApp/WhatsApp2.desktop

然后在 mimeapps.list 中,将条目更改为复制的位置:

x-scheme-handler/whatsapp=~/.local/share/applications/wine/Programs/WhatsApp/WhatsApp2.desktop

然后执行:

xdg-open "whatsapp://send/?phone=%2B1234567890&text&type=phone_number&app_absent=0"

最后,您可以恢复更改并删除复制的文件。

相关内容