Chrome 프로필마다 별도의 독 아이콘을 사용하는 간단한 방법이 있습니까?


27

OS X 10.8에서 Chrome 버전 22를 사용하고 있습니다 . Settings->Users"일반"웹 탐색 및 내가 수행하는 웹 개발에 별도의 사용자 프로필 (에서 기본 Chrome 기능을 사용하여 생성)을 사용합니다 . 왼쪽 상단 모서리에있는 아바타를 클릭하여 일반 Chrome 프로필 창에서 웹 개발 프로필을 시작합니다.

여기에 이미지 설명을 입력하십시오

현재 두 프로파일 모두 단일 도크 아이콘을 공유합니다. 그러나 각 Chrome 프로필마다 창을 별도로 관리하고 독 아이콘을 어떤 식 으로든 구별하는 데 독창적 인 독 아이콘이있는 것이 좋습니다. 이것은 쉽게 가능합니까? '쉬운'이란 소스에서 Chrome을 다시 만드는 것과 같은 것이 내가 고려할 수있는 옵션이 아니라는 것을 의미합니다.

참고 : 두 프로필 모두에 안정적이고 동일한 버전의 Chrome을 사용하고 싶습니다. 독을 유지하고 독 아이콘을 구별 할 수있는 한 동일한 버전을 두 번 설치하는 것이 좋습니다.


나는 이것이 Windows에서 Chrome의 표준 기능 (적어도 v64에서는)임을 지적하고 싶습니다. Chrome에서 새 프로필을 만들 때 Chrome에서 Settings->Users'이 사용자에 대한 바탕 화면 바로 가기 만들기'를 묻는 메시지가 표시되면 예를 클릭하면 오른쪽 하단에 사용자의 Chrome 프로필 아이콘이 겹쳐진 Chrome 아이콘 인 바로 가기가 생성됩니다. 앱이 실행 중이면 각 프로필에 작업 표시 줄에 고유 한 아이콘이 있습니다. 나는 그들이 결국 그 기능을 macOS 버전으로 가져 오기를 바라고 있기 때문에 이것을 가져옵니다.
gman

답변:


7

두 개의 Chrome을 동시에 실행하려면 실행 가능한 두 번째 Chrome 앱을 만들어야합니다.

다음 스크립트를 실행하여 두 번째 응용 프로그램을 만들 수 있습니다. 이 사이트 에서 제공되며 독자의 편의를 위해 복사하여 붙여 넣습니다.

#!/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데스크톱 폴더에 저장하고 셸을 연 다음 두 번째 Chrome 앱에 연결하려는 프로필 폴더를 매개 변수로 전달하여 실행합니다. 이 호출 Google Chrome profile_folder_name됩니다. 가정하자 Google Chrome Development:

$ cd ~/Desktop
$ . create_second_chrome.sh Development

이제 디렉토리 Google Chrome Development에서 새 버전의 Chrome ( )을 시작할 수 있습니다 ~/Applications. 앱을 마우스 오른쪽 버튼으로 클릭하고 '정보 입수'를 선택하여 다른 아이콘을 설정할 수 있습니다. 이 새 버전에는 독에 자체 아이콘이 있으며 필요한 경우 도킹 할 수 있습니다.


1
작동하지 않는 것 같습니다. Development에서 전화 한 새 프로필을 만들었습니다 Settings -> Users. 이것은 디렉토리를 만들었습니다 ~/Library/Application Support/Google/Chrome/Profile 2. 그러나 open -a "Google Chrome" --args --profile-directory="Profile 2"오른쪽 상단의 아바타에서 알 수 있듯이 실행하면 여전히 이전 / 원래 프로필이 열립니다.
Andrew Ferrier

@AndrewFerrier command + q워크 플로를 통해 Chrome 을 닫고 다시 채우려 고 했습니까 ? 그것은 나와 함께 작동합니다.
Maverik

1
예를 들어 Chrome이 전혀 시작되지 않으면 원하는 프로필을 엽니 다. 그러나 하나의 프로파일이 이미 시작된 경우, 지정된 명령에 관계없이 해당 명령을 실행하면 해당 프로파일에 대한 창이 다시 열립니다. 목표는 둘 다 동시에 열어야하기 때문에 질문에 도움이되지 않습니다.
Andrew Ferrier

@AndrewFerrier 편집 해 주셔서 감사합니다. 이제 정답입니다! 그것이 당신을 도왔기를 바랍니다! Luca
Maverik

1
나도 지금도 아니야! 내가 실수 한 것 같아, 이제 괜찮아 보인다. 잠시 동안 계속 실행하겠습니다. 문제가 계속 발생하는지 확인하십시오.
Andrew Ferrier

4

업데이트 : 더 이상이 방법을 사용하지 않습니다. 대신 이제는 훨씬 사용하기 쉽고 더 잘 작동 하는 Epichrome 을 사용합니다. 이 정보 로 새로운 답변 을 게시했으며 사람들이 대신 사용하도록 제안합니다.


수동 지침이 포함 된 원본 답변 :

@Maverick에서 스크립트를 사용해 보았고 부분적으로 효과가 있었지만 (감사합니다!)하지만 어려움에 부딪 쳤습니다. 가장 큰 문제는 랩핑 된 Chrome 사본이 독립적이지만 자체 아이콘이 있으며 자체적으로 올바르게 작동하며 다른 응용 프로그램에서 보낸 URL을 열 수 없으므로 Choosy와 작동하지 않는다는 것입니다.

Choosy를 통해 링크를 열 수있는 두 번째 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. 정보 페이지로 이동하면 "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 (또는 다른 많은 형식)를 사용할 수 있습니다.

이미 사용했던 크롬 아바타는 "~ / Library / Application Support / Google / Chrome / Avatars"-avatar_ninja.png 등에 있습니다.

또는 직접 만들거나 수많은 아이콘 사이트 중 하나를 사용하십시오-나는 Easyicon을 좋아 합니다 .

또한 Chrome에서 아바타를 다시 가져와 사용자 프로필을 더 쉽게 전환하는 방법 -열려있는 창을보다 쉽게 ​​식별 (미확인) 하는 데 유용합니다 .

아직 작동하지 않는 한 가지는 다른 사용자 프로필 크롬 인스턴스를 특정 데스크톱에 할당하는 기능입니다. 이를 수행하는 데 사용 된 속성이 변경되면 브라우저는 더 이상 브라우저를 시작할 때 해당 프로파일에 자동으로 로그인 할 수 없기 때문입니다. 이 문제에 대한 포럼 게시물과 버그 보고서를 작성했습니다. 사이트 별 브라우저에서도 문제가되므로 chrome-ssb-osx 프로젝트에서이 작업을 수행 할 수 있습니다. 여기에 게시물에 2 개 이상의 링크를 포함하는 데 필요한 10 개의 평판이 없습니다 (도움말! :-). 위 스크립트에서 이러한 항목에 대한 링크를 봐야합니다 ( "이 섹션 비활성화 됨"섹션 ).


이것이 조금 복잡해지기 때문에 새로운 것들이 모두 github.com/djbclark/chrome-apartheid
Daniel J Clark

1

이제이 목적으로 에피 크롬 을 사용 합니다. Epichrome은 사이트 별 브라우저를 만들도록 설계되었지만 원하는 경우 필터링 규칙과 아이콘을 설정할 수 있으므로 별도의 프로필과 독 아이콘으로 두 번째 Chrome을 완벽하게 만들 수 있습니다. Epichrome에서 만든 브라우저는 Google의 업데이트 메커니즘과 함께 작동하므로 최신 버전의 Chrome을 최신 상태로 유지합니다.

Chrome을 코딩하거나 재 컴파일 할 필요가없는 간단한 GUI가 있습니다. 이 문제에 대한 확실한 해결책이라고 생각합니다.


-2

베타 빌드 를 사용해 보셨습니까 ? 지금 테스트 할 수 없으므로 다른 아이콘인지 100 % 확신 할 수 없습니다. 그렇지 않은 경우 "카나리아 빌드"를 시도해보십시오.

렌더링 측면에서 공식 빌드에서 멀지 않아야하므로 보는 것을 신뢰할 수 있습니다. 그리고 개발자 프로필을 기본 프로필로 만들 수 있습니다.


나는 당신이 무엇을 제안하는지 명확하지 않습니다. 두 가지 버전의 Chrome을 동시에 실행하라고 제안하십니까? (안정적이고 베타). 나는 실제로 전반적으로 안정적인 것을 사용하고 싶습니다. 그래도 제안 해 주셔서 감사합니다.
Andrew Ferrier

FWIW, 베타 채널에서 Chrome을 다운로드했는데 같은 아이콘이있어서 안타깝게도 그다지 도움이되지 않습니다 ...
Andrew Ferrier

참고로 Chrome Canary는 실제로 다른 아이콘이 있지만 덜 안정적입니다 (일반적으로 작동 함).
studgeek
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.