Mintのコマンドラインからデスクトップランチャーを実行します。

Mintのコマンドラインからデスクトップランチャーを実行します。

コマンドラインからデスクトップランチャーを起動できますか?たとえば、〜/ DesktopディレクトリにSlack用のデスクトップランチャーがあります。

vadim@my-pc ~/Desktop $ cat slack.desktop 
[Desktop Entry]
Name=Slack
Comment=Slack Desktop
GenericName=Slack Client for Linux
Exec=/usr/bin/slack --proxy-server="10.1.50.8:8080"
Icon=/usr/share/pixmaps/slack.png
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Network;InstantMessaging;
MimeType=x-scheme-handler/slack;
Name[en_US]=slack

Execパラメータでは、プロキシサーバーなどのアプリケーションを起動するためのさまざまなオプションを指定できます。デスクトップランチャーのパラメータでプロキシを正確に指定するのが便利であることがわかりました。

これで、デスクトップランチャーのすべての起動オプションを使用してコマンドラインからSlackを起動できるようになります。シェルスクリプトファイルを作成し、ここに必要なすべての起動オプションを指定し、デスクトップランチャーとコマンドラインからファイルを実行できることを知っていますが、単に実行する方法はありますか?スラックデスクトップコマンドラインのファイル?

答え1

次のツールを使用できます。xdg-open (現在破損している)、、、kde-opengnome-opengtk-launchまたはデスクトップ環境と同じです。 (xdg-open普遍的なようですが…)

gtk-launch(他のツールキットにも同様のツールがある可能性があることを除いて、すべて同じエラーが発生しているようです。xdg-open実行するのではなく、エディタで.desktopファイルを開きます。)

パッケージ:(正確な名前はディストリビューションによって異なります)(CentOS 7ベース)

  • gtk3 は gtk の起動に使用されます。
  • xdg-open用xdg-utils
  • kde-open のための kde ランタイム
  • GNOMEオープン用のlibgnome

答え2

本当にこれをしたい場合は、.desktopファイルから実行可能ファイル名を抽出して実行する小さな関数を書くことをお勧めします。シェルの初期化ファイル(たとえば~/.bashrc)に次の行を追加します。

runDesktop () {
  eval "$(awk -F= '$1=="Exec"{$1=""; print}' "$1")"
}

その後、.desktopファイルを使用して.desktopファイルを実行できますrunDesktop ~/Desktop/slack.desktop。確かに、いつもの警告申請についてeval

もう少し頑張ってください。複雑複雑な:

runDesktop () {
  comm=( $(awk -F= '$1=="Exec"{$1=""; print}' "$1") )
  "${comm[0]}" "${comm[@]:1}" &
  disown
}

答え3

このdexアプリはおそらくこれを行う最も簡単な方法です。

sudo apt install dexそうでdex ~/Desktop/some-application.desktopあれば、またはほとんどのシステムアプリを/usr勝手に使用できるからですdex /usr/share/applications/some-application.desktop

関連情報