.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"

最後に、変更を元に戻してコピーしたファイルを削除できます。

関連情報