Soporte de actividades para Firefox

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

Anuncio publicitario

Etiquetas: , , , ,

2 respuestas to “Soporte de actividades para Firefox”

  1. Setting up a custom Firefox to use in KDE Activities | El blog de adrian15 Says:

    […] profile needs to be excluded from deletion in my Firefox kde script […]

  2. Setting up a custom Firefox to use in KDE Activities updated to Firefox 24 | El blog de adrian15 Says:

    […] profile needs to be excluded from deletion in my Firefox kde script […]

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s


A %d blogueros les gusta esto: