48 votos

¿Hay una forma sencilla de tener iconos de dock separados para diferentes perfiles de Chrome?

Estoy usando Google Chrome versión 22 en OS X 10.8. Utilizo perfiles de usuario separados (creados utilizando la facilidad nativa de Chrome en Configuración->Usuarios) para mi navegación web "regular" y el desarrollo web que hago. Inicio mi perfil de desarrollo web desde la ventana de perfil de Chrome regular haciendo clic en el avatar en la esquina superior izquierda:

introducir descripción de la imagen aquí

En este momento, ambos perfiles comparten un único icono en el dock. Sin embargo, preferiría que cada perfil de Chrome tuviera su propio icono en el dock, con las ventanas gestionadas por separado, e idealmente que los iconos del dock se distingan de alguna manera. ¿Es esto fácilmente posible? Con 'fácil', me refiero a que cosas como reconstruir Chrome desde el origen no son una opción que consideraré.

Nota: Me gustaría usar la misma versión estable de Chrome para ambos perfiles. Estaría bien tener la misma versión instalada dos veces siempre y cuando se puedan mantener separadas y se distinga el icono del dock.

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.

18voto

Ilya Ryzhenkov Puntos 5731

Para tener dos Chrome ejecutándose al mismo tiempo, necesitas crear una segunda aplicación ejecutable de Google Chrome.

Puedes crear esa segunda aplicación ejecutando el siguiente script. Viene de este sitio, copio y pego para conveniencia de los lectores:

#!/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 para Mac con perfil adicional.
#

# Nombre de tu perfil:
EOF

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

cat >> "$F" <<\EOF
# Guarda el perfil aquí:
PROFILE_DIR="/Users/$USER/Library/Application Support/Google/Chrome/${PROFILE_NAME}"

# Encuentra el binario de Google Chrome:
CHROME_APP=$(mdfind 'kMDItemCFBundleIdentifier == "com.google.Chrome"' | head -1)
CHROME_BIN="$CHROME_APP/Contents/MacOS/Google Chrome"
if [[ ! -e "$CHROME_BIN" ]]; then
  echo "ERROR: No se puede encontrar Google Chrome. Saliendo."
  exit -1
fi

# ¡Vamos allá!
exec "$CHROME_BIN" --enable-udd-profiles --user-data-dir="$PROFILE_DIR"
EOF

sudo chmod +x "$F"

Guárdalo en un archivo (digamos create_second_chrome.sh en la carpeta del Escritorio), abre la terminal y ejecútalo pasando como parámetro la carpeta de perfil que deseas asociar a la segunda aplicación de Chrome. Se llamará Google Chrome profile_folder_name. Supongamos Google Chrome Development:

$ cd ~/Desktop
$ . create_second_chrome.sh Development

Ahora puedes iniciar la nueva versión de Chrome (Google Chrome Development) desde la carpeta ~/Applications. Puedes establecer un icono diferente haciendo clic derecho en la aplicación y seleccionando 'Obtener información'. Verás que esta nueva versión tiene su propio icono en el dock y se puede anclar allí si es necesario.

1 votos

Eso no parece funcionar. He creado un nuevo perfil para mí llamado Desarrollo en Configuración -> Usuarios. Esto creó el directorio ~/Library/Application Support/Google/Chrome/Profile 2. Sin embargo, al ejecutar open -a "Google Chrome" --args --profile-directory="Profile 2" sigue abriendo el perfil antiguo/original, como puedo ver en el avatar en la esquina superior derecha.

0 votos

@AndrewFerrier ¿Has intentado cerrar command + q Chrome y volver a abrirlo mediante el flujo de trabajo? Funciona conmigo.

2 votos

Funciona si haces eso, sí (es decir, si Chrome no se inicia en absoluto, abre el perfil deseado). Pero si un perfil ya está iniciado, ejecutar ese comando vuelve a abrir una ventana para ese perfil, independientemente de qué perfil se especifique. Eso no ayuda con la pregunta, ya que el objetivo es tener ambos abiertos simultáneamente.

6voto

jbyler Puntos 111

ACTUALIZACIÓN: ❗️ Ya no utilizo este método. Por un tiempo usé Epichrome que es mucho más fácil de usar y funciona mejor, y publiqué una nueva respuesta con esta información, pero Epichrome ya no se mantiene. También he probado WebCatalog pero por el momento no estoy contento con ninguna de las opciones que conozco.


Respuesta original con instrucciones manuales:

Probé el script de @Maverick y funcionó parcialmente (¡gracias!) pero tuve algunas dificultades. El problema principal es que la copia envuelta de Chrome, aunque es independiente, tiene su propio ícono, y funciona correctamente por sí sola, no puede abrir URL enviadas desde otras aplicaciones, por lo que no funciona con Choosy.

Esto es lo que funcionó para mí, para obtener un segundo Chrome que pueda abrir enlaces a través de Choosy, por ejemplo:

  1. Copia Library/Application Support/Google/Chrome a Library/Application Support/Google/ChromePersonal en tu directorio personal. Esto es opcional; quería transferir los perfiles de usuario de Chrome a la nueva instancia. Pero si estás bien empezando de nuevo puedes saltarte esto.
  2. Copia Google Chrome.app a otra ubicación. Yo usé /Aplicaciones/Google Chrome Personal.app.
  3. Copia mi script wrapper.sh (abajo) en el directorio Contents/MacOS de la aplicación.
  4. chmod +x wrapper.sh
  5. Modifica Contents/Info.plist en esta nueva aplicación para:
    • apuntar al script envolvente (establece el valor de CFBundleExecutable en wrapper.sh)
    • tener un CFBundleIdentifier único (simplemente añade "Personal" al valor existente)
    • tener un CFBundleName único (simplemente añade "Personal" al valor existente)
    • tener un CFBundleDisplayName único (simplemente añade "Personal" al valor existente)

Este es mi script wrapper.sh modificado. Ponlo en /Aplicaciones/Google\ Chrome\ Personal.app/Contents/MacOS/wrapper.sh y luego edita Info.plist como en el paso 4.

#!/bin/bash

# Script envolvente que inicia una instancia independiente de Google Chrome para Mac

# Para usar: copia Google Chrome.app a una nueva ubicación. Copia este script en
# el directorio Contents/MacOS de la aplicación copiada. Edita Info.plist de la
# aplicación copiada y cambia CFBundleExecutable a "wrapper.sh",
# y elige un CFBundleIdentifier único.

# Los datos de la instancia se guardarán aquí. Puedes copiar tus datos existentes
# a esta ubicación si deseas preservar tu(s) perfil(es) de usuario existente(s).
# También puedes cambiar esto si deseas almacenar los datos en otro lugar.
INSTANCE_DIR="/Users/$USER/Library/Application Support/Google/ChromePersonal"

# Encuentra el binario de Google Chrome:
CHOME_BIN="$(dirname "$0")/Google Chrome"

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

Un detalle: Creo que la función de autoactualización de Chrome romperá esto cada vez que Chrome se actualice, lo que significa que necesitas volver a hacer los pasos 3 y 4 después de cada actualización de Chrome.

0 votos

Siguiendo estas instrucciones obtengo una aplicación que no se lanzará.

0 votos

Lo siento @TomJNowell! Supongo que debo haber pasado por alto un paso. ¿Probablemente tengas que hacer chmod 755 en el script wrapper.sh? El mío es ejecutable. Si lo intentas y soluciona el problema para ti, ¡avísame para que pueda actualizar la respuesta?

0 votos

Chmod + x hizo el truco

3voto

jbyler Puntos 111

Por un tiempo, utilicé Epichrome para este propósito. Epichrome está diseñado para crear navegadores específicos del sitio, pero puedes configurar las reglas de filtrado y el icono como desees, por lo que es perfectamente capaz de crear simplemente un segundo Chrome con su propio perfil separado e icono de dock. Los navegadores creados por Epichrome funcionan con el mecanismo de actualización de Google, por lo que permanecerán actualizados con la última versión de Chrome.

Tiene una GUI simple, no se requiere codificación ni recompilación de Chrome. Fue una solución bastante sólida para este problema, pero ...

❗️ Epichrome ya no está mantenido. Ya no puedo recomendar este método. Hay una serie de otros productos en esta área, algunos de los cuales se enumeran en el README de Epichrome como posibles alternativas.

0 votos

¿Has comparado Epichrome con Detangle?

0 votos

Epichrome ha sido abandonado.

2voto

Purplefish32 Puntos 35

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").

0 votos

Dado que esto se está volviendo un poco complejo, toda la nueva información se encontrará en github.com/djbclark/chrome-apartheid

-2voto

DLRdave Puntos 398

¿Has probado la versión beta? No puedo probarlo en este momento, así que no estoy 100% seguro de si es un ícono diferente - y si no, también puedes probar la "versión canary" -

No debería estar muy alejado de la versión oficial en cuanto a renderizado, así que puedes confiar en lo que ves. Y puedes hacer que tu perfil de desarrollador sea el predeterminado.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X