アイコンを使用して実行可能ファイルに対するコマンドの実行

アイコンを使用して実行可能ファイルに対するコマンドの実行

(Ubuntu 18.04) 与えられたアイコンで実行ファイルを開くコマンドはありますか?より多くの背景情報を提供します。複数のGoogle Chrome「ユーザー」を作成しようとしています(「人」タブではなく、各ユーザーに一意のユーザーセットが必要です)。 너도 할 수 있다는 걸 알아 내도 해냈어 먼저 실행해

mkdir ~/.config/google-chrome-Theo

そして

mkdir ~/.config/google-chrome-Teddy

次に、実行するデスクトップ実行可能ファイルを作成します。

google-chrome --user-data-dir=$HOME/.config/google-chrome-Theo

そして別のランニング

google-chrome --user-data-dir=$HOME/.config/google-chrome-Teddy

これにより、「Theo」実行ファイルを実行するときにTheoの人事スイート、ブックマークなどを取得できます。ただし、「Teddy」実行ファイルを実行すると、Teddyの人とブックマークが表示されます。問題は、プロパティメニューに入ると各デスクトップ実行可能ファイルのアイコンを変更できますが、ポップアップしているChromeインスタンスのアイコンは変更できないことです。つまり、TheoとTeddyの両方のクロムを開くと、目的のアイコンを見つけるために検索する必要がある2つの一般的なクロムアイコンがあります。特定のアイコンで実行可能ファイルを開くコマンドはありますか?

編集:fra-sanの答えを試しましたが、私には効果がないようです。私の試みを明確にします。結局、次の2つのデスクトップファイルがありました。

  1. Desktop/Chrome-Theo.desktop次のコンテンツが含まれています。

#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Terminal=false Type=Application Name=Google Chrome Exec=/opt/google/chrome/google-chrome --user-data-dir="/home/theo/.config/google-chrome-Theo" --class=theo Icon=/home/theo/Icon-Blue.png NoDisplay=true StartupWMClass=theo

  1. Desktop/chrome-teddy.desktop、内容は次のとおりです。

#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Terminal=false Type=Application Name=Google Chrome Exec=/opt/google/chrome/google-chrome --user-data-dir="/home/ubuntu/.config/google-chrome-Teddy" --class=teddy Icon=home/teddy/Icon-Red.png NoDisplay=true StartupWMClass=teddy

ただし、そのアイテムを開くと、サイドバーにデフォルトのChromeアイコンが表示されます。私はどこかを台無しにしましたか?

編集2:これら2つのデスクトップ実行可能ファイルが同じChromeユーザーを開いていることに気づきました。 Theo chromeにページをブックマークに追加し、Teddyページを開くと同じブックマークがあります。今は本当に混乱しています。

ベストアンサー1

仮説

私はUbuntu 18を使用しており、デスクトップ環境があなたが使用しているGNOME 3であると仮定しますgoogle-chrome-stable
また、あなたが言及しているアイコンは次のとおりです。GNOME用ダッシュ(実際にはUbuntu Dockです。ダッシュフォークであることを知っていますが、現在は意味のあるドキュメントに接続できません。)デフォルトの動作は、複数のChromeインスタンスをまとめてグループ化することです。だから結局私はあなたが別のアイコンが欲しいと仮定しますChrome プロフィール桟橋から。

解決策

基本的に再現するために必要なステップは私の答えで説明されています。この問題。しかし、これだけでは十分ではありません。おそらくこのエラー- これは、Google Chromeがこのオプションを指定しない限り(そして他のディレクトリが使用されていない限り)、この--classオプションを無視します。--user-data-dir

2つが必要です。

  1. デスクトップファイルの一部を編集します。
  2. 2つの異なるChromeユーザーデータディレクトリ。

ポイント2:幸いなことに、あなたはすでにそれらを持っています:~/.config/google-chrome-Theoそして~/.config/google-chrome-Teddy

ポイント1:デスクトップファイルの詳細が不足しているため、ここから最初から新しく作成します。デフォルトでは、
各ユーザーのデスクトップファイルの場所はです~/.local/share/applications

  1. ~/.local/share/applications/chrome-theo.desktop、内容は次のとおりです。

    #!/usr/bin/env xdg-open
    [Desktop Entry]
    Version=1.0
    Terminal=false
    Type=Application
    Name=Google Chrome
    Exec=/opt/google/chrome/google-chrome --user-data-dir="/home/your_user/.config/google-chrome-Theo" --class=theo
    Icon=icon_for_theo
    NoDisplay=true
    StartupWMClass=theo
    
  2. ~/.local/share/applications/chrome-teddy.desktop、内容は次のとおりです。

    #!/usr/bin/env xdg-open
    [Desktop Entry]
    Version=1.0
    Terminal=false
    Type=Application
    Name=Google Chrome
    Exec=/opt/google/chrome/google-chrome --user-data-dir="/home/ubuntu/.config/google-chrome-Teddy" --class=teddy
    Icon=icon_for_teddy
    NoDisplay=true
    StartupWMClass=teddy
    

your_userパスを実際のユーザー名に置き換えます。合計を次に
変更します。icon_for_theoicon_for_theddy

  • これフルパス使用したいアイコンファイルに移動するか、
  • これ名前、アイコンファイルをシステム全体で使用できるようにするには、拡張子を使用しないでください/usr/share/icons/hicolor/

2番目のオプションは設定がはるかに複雑ですが、さまざまなサイズのアイコンを使用できます。引用するAsk Ubuntuに対するこの回答詳細は次のとおりです。アイコンテーマ仕様freedesktop.orgで提供。

仕組み:

  • この--class=オプションは、WMCLASS2つのChromeインスタンスに2つの異なるesを提供し、Dockでグループ化できないようにします。
  • StartupWMClass=開いているChromeウィンドウとそれを実行しているデスクトップアイテムの間にリンクを設定して、Dockにカスタムアイコンを保持します。
  • 上記のエラーのため、この--user-data-dir=オプションはそして全く違う二人最初の2つのポイントでは、ユーザーデータディレクトリが有効でなければなりません。

予防措置とトラブルシューティング

テスト環境:Live Ubuntu 18.04 LTS、Xorgセッション、google-chrome-stable71.0.3578.98-1。

私のコメントを借りる上記の回答:

  • これらの構成は、クリーンなシステムでテストすることをお勧めします。少なくとも、新しいChromeプロファイルとユーザーデータディレクトリは最大限に専用のユーザーです(テスト目的でのみ作成されます)。
  • xpropこのオプションが準拠していることを確認するために使用できます--class

    ## This example uses chromium instead of Google Chrome!
    ## With default settings:
    $ xprop WM_CLASS
    WM_CLASS(STRING) = "chromium", "Chromium"
    
    ## With --class=test_class
    $ xprop WM_CLASS
    WM_CLASS(STRING) = "chromium", "test_class"
    

おすすめ記事