Ninguna de estas respuestas funcionó para mí de manera completa bajo Mac OS X Yosemite. Aquí está mi solución, que te da varias instancias, un menú de lanzamiento en el dock para las instancias, y diferentes iconos para cada instancia. Cuando ejecutas el script, automáticamente pasará por todos tus perfiles, y luego te dirá qué hacer a continuación.
#!/bin/bash
# cdi.sh - Hacer que los perfiles de Chrome se comporten como múltiples navegadores en Mac OS X
# (Probado en Yoshmite). Hacer que los perfiles funcionen como aplicaciones separadas
# - especialmente útil si quieres cambiar fácilmente entre diferentes navegadores
# en diferentes escritorios virtuales / espacios de trabajo, o no quieres que las ventanas de trabajo
# se mezclen con las ventanas de casa en el menú "Ventana", o quieres
# poder ver fácilmente qué procesos están con un cierto perfil en
# el administrador de tareas de Chrome, o poder cerrar fácilmente un perfil con
# varias ventanas abiertas y poder retomar donde lo dejaste más tarde.
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 "Ten paciencia, esto involucra copiar mucha data..."
while read PROFILE; do
DIR="$(echo $PROFILE | awk -F\; '{print $1}')"
# Like: DIR='Profile 1'
echo "Trabajando en el perfil: $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')"
# 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"
## Esta sección está desactivada porque habilitarla hace que el inicio de sesión automático del perfil no funcione.
## Existe la posibilidad de que alguien que sepa más acerca de Chrome ayude en algún momento; ver:
## 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
# Cambiar el ID del paquete para que funcione la asignación de escritorio. No estoy seguro si esto sobrevivirá a las actualizaciones.
# CFBundleIdentifier debe contener solo caracteres alfanuméricos (A-Z,a-z,0-9), guion (-) y punto (.) .
# (Basado en experimentos parecería que también hay un límite de longitud.)
#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"
# Para verificar: 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 'Terminado la porción automatizada. Ahora deberías hacer manualmente:'
echo
echo '1. Agregar iconos (idénticos) de tu elección a cada par de Lanzadores de perfiles'
echo ' / Runtimes en la carpeta ~/Library/Application Support/Google/Chrome/'
echo ' cdi-chrome-multiple-profile-instances-in-dock-with-different-icons.d'
echo ' (busca en internet numerosas guías sobre cómo cambiar los íconos de las aplicaciones en Mac OS X)'
echo
echo '2. Desde el buscador, arrastra la carpeta "Chrome-Launchers" al área de pilas del dock. Haz clic derecho en la pila y selecciona "Lista" para ver fácilmente.'
echo ' También selecciona "Mostrar como carpeta" y dale a la carpeta un buen ícono.'
echo
echo '3. ASEGÚRATE de abrir Chrome solo a través de esta pila. NO fijes el ícono de Chrome en el área de aplicaciones del dock! NO ejecutes Chrome "normal"!'
echo
echo 'La única excepción al (3) es si necesitas agregar un nuevo perfil. En ese caso,'
echo 'cierra todas las instancias, luego abre Chrome "normal", agrega el perfil, cierra, y'
echo 'luego ejecuta este script nuevamente.'
echo
echo 'Nota: cuando lo lanzas por primera vez, obtendrás un cuadro de diálogo "Bienvenidos a Google Chrome".'
echo ' Esto es normal; no te preocupes. Te preguntará si quieres'
echo ' establecer Chrome como predeterminado; esto se aplica a esa instancia de Chrome.'
echo ' Choosy - http://www.choosyosx.com/ - funciona muy bien con esto!'
echo
Para los íconos, puedes usar cualquier PNG (o probablemente muchos otros formatos).
Los avatares de Chrome a los que probablemente ya estás acostumbrado se encuentran en "~/Library/Application Support/Google/Chrome/Avatars" - avatar_ninja.png, etc.
O haz los tuyos, o usa uno de los numerosos sitios de íconos - Me gusta Easyicon.
También esto parece ser útil - Cómo recuperar los avatares en Chrome para cambiar los perfiles de usuario más fácilmente - para hacer que las ventanas abiertas sean más fáciles de identificar rápidamente (no probado).
Una cosa que aún no está funcionando es la capacidad de asignar diferentes instancias de perfiles de usuario de Chrome a escritorios específicos. Esto se debe a que si se cambia el atributo utilizado para hacer esto, el navegador ya no puede iniciar sesión automáticamente en ese perfil cuando se inicia el navegador. He realizado una publicación en el foro y un informe de bug sobre este problema; también es un problema para los navegadores específicos de sitios, por lo que es posible que el proyecto chrome-ssb-osx haga que esto funcione en algún momento. No tengo los 10 puntos de reputación necesarios para incluir más de 2 enlaces en los posts aquí (¡ayuda! :-), así que tendrás que ver los enlaces a estas cosas en el script de arriba ("Esta sección desactivada").
2 votos
Solo quiero señalar que esta es una característica estándar de Chrome en Windows (al menos en la versión 64). Cuando creas un nuevo perfil en Chrome
Configuración->Usuarios
, Chrome pregunta "¿Crear un acceso directo de escritorio para este usuario?" y si haces clic en sí, crea un acceso directo que es el ícono de Chrome con el ícono del perfil de Chrome del usuario superpuesto en la esquina inferior derecha. Cuando la aplicación está en ejecución, cada perfil tiene su propio ícono en la barra de tareas. Solo menciono esto porque espero que eventualmente traigan esa característica a la versión de macOS.