さまざまなChromeプロフィールに個別のドックアイコンを使用する簡単な方法はありますか?


27

OS X 10.8でGoogle Chromeバージョン22 を使用しています。私Settings->Usersは、「通常の」Webブラウジングと私が行うWeb開発のために、別個のユーザープロファイル(のネイティブChrome機能を使用して作成された)を使用します。左上の角にあるアバターをクリックして、通常のChromeプロファイルウィンドウからWeb開発プロファイルを起動します。

ここに画像の説明を入力してください

現在、これらのプロファイルは両方とも単一のドックアイコンを共有しています。ただし、Chromeプロファイルごとに独自のドックアイコンを使用し、ウィンドウを個別に管理することをお勧めします。ドックアイコンを何らかの方法で区別するのが理想的です。これは簡単に可能ですか?「簡単」ということは、Chromeをソースから再構築するようなことは、私が検討するオプションではないことを意味します。

:両方のプロファイルに同じ安定したバージョンのChromeを使用したいと思います。別々に保ち、ドックアイコンを区別できる限り、同じバージョンを2回インストールしてもかまいません。


これはWindows上のChromeの標準機能です(少なくともv64では)。Chromeで新しいプロファイルを作成すると、Settings->UsersChromeは「このユーザーのデスクトップショートカットを作成します」と尋ね、[はい]をクリックすると、ユーザーのChromeプロフィールアイコンが右下隅にオーバーレイされたChromeアイコンのショートカットを作成します。アプリが実行されているとき、各プロファイルにはタスクバーに独自のアイコンがあります。最終的にその機能をmacOSバージョンにもたらすことを望んでいるので、私はこれを上げるだけです。
gman

回答:


7

2つのChromeを同時に実行するには、2つ目の実行可能なGoogle Chromeアプリを作成する必要があります。

次のスクリプトを実行して、2番目のアプリケーションを作成できます。それはこのサイトから来ました、私は読者の便宜のためにコピーして貼り付けます:

#!/bin/bash

PROFILE_NAME=$1
mkdir -p "/Applications/Google Chrome $1.app/Contents/MacOS"

F="/Applications/Google Chrome $1.app/Contents/MacOS/Google Chrome $1"
cat > "$F" <<\EOF
#!/bin/bash

#
# Google Chrome for Mac with additional profile.
#

# Name your profile:
EOF

echo "PROFILE_NAME='$PROFILE_NAME'\n" >> "$F"

cat >> "$F" <<\EOF
# Store the profile here:
PROFILE_DIR="/Users/$USER/Library/Application Support/Google/Chrome/${PROFILE_NAME}"

# Find the Google Chrome binary:
CHROME_APP=$(mdfind 'kMDItemCFBundleIdentifier == "com.google.Chrome"' | head -1)
CHROME_BIN="$CHROME_APP/Contents/MacOS/Google Chrome"
if [[ ! -e "$CHROME_BIN" ]]; then
  echo "ERROR: Can not find Google Chrome.  Exiting."
  exit -1
fi

# Start me up!
exec "$CHROME_BIN" --enable-udd-profiles --user-data-dir="$PROFILE_DIR"
EOF

sudo chmod +x "$F"

ファイル(create_second_chrome.shデスクトップフォルダーなど)に保存し、シェルを開いて、2番目のChromeアプリに関連付けるプロファイルフォルダーをパラメーターとして渡して実行します。と呼ばれGoogle Chrome profile_folder_nameます。仮定しましょうGoogle Chrome Development

$ cd ~/Desktop
$ . create_second_chrome.sh Development

これでGoogle Chrome Development~/ApplicationsディレクトリからChromeの新しいバージョン()を起動できます。アプリを右クリックして[情報を見る]を選択すると、別のアイコンを設定できます。この新しいバージョンにはドックに独自のアイコンがあり、必要に応じてドッキングできることがわかります。


1
それはうまくいかないようです。私はと呼ばれる自分のために新しいプロファイルを作成Development中にSettings -> Users。これにより、ディレクトリが作成されました~/Library/Application Support/Google/Chrome/Profile 2。ただし、open -a "Google Chrome" --args --profile-directory="Profile 2"右上隅のアバターからわかるように、実行すると古い/元のプロファイルが開きます。
アンドリューフェリエ

@AndrewFerrier command + qワークフローを使用してChromeを閉じて開き直そうとしましたか?それは私と一緒に動作します。
Maverik

1
そうすれば動作します、はい(つまり、Chromeがまったく起動していない場合は、目的のプロファイルが開きます)。ただし、1つのプロファイルが既に開始されている場合、そのコマンドを実行すると、指定されているプロファイルに関係なく、そのプロファイルのウィンドウが再度開きます。目的は両方を同時に開くことであるため、これは質問の助けにはなりません。
アンドリューフェリエ

@AndrewFerrier編集してくれてありがとう、今はもっと良い答えだ!それがあなたを助けたことを願っています!ルカ
Maverik

1
私も今ではない!私は間違いを犯したようです、今は大丈夫のようです。私は経験の問題に継続かどうかを確認、それは少しのために実行したままでしょう...
アンドリュー・フェリエ

4

更新:このメソッドは使用しなくなりました。その代わりに、私は今でははるかに使いやすく、より良く機能するエピクロームを使用しています。この情報を含む新しい回答を投稿しましたが、代わりに使用することをお勧めします。


マニュアルの指示を含む元の回答:

@Maverickからスクリプトを試してみましたが、部分的には機能しました(ありがとう!)が、いくつかの困難に遭遇しました。主な問題は、Chromeのラップされたコピーは、独立しているが、独自のアイコンを持ち、独自に正しく動作し、他のアプリケーションから送信されたURLを開けないため、Choosyで動作しないことです。

次に、Choosyを介してリンクを開くことができる2番目のChromeを取得するために、私に合った方法を示します。

  1. ホームディレクトリにコピーLibrary/Application Support/Google/ChromeLibrary/Application Support/Google/ChromePersonalます。これはオプションです。Chromeユーザープロファイルを介して新しいインスタンスに転送したかった。ただし、最初からやり直しても問題ない場合は、これをスキップできます。
  2. Google Chrome.app別の場所にコピーします。使用しました/Applications/Google Chrome Personal.app
  3. wrapper.shスクリプト(下)をアプリのContents/MacOSディレクトリにコピーします。
  4. chmod +x wrapper.sh
  5. Contents/Info.plistこの新しいアプリで以下を変更します。
    • ラッパースクリプトを指す(CFBundleExecutable値をに設定wrapper.sh
    • ユニークなものCFBundleIdentifier(既存の値に「個人」を追加するだけ)
    • ユニークなものCFBundleName(既存の値に「個人」を追加するだけ)
    • ユニークなものCFBundleDisplayName(既存の値に「個人」を追加するだけ)

変更したwrapper.shスクリプトを次に示します。でそれを入れ/Applications/Google\ Chrome\ Personal.app/Contents/MacOS/wrapper.shた後、ステップ4のようにInfo.plistファイルを編集します。

#!/bin/bash

# Wrapper script that starts independent instance of Google Chrome for Mac

# To use: copy Google Chrome.app to a new location.  Copy this script into
# the Contents/MacOS directory of the copied app.  Edit the copied app's
# Contents/Info.plist and change CFBundleExecutable to "wrapper.sh",
# and pick a unique CFBundleIdentifier.

# Instance data will be stored here.  You can copy your existing data 
# to this location if you want to preserve your existing user profile(s).
# You can also change this if you want to store the data somewhere else.
INSTANCE_DIR="/Users/$USER/Library/Application Support/Google/ChromePersonal"

# Find the Google Chrome binary:
CHOME_BIN="$(dirname "$0")/Google Chrome"

# Start Chrome
exec "$CHOME_BIN" --user-data-dir="$INSTANCE_DIR"

警告:Chromeの自動更新機能は、Chromeが更新されるたびにこれを壊すと思われるため、Chromeを更新するたびに手順3と4をやり直す必要があります。


これらの指示に従って、起動しないアプリを取得します
トムJノウェル

すみません@TomJNowell!私は一歩を逃したに違いないと思う。おそらく、wrapper.shスクリプトをchmod 755する必要がありますか?私は実行可能です。あなたがそれを試して、それがあなたのために問題を解決するなら、私が答えを更新できるように私に知らせてください?
jbyler

chmod + xはトリックを行いました
トムJノウェル

KSProductIDキーを変更することで、自動更新を防ぐことができますInfo.plist。Aboutページにアクセスすると、「KSOmahaServerアプリ 'com.google.ChromePersonal'情報ノードステータス 'error-unknownApplication' ....」が表示されます。手動で更新しようとしたときにエラーが発生しました。
webXL

フォローアップ:更新は変更せずに無効になっているようですKSProductID。利用可能なアップデートがあると表示された後、[再起動]をクリックすると、同じバージョンに再起動します。すべてのユーザーの自動更新を有効にしていないので、おそらくそれが理由であるか、実行可能ファイルの名前を変更しました。
webXL

1

Mac OS X Yosemiteの下では、これらの答えはどれも包括的な方法で私には機能しませんでした。複数のインスタンス、インスタンスのドック起動メニュー、および各インスタンスの異なるアイコンを提供する私のソリューションを次に示します。スクリプトを実行すると、すべてのプロファイルが自動的に調べられ、次に何をすべきかがわかります。

#!/bin/bash

# cdi.sh - Make chrome profiles behave like multiple browsers on Mac OS X
#          (Tested on Yoshmite). Make profiles work like seperate applications
#          - esp. useful if you want to easily switch between different browsers
#          in different virtual desktops / workspaces, or don't want work
#          windows mixed in with home windows in the "Window" menu, or want to
#          be able to easily see what processes are with a certain profile in
#          chrome task manager, or be able to eaisly quit one profile with
#          multiple windows open and start where you left of later.

set -e

cd /Users/$USER/Library/Application\ Support/Google/Chrome

CDI="cdi-chrome-multiple-profile-instances-in-dock-with-different-icons.d"
APPLESCRIPTS="$CDI/Applescript-Sources"
LAUNCHERS="$CDI/Chrome-Launchers"
RUNTIMES="$CDI/Chrome-Runtimes"
test -d $CDI || mkdir $CDI
test -d $APPLESCRIPTS || mkdir $APPLESCRIPTS
test -d $LAUNCHERS || mkdir $LAUNCHERS
test -d $RUNTIMES || mkdir $RUNTIMES

grep '"username"' Profile*/Preferences Default/Preferences | grep -v '               ' | awk -F : '{print $1";"$3}' | sed 's:/Preferences::g' | sed 's:\@:-at-:g' | sed 's/;\ /;/g' > $CDI/profiles.txt
# Like: Profile 1;"webmaster-at-example.org"

echo "Be patient, this involves copying a lot of data..."

while read PROFILE; do

DIR="$(echo $PROFILE | awk -F\; '{print $1}')"
# Like: DIR='Profile 1'
echo "Working on profile: $DIR"

LINK="$(echo $PROFILE | awk -F\; '{print $2}' | sed 's/\ /\-/g' | sed 's/"//g' | sed 's/^/cdi-profile-/g')"
# Like: cdi-profile-webmaster-at-example.org

APP="$(echo $LINK | sed 's/^cdi-profile-//g' | sed 's/$/-DO-NOT-RUN-DIRECTLY-JUST-USE-FOR-CHANGING-ICON-cdi\.app/g')"
# Like: webmaster-at-example.org-DO-NOT-RUN-DIRECTLY-JUST-USE-FOR-CHANGING-ICON-cdi.app

SHIM="$(echo $LINK | sed 's/^cdi-profile-//g' | sed 's/$/\.app/g')"
# Like: webmaster-at-example.org.app

TXT="$APPLESCRIPTS/$(echo $LINK | sed 's:^cdi-profile-:chrome-:g' | sed 's/$/\.txt/g')"
# Like:
# cdi-chrome-multiple-profile-instances-in-dock-with-different-icons.d
# /Applescript-Sources/chrome-webmaster-at-example.org.txt

test -L "$LINK" || ln -s "$DIR" "$LINK"
cd "$LINK"
test -L Default || ln -s . Default
cd /Users/$USER/Library/Application\ Support/Google/Chrome
test -d "$RUNTIMES/$APP" || cp -R /Applications/Google\ Chrome.app "$RUNTIMES/$APP"

## This section disabled because enabling it makes automatic profile login not work.
## There is a chance someone who knows more about chrome will help at some point; see:
## https://code.google.com/p/chromium/issues/detail?id=460787
## https://groups.google.com/a/chromium.org/forum/#!topic/chromium-discuss/0HEeMuh8WqA
## https://github.com/lhl/chrome-ssb-osx
# Change Bundle ID so desktop assignation works. Not sure if this will survive updates.
# CFBundleIdentifier must contain only alphanumeric (A-Z,a-z,0-9), hyphen (-), and period (.) characters.
# (Based on fiddling around there also seems to be a length limit.)
#UUID="$(echo $APP | md5sum | awk '{print $1}' | tr [0-9] [A-Z] | cut -c 1-4,29-32)"
#plutil -replace CFBundleIdentifier -string "cdi.$UUID" -- "$RUNTIMES/$APP/Contents/Info.plist"
#plutil -replace CFBundleName -string "$UUID" -- "$RUNTIMES/$APP/Contents/Info.plist"
#plutil -replace CFBundleDisplayName -string "$UUID" -- "$RUNTIMES/$APP/Contents/Info.plist"
#plutil -replace KSProductID -string "cdi.$UUID" -- "$RUNTIMES/$APP/Contents/Info.plist"
# To check: defaults read ~/Library/Preferences/com.apple.spaces.plist app-bindings

echo "on run" > $TXT
echo -n "do shell script " >> $TXT
echo -n '"' >> $TXT
echo -n "/Users/$USER/Library/Application\\\\ Support/Google/Chrome/$RUNTIMES/$APP/Contents/MacOS/Google\\\\ Chrome --user-data-dir=/Users/$USER/Library/Application\\\\ Support/Google/Chrome/$LINK" >> $TXT
echo ' > /dev/null 2>&1 &"' >> $TXT
echo "quit" >> $TXT
echo "end run" >> $TXT
test -d "$LAUNCHERS/$SHIM" || osacompile -o "$LAUNCHERS/$SHIM" $TXT

done < $CDI/profiles.txt

echo
echo 'Done with automated portion. Now you should manually:'
echo
echo '1. Add (identical) icons of your choice to each pair of profile Launchers'
echo '   / Runtimes in the folder ~/Library/Application Support/Google/Chrome/'
echo '   cdi-chrome-multiple-profile-instances-in-dock-with-different-icons.d'
echo '   (google for numerous guides on how to change mac os x app icons)'
echo
echo '2. From the finder, drag the "Chrome-Launchers" folder to the stacks area'
echo '   of the dock. Right click on the stack and select "List" for easy viewing.'
echo '   Also select "Display as Folder" and give the folder a nice icon.'
echo
echo '3. BE SURE to only open Chrome via this stack. DO NOT pin the app-area'
echo '   Chrome icon(s) to the app area of the dock! DO NOT run "normal" Chrome!'
echo
echo 'The only exception to (3) is if you need to add a new profile. In that case,'
echo 'close all instances, then open the "normal" Chrome, add profile, close, and'
echo 'then run this script again.'
echo
echo 'Note: when you launch first time you will get "Welcome to Google Chrome"'
echo '      dialog box. This is normal; do not worry. It will ask if you want'
echo '      to set Chrome as default; this applies to that instance of chrome.'
echo '      Choosy - http://www.choosyosx.com/ - works great with this!'
echo

アイコンには、任意のPNG(またはおそらく他の多くの形式)を使用できます。

既に使用されている可能性のあるクロムアバターは、「〜/ライブラリ/ Application Support / Google / Chrome / Avatars」-avatar_ninja.pngなどにあります。

または、独自に作成するか、多数のアイコンサイトの1つを使用します-Easyiconが好きです

また、これはおそらく便利です-Chromeでアバターを取り戻してユーザープロファイルをより簡単に切り替える方法 -開いているウィンドウをすばやく識別しやすくする(未テスト)ために。

まだ機能していないことの1つは、異なるユーザープロファイルchromeインスタンスを特定のデスクトップに割り当てる機能です。これは、これを行うために使用される属性が変更された場合、ブラウザーの起動時にブラウザーがそのプロファイルに自動的にログインできなくなるためです。この問題に関するフォーラムの投稿とバグ報告を作成しました。また、サイト固有のブラウザの問題でもあるため、chrome-ssb-osxプロジェクトはこれを何らかの時点で機能させることができます。ここの投稿に2つ以上のリンクを含めるために必要な10の評価ポイントがないので(ヘルプ!:-)、上記のスクリプト(「このセクションは無効」セクション)でこれらのリンクを確認する必要があります)。


これは少し複雑になっているため、新しいものはすべてgithub.com/djbclark/chrome-apartheidに
ダニエルJクラーク

1

現在、はこの目的のためにEpichromeを使用しています。Epichromeはサイト固有のブラウザを作成するために設計されていますが、フィルタリングルールとアイコンを必要に応じて設定できるため、独自の個別のプロファイルとドッ​​クアイコンを持つ2番目のChromeを完全に作成できます。Epichromeで作成されたブラウザはGoogleの更新メカニズムと連携するため、すべて最新バージョンのChromeで最新の状態に維持されます。

シンプルなGUIがあり、Chromeのコーディングや再コンパイルは不要です。この問題に対する非常に堅実な解決策だと思います。


-2

ベータビルドを試しましたか?今はテストできないので、それが別のアイコンであることを100%確信することはできません-そうでない場合は、「カナリアビルド」も試してください-

あなたが見るものを信頼できるように、レンダリングに関しては公式ビルドからそれほど遠くないはずです。また、開発者プロファイルをデフォルトのプロファイルにすることができます。


あなたが何を提案しているのか明確ではありません。2つの異なるバージョンのChromeを同時に実行することを提案していますか?(安定版およびベータ版)。私は本当に全面的に安定版を使用したいと思います。提案をありがとう。
アンドリューフェリエ

FWIW、私はBetaチャンネルからChromeをダウンロードし、それが...どちらかずっとそこに私を助けていないように、残念ながら、同じアイコンを持っている
アンドリュー・フェリエの

参考までに、Chrome Canaryには実際には別のアイコンがありますが、安定性は劣ります(ただし、一般的に機能します)。
スタッドギーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.