コマンドラインからデスクトップランチャーを起動できますか?たとえば、〜/ 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-open
gnome-open
、gtk-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
。