コマンドラインからデスクトップランチャーを起動できますか?例えば。 〜/ 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ファイルを実行するだけの方法はありますコマンドラインから?
xdg-open
などのツールを使用できます (現在壊れています) 、kde-open
、 gnome-open
、 gtk-launch
またはデスクトップ環境に相当するもの。 (xdg-open
は普遍的なものと思われます...)
(gtk-launch
以外のほぼすべてのようです(他のツールキットにも同様のツールが存在する可能性があります)は、xdg-open
と同じバグの影響を受けます-.desktopファイルを実行せずにエディターで開きます)
パッケージ:(ディストリビューション間で正確な名前は異なります)(これはCentOS 7に基づいています)
これが本当に必要な場合は、.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
}
dex
アプリケーションは、おそらくこれを行う最も簡単な方法です。
Sudo apt install dex
その後 dex ~/Desktop/some-application.desktop
または多く/ほとんどのシステムアプリケーションが/usr
使用できますdex /usr/share/applications/some-application.desktop
。