Requisitos
Por un lado se necesita habilitada la sincronización de Firefox con todos las opciones habilitadas excepto las pestañas. A mi no me gusta sincronizar con el servidor oficial de Mozilla así que he habilitado mi propio servidor local de sincronización de Firefox.
Por otro lado hay que verificar que en el directorio:
~/.mozilla/firefox
sólo se tenga un directorio con la forma:
xxxxxxxx.default
Si no fuera así podemos renombrar el directorio y actualizar la ruta en el archivo profiles.ini.
Script firefoxkde
Creamos el fichero:
/usr/local/bin/firefoxkde
y le damos permisos de ejecució con:
chmod +x /usr/local/bin/firefoxkde
Lo editaremos para que su contenido sea:
#!/bin/bash # # Compatability for Firefox and kde 4.x's activities. # ACTIVITY=$(qdbus org.kde.kactivitymanagerd /ActivityManager CurrentActivity) FF_FOLDER=$"$HOME/.mozilla/firefox" DEF_PROF=$"$FF_FOLDER/????????.default" NEW_PROF=$"$FF_FOLDER/????????.$ACTIVITY" if [ -d $FF_FOLDER/????????.$ACTIVITY ]; then firefox -no-remote -P $ACTIVITY else firefox -no-remote -createprofile $ACTIVITY cp -a $DEF_PROF/* $NEW_PROF/ cd $NEW_PROF rm sessionstore.* cd ~ firefox -no-remote -P $ACTIVITY & fi exit
Día a día
Como KDE guarda las sesiones vamos primero a salir del firefox actual con Archivo. Salir. para que kde no guarde la sesión del kde actual.
Si necesario también mataremos el proceso si sigue en marcha.
Deshabilitar arranque
En mi caso necesito deshabilitar el arranque del Firefox por defecto sí o sí. Para eso nos vamos a:
- Preferencias del sistema
- Administración del sistema
- Arranque y Apagado
- Gestor de sesiones
- Aplicaciones a excluir de las sesiones
en mi caso tuve que añadir:
firefox-bin,/usr/bin/iceweasel,/usr/lib/iceweasel/firefox-bin,iceweasel
aunque es posible que con /usr/bin/iceweasel ya valga. En sistemas no Debian hay que substituir iceweasel por Firefox.
Finalmente pulsamos en el botón Aplicar.
Icono lanzador de Firefox
Yo lanzo Firefox desde un panel que tengo en la parte inferior de la pantalla. Hago click en él con el botón derecho, propiedades.
En la primera pestaña puedo ver su localización. En mi caso en:
/home/adrian/.local/share/applications
y que su nombre es:
iceweasel-2
.
No obstante el fichero no existe en la localización vista. Editamos el lanzador y le añadimos cualquier cambio y guardamos.
Ahora ya podemos editar el fichero:
/home/adrian/.local/share/applications/iceweasel-2.desktop
.
Los cambios que tenemos que hacer son:
Exec=iceweasel %u
para ser:
Exec=firefoxkde %u
Script para borrar profiles antiguos
Creamos el fichero:
/usr/local/bin/firefox-clean-old-activies-profiles
y le damos permisos de ejecució con:
chmod +x /usr/local/bin/firefox-clean-old-activies-profiles
Lo editaremos para que su contenido sea:
#!/bin/bash ActivityList=( $(qdbus org.kde.kactivitymanagerd /ActivityManager ListActivities |tr '\n' ' ') ) FF_FOLDER=$"$HOME/.mozilla/firefox" PRESERVED_FOLDERS="pruebasZD pruebasZD2 pruebasZD3 1g5dikse.default" CRASH_REPORTS="Crash Reports" cd "${FF_FOLDER}" for ffile in * ; do IGNORE_DELETE="NO" if [ -d "${ffile}" ] ; then if [ "${CRASH_REPORTS}" = "${ffile}" ] ; then IGNORE_DELETE="YES" fi for npreserved in ${PRESERVED_FOLDERS} ; do if [ "${npreserved}" = "${ffile}" ] ; then IGNORE_DELETE="YES" fi done for nactivity in "${ActivityList[@]}"; do if echo "${ffile}" | grep "${nactivity}" >/dev/null 2>&1; then IGNORE_DELETE="YES" fi done else continue fi dir_to_delete="${ffile}" if [ ${IGNORE_DELETE} = "NO" ] ; then echo -e -n "We are going to delete: ${dir_to_delete}\n" rm -rf ${dir_to_delete} else echo -e -n "DO NOT DELETE: ${dir_to_delete}\n" fi done
dónde en:
PRESERVED_FOLDERS
ponemos los directorios que no queremos que se borren, siempre y cuando no tengan espacios en el nombre. Si tienen espacios habrá que o bien renombrarlos o bien modificar el script para tenerlos en cuenta y excluirlos del borrado.
Finalmente forzaremos el arranque de este script desde:
- Preferencias del sistema
- Administración del sistema
- Arranque y Apagado
- Autoarranque
Hacemos click en Añade script… y ponemos la ruta al script:
/usr/local/bin/firefox-clean-old-activies-profiles
.
Descartamos: Crear como symlink. Y click en Aceptar.
Inconvenientes
En mi configuración una vez creada la primera ventana del firefox de actividad las nuevas ventanas hay que crearlas desde el mismo Firefox con Archivo. Nueva Ventana. Ya digo. Seguramente sea cosa de mi configuración y no os tiene porque pasar lo mismo.
El otro inconveniente es que no se arrancan las diferentes sesiones de Firefox automáticamente como si se arrancarían programas distintos en cada actividad. Pero, bueno, casi mejor, así se empieza antes a trabajar.
Bibliografía
Etiquetas: actividades, activities, firefox, kde, kde4
marzo 29, 2013 a las 11:56 am |
[…] profile needs to be excluded from deletion in my Firefox kde script […]
julio 17, 2013 a las 10:08 am |
[…] profile needs to be excluded from deletion in my Firefox kde script […]