web-dev-qa-db-ja.com

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.desktopファイルを実行するだけの方法はありますコマンドラインから?

2
Vadim Zverev

xdg-openなどのツールを使用できます (現在壊れています)kde-opengnome-opengtk-launch またはデスクトップ環境に相当するもの。 (xdg-openは普遍的なものと思われます...)

gtk-launch以外のほぼすべてのようです(他のツールキットにも同様のツールが存在する可能性があります)は、xdg-openと同じバグの影響を受けます-.desktopファイルを実行せずにエディターで開きます)

パッケージ:(ディストリビューション間で正確な名前は異なります)(これはCentOS 7に基づいています)

  • gtk-launchのgtk3
  • xdg-openのxdg-utils
  • kde-openのkde-runtime
  • gnome-openのlibgnome
1

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

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

次に、runDesktop ~/Desktop/slack.desktopを使用して.desktopファイルを実行できます。もちろん、evalに関する 通常の警告 が適用されます。

もう少し作ってみてください 複雑な 洗練された:

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

dexアプリケーションは、おそらくこれを行う最も簡単な方法です。

Sudo apt install dex その後 dex ~/Desktop/some-application.desktopまたは多く/ほとんどのシステムアプリケーションが/usr使用できますdex /usr/share/applications/some-application.desktop

0
dragon788