Esto no es una respuesta a su pregunta por sí mismo pero dejé de usar Fluid y me pasé a los SSB de Chrome, tanto por la posibilidad de añadir plugins de Chrome (algo imprescindible para mí) como por la mejor experiencia (en mi opinión) de Chrome como navegador. Hasta ahora he creado SSBs para Google Play Music, Gmail, Google Calendar y MightyText. Todos funcionan de maravilla.
El script que estoy utilizando es el siguiente:
#!/bin/bash
# White Space Trimming: http://codesnippets.joyent.com/posts/show/1816
trim() {
local var=$1
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters
/bin/echo -n "$var"
}
### Get Input
/bin/echo "What should the Application be called?"
read inputline
name=`trim "$inputline"`
/bin/echo "What is the url (e.g. https://www.google.com/calendar/render)?"
read inputline
url=`trim "$inputline"`
/bin/echo "What is the full path to the icon (e.g. /Users/username/Desktop/icon.png)?"
read inputline
icon=`trim "$inputline"`
#### Find Chrome. If its not in the standard spot, try using spotlight.
chromePath="/Applications/Google Chrome.app"
if [ ! -d "$chromePath" ] ; then
chromePath=`mdfind "kMDItemCFBundleIdentifier == 'com.google.Chrome'" | head -n 1`
if [ -z "$chromePath" ] ; then
/bin/echo "ERROR. Where is chrome installed?!?!"
exit 1
fi
fi
chromeExecPath="$chromePath/Contents/MacOS/Google Chrome"
# Let's make the app whereever we call the script from...
appRoot=`/bin/pwd`
# various paths used when creating the app
resourcePath="$appRoot/$name.app/Contents/Resources"
execPath="$appRoot/$name.app/Contents/MacOS"
profilePath="$appRoot/$name.app/Contents/Profile"
plistPath="$appRoot/$name.app/Contents/Info.plist"
versionsPath="$appRoot/$name.app/Contents/Versions"
# make the directories
/bin/mkdir -p "$resourcePath" "$execPath" "$profilePath"
# convert the icon and copy into Resources
if [ -f "$icon" ] ; then
if [ ${icon: -5} == ".icns" ] ; then
/bin/cp "$icon" "$resourcePath/icon.icns"
else
sips -s format tiff "$icon" --out "$resourcePath/icon.tiff" --resampleWidth 128 >& /dev/null
tiff2icns -noLarge "$resourcePath/icon.tiff" >& /dev/null
fi
fi
# Save a symlink to the location of the Chrome executable to be copied when the SSB is started.
/bin/ln -s "$chromeExecPath" "$execPath/Chrome"
### Create the wrapper executable
/bin/cat >"$execPath/$name" <<EOF
#!/bin/sh
ABSPATH=\$(cd "\$(dirname "\$0")"; pwd)
/bin/cp "\$ABSPATH/Chrome" "\$ABSPATH/$name Chrome"
exec "\$ABSPATH/$name Chrome" --app="$url" --user-data-dir="\$ABSPATH/../Profile" "\$@"
EOF
/bin/chmod +x "$execPath/$name"
### create the Info.plist
/bin/cat > "$plistPath" <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
<plist version=”1.0″>
<dict>
<key>CFBundleExecutable</key>
<string>$name</string>
<key>CFBundleName</key>
<string>$name</string>
<key>CFBundleIconFile</key>
<string>icon.icns</string>
<key>NSHighResolutionCapable</key>
<string>True</string>
</dict>
</plist>
EOF
### link the Versions directory
/bin/ln -s "$chromePath/Contents/Versions" "$versionsPath"
### create a default (en) localization to name the app
/bin/mkdir -p "$resourcePath/en.lproj"
/bin/cat > "$resourcePath/en.lproj/InfoPlist.strings" <<EOF
CFBundleDisplayName = "$name";
CFBundleName = "$name";
EOF
### tell the user where the app is located so that they can move it to
### /Applications if they wish
/bin/cat <<EOF
Finished! The app has been installed in
$appRoot/$name.app
EOF
Lo pego aquí porque no recuerdo dónde lo encontré, pero es uno de los únicos "Chrome-to-SSB" scripts que crea un conjunto único de preferencias para la aplicación que crea.
NOTA : Todavía tienes que personalizar el entorno de las Preferencias para no tener problemas con el Llavero de Mac con múltiples navegadores que se identifican en el sistema como "Google Chrome" y la aplicación de Acceso al Llavero entra en un bucle infinito solicitando derechos de autenticación. Confía en mí y lee la advertencia que aparece al final.
Así que:
- Descargar el archivo script
- Escóndelo en un lugar seguro. Te recomiendo que lo sueltes en tu carpeta de Inicio, ya que es donde se iniciará el Terminal.
- Nómbralo como quieras (chromeSSB.sh es memorable) o crear un alias en su .bashrc o .bash_profile.
- Invoca el script escribiendo su nombre en el terminal, así, usando el nombre de ejemplo anterior:
y pulsa 'Enter'. El script te guiará entonces por la creación de tu BLU, preguntando, en orden
- ¿Cómo debe llamarse la aplicación?
- Cuál es la url (por ejemplo https://www.google.com/calendar/render )?
- ¿Cuál es la ruta completa del icono (por ejemplo, /Usuarios/nombredeusuario/Escritorio/icon.png)?
Y eso es todo. Asegúrese de descargar y apuntar a un hermoso png de alta resolución de su icono de la aplicación deseada, si eso le importa.
Ahora, la advertencia mencionada anteriormente.
Debido a que estás creando una instancia separada de Chrome, y debido a que Chrome quiere ayudarte de todas las maneras posibles sincronizando tu vida entre todos los navegadores Chrome que utilizas, querrás tomar un par de pasos cuando inicies por primera vez tu nuevo SSB basado en Chrome. Al iniciar el sistema, aparecerá el siguiente mensaje:
1.
Vas a querer un -marque esa casilla, para que su copia "normal" de Chrome sea su copia "por defecto".
Entonces lo verás:
2.
Introduce los datos de tu cuenta de Google y "Accede".
Usted debe verá la siguiente pantalla, en la que se le preguntará qué desea sincronizar entre sus navegadores (si no ve esta pantalla inmediatamente, véase más abajo). Elija "Elegir qué sincronizar" en el menú emergente
Entonces DESMARCAR TODAS LAS CASILLAS DE VERIFICACIÓN
para que no se sincronice nada entre los navegadores. Esto te da acceso a la información de tu cuenta de Google (si la necesitas) pero por lo demás deja al navegador como una aplicación completamente autónoma, que es exactamente lo que quieres. Si dejas marcada alguna de estas casillas de "sincronización", lo haces por tu cuenta y riesgo, porque cruzar los flujos es malo. Considera esto como un importante consejo de seguridad ;-)
Esto parece demasiado complicado, pero léelo una vez y te irá bien.
- Crea la aplicación.
- Asegúrate de que la nueva aplicación (navegador) no se sincroniza con otras instancias de Chrome.
- Disfruta.
Si no has visto la pantalla de preferencias "Elegir qué sincronizar" en cuanto has entrado en Chrome, no te preocupes. He visto que eso ocurre algunas veces. Procede desde aquí:
Por lo tanto, has iniciado la sesión del navegador pero NO has iniciado la sesión de Chrome (o algo así). ¿Qué significa esto? Tus marcadores, preferencias, plugins, etc., están no automáticamente para ti en este momento, así que hay un último paso para iniciar la sesión. Elige "Preferencias" en el menú principal de tu aplicación (sea cual sea su nombre)
y "Iniciar sesión en Chrome"
Vuelva a introducir su nombre de usuario y continúe con el paso 2, más arriba.