pluma 1.8 custom plugins path

Las rutas donde se deben ubicar los plugins para el editor de mate-desktop pluma son

# version 1.6
~/.config/pluma/plugins

# version 1.8 ( solo cambian los plugins )
~/.local/share/pluma/plugins

El repo de pluma por si queréis consultar el código
https://github.com/mate-desktop/pluma

[pluma] error loading plugin ImportError: could not import gtksourceview

Al ejecutar pluma aparece este error en consola al cargar plugins

[shell]

$pluma
ImportError: could not import gtksourceview

** (pluma:15511): WARNING **: Error initializing Python interpreter: could not import pygtksourceview.

** (pluma:15511): WARNING **: Please check the installation of all the Python related packages required by pluma and try again.

** (pluma:15511): WARNING **: Cannot load python plugin Python ‘External Tools’ since pluma wasnot able to initialize the Python interpreter.

** (pluma:15511): WARNING **: Error loading plugin ‘External Tools’

[/shell]

 

Para solucionarlo hay que instalar un paquete de python que falta en el sistema:

[shell]

sudo apt-get install python-gtksourceview2

[/shell]

Convertir Textmate snippets a Gedit/Pluma

Este es otro pequeño ejemplo de esas cosas que vas dejando por que nunca tienes y sabes que te hacen falta. Ayer le dedicé tiempo y ya puedo decir que sí es posible convertir los snippets de TextMate a Gedit o Pluma para Mate-desktop.

 

Nicolas Alpi ( https://github.com/spyou ) desarolló hace tiempo un pequeño script en ruby que extrae los ficheros de snippets de Textmate para Gedit. Es un script muy muy sencillo en ruby en el cuál he corregido un pequeño detalle y le he agregado la posibilidad de indicar el directorio donde están los snippets. Una vez que ejecutas el script tmsnippets2gedit.rb se genera un fichero result.xml con la conversión. Este fichero deberemos copiarlo a la ruta de donde estén los demas ficheros de Gedit o Pluma con el nombre de la extensión a la que se aplicarán. Además hay que cambiar la cadena ‘[LANGUAGE]’ por el nombre de la extensión.

 

En mi caso lo quiero usar para importar los ficheros publicados en el repositorio oficial de phpcake Textmate bundle

 

Bueno… alguno se preguntará ¿ qué es un snippet ?. Los editores de texto como textmate, sublime, gedit o mi querido pluma tienen esta pequeña funcionalidad llamada snippets ( se puede traducir como recortes o fragmentos ) que lo que hacen es escribir un bloque de texto usando un pequeño ‘trigger‘ o disparador y presionando la tecla TAB.

 

Como la tecnología tiene que ayudar a mejorar tu vida, en resumen, lo que hace un snippet, es permitir que curremos más rápido, escribiendo un bloque de texto presionando un par de caracteres y el tab. Por ejemplo si quiero agregar en una vista un texto internacionalizado en PHPCake o Wordress tendré que escribir algo como esto :
[shell]<?php echo __(‘Translate this’) ?>
[/shell]
 

La cantidad de veces que hay que escribir el tag de php es odiosa y terriblemente aburrida, de forma que si uso un snippet puede asignar ‘echo’ + ‘tab’ y escribirá: <?php echo __(‘Translate this’) ?>

La configuración sería como en la imagen adjunta :
 

pluma-snippet-18n-echo

 

 

 
 

Ahora que ya tenemos todas la piezas, ¿como usar los snippets de cakephp en gedit/pluma ? Aquí tenéis un fragmento de los que me gustan a mí de copiar y pegar y listo:
[shell]Example to convert cakephp textame to gedit/pluma snippets

git clone https://github.com/jsenin/tmsnippets2gedit
sudo gem install ruby ruby-nokogiri

git clone https://github.com/cakephp/cakephp-tmbundle
cd cakephp-tmbundle
ruby ../tmsnippets2gedit.rb

sed -i ‘s/\[LANGUAGE\]/php/g’ result.xml
sudo cp result.xml /usr/share/pluma/plugins/snippets/php.xml

or

sudo cp result.xml ~/.config/pluma/snippets/php.xml[/shell]

gedit / pluma highligth ctp

Si trabajamos con gedit o pluma y con CakePHP nos interesa que los ficheros .ctp ( cake template ) se muestren con el sombreado ‘highligth’ como php y html de forma que sea más fácil trabajar con el contenido.

Por defecto este tipo de extensiones no son reconocidas por las instalaciones Debian, así que nos toca agregarlas. Para ello y basándome en este enlace he creado una pequeña modificación para que los ficheros .ctp se muestren coloreados
[shell]sudo sed -i ‘s@<glob pattern=»\*.phps»/>@<glob pattern=»*.phps»/>\n\t\t<glob pattern=»*.ctp»/>@g’ /usr/share/mime/packages/freedesktop.org.xml
sudo update-mime-database /usr/share/mime[/shell]

debug en pluma editor de mate-desktop

En una nueva instalación los plugins de PLUMA no me cargaban y no encontraba forma de obtener los logs.
Para obtener esta valiosa información he tenido que consultar el código fuente de pluma concretamente pluma-debug.c

Donde se puede ver este fragmento de código:
[shell]
if (g_getenv («PLUMA_DEBUG») != NULL)
{
/* enable all debugging */
debug = ~PLUMA_NO_DEBUG;
goto out;
}

if (g_getenv («PLUMA_DEBUG_VIEW») != NULL)
debug = debug | PLUMA_DEBUG_VIEW;
if (g_getenv («PLUMA_DEBUG_SEARCH») != NULL)
debug = debug | PLUMA_DEBUG_SEARCH;
if (g_getenv («PLUMA_DEBUG_PREFS») != NULL)
debug = debug | PLUMA_DEBUG_PREFS;
if (g_getenv («PLUMA_DEBUG_PRINT») != NULL)
debug = debug | PLUMA_DEBUG_PRINT;
if (g_getenv («PLUMA_DEBUG_PLUGINS») != NULL)
debug = debug | PLUMA_DEBUG_PLUGINS;
if (g_getenv («PLUMA_DEBUG_TAB») != NULL)
debug = debug | PLUMA_DEBUG_TAB;
if (g_getenv («PLUMA_DEBUG_DOCUMENT») != NULL)
debug = debug | PLUMA_DEBUG_DOCUMENT;
if (g_getenv («PLUMA_DEBUG_COMMANDS») != NULL)
debug = debug | PLUMA_DEBUG_COMMANDS;
if (g_getenv («PLUMA_DEBUG_APP») != NULL)
debug = debug | PLUMA_DEBUG_APP;
if (g_getenv («PLUMA_DEBUG_SESSION») != NULL)
debug = debug | PLUMA_DEBUG_SESSION;
if (g_getenv («PLUMA_DEBUG_UTILS») != NULL)
debug = debug | PLUMA_DEBUG_UTILS;
if (g_getenv («PLUMA_DEBUG_METADATA») != NULL)
debug = debug | PLUMA_DEBUG_METADATA;
if (g_getenv («PLUMA_DEBUG_WINDOW») != NULL)
debug = debug | PLUMA_DEBUG_WINDOW;
if (g_getenv («PLUMA_DEBUG_LOADER») != NULL)
debug = debug | PLUMA_DEBUG_LOADER;
if (g_getenv («PLUMA_DEBUG_SAVER») != NULL)
debug = debug | PLUMA_DEBUG_SAVER;
[/shell]
con lo que vemos la lista de modificadores para depurar y podemos hacer este tipo de ejecución para obtener los logs:

depurar sólo los plugins y especificar una carpeta con los plugins
[shell]
$ env PLUMA_DEBUG_PLUGINS=true PLUMA_PLUGINS_PATH=~/.config/pluma/plugins/ /usr/bin/pluma
[/shell]

depurar todo
[shell]
$ env PLUMA_DEBUG=true /usr/bin/pluma
[/shell]

svn intenta autenticar usando gnome-keyring en mate-desktop

Ayer y hoy estuve intentando acutalizar mi código de subversion en el portatil donde trabajo con mate-desktop y me fué imposible actualizarlo debido a que svn intentaba buscar las credenciales de autenticación usando gnome-keyring.

[shell]
svn co http://repo.senin.org/svn/mutantes/trunk/src/ mutant
Password for ‘default’ GNOME keyring:
svn: OPTIONS of ‘http://repo.senin.org/svn/mutantes/trunk/src’: authorization failed: Could not authenticate to server: rejected Digest challenge (http://repo.senin.org)
[/shell]

En mate-desktop se han replicado los paquetes de gnome y no deberían de aparecer este tipo de cosas. De todas formas busqué por los paquetes del sistema por si tuviera instalado gnome-keyring

[shell]
# buscando gnome-keyring en mis paquetes instalados
dpkg -l | grep -i gnome-keyring
[/shell]

El paquete gnome-keyring estaba en el sistema y lo desistalé
[shell]
apt-get remove –purge gnome-keyring
[/shell]

De todas formas el error continuaba, así que me he puesto a googlear por que seguro que no era el único con este problema y creo recordar que no es la primera vez que me pasa. Encontré este enlace en el que indica que lo mejor es borrar el contenido de los ficheros de keyring de gnome y de mate-desktop : «/home/user/.config/mate/keyrings and /home/user/.gnome2/keyrings »

Así que como no tengo especial interés en el contenido me los cargué:
[shell]
rm -fr ~/.config/mate/keyrings ~/.gnome2/keyrings
[/shell]

y a partir de aquí todo funcionó bien y comí perdices.fin 😀

qué es caribou en mate-desktop?

Revisando las aplicaciones que se ejecutan en el inicio de la sesión com mate-desktop he econtrado una entrada llamada Caribou.

caribou-mate-desktop
caribou-mate-desktop

No me gusta ver cosas raras en el sistema, así que he estado investigando ( poco, muy poco la verdad jejeje ) y he visto que es un teclado por pantalla, supongo que es una implementación de un teclado accesible o algo similar.

[shell]
caribou – Configurable on screen keyboard with scanning mode
caribou-antler – Configurable on screen keyboard with scanning mode
[/shell]

Así que ya me quedo más tranquilo 😀

The name org.freedesktop.Notifications was not provided by any .service files

Últimamente estoy usando mate-desktop por que me parece una muy buena alternativa a usar Gnome3 Cuando intento arrancar gfuw ( Gtk Uncomplicated FireWall ) me salta este error y gufw, no activa el firewall.

name org.freedesktop.Notifications was not provided by any .service
name org.freedesktop.Notifications was not provided by any .service

 
[shell](gufw.py:9510): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:327:60: Junk at end of value
Traceback (most recent call last):
  File «/usr/share/gufw/gufw/view/guiGufw.py», line 425, in _do_refresh_report
    background_job = RefreshReport(self.fw.get_status(), self.report_model, lines, self.previous_report, self.first_run_report, self.fw.get_notify_popup())
  File «/usr/share/gufw/gufw/view/guiGufw.py», line 1149, in __init__
    notify_object = bus.get_object(‘org.freedesktop.Notifications’, ‘/org/freedesktop/Notifications’)
  File «/usr/lib/python2.7/dist-packages/dbus/bus.py», line 241, in get_object
    follow_name_owner_changes=follow_name_owner_changes)
  File «/usr/lib/python2.7/dist-packages/dbus/proxies.py», line 248, in __init__
    self._named_service = conn.activate_name_owner(bus_name)
  File «/usr/lib/python2.7/dist-packages/dbus/bus.py», line 180, in activate_name_owner
    self.start_service_by_name(bus_name)
  File «/usr/lib/python2.7/dist-packages/dbus/bus.py», line 278, in start_service_by_name
    ‘su’, (bus_name, flags)))
  File «/usr/lib/python2.7/dist-packages/dbus/connection.py», line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files[/shell]
Buscando he visto en https://bbs.archlinux.org/viewtopic.php?id=75078 que es debido a que falta el paquete notification-daemon. En mate-desktop tenemos el paquete mate-notification-dameon por lo que hay que instarlo:
[shell]
sudo apt-get install mate-notification-daemon[/shell]
y al siguiente arranque de sesión, debería arrancar, si no, podemos ejecutarlo manualmente con el comando
[shell]/usr/lib/mate-notification-daemon/mate-notification-daemon[/shell]
y ya tenemos gufw funcionando bien

gfuw-enabled
gfuw-enabled

Mate desktop pluma plugins

MATE AboutEstoy colaborando con el proyecto mate-desktop !

MATE Desktop es un fork de Gnome2, y como en gnome se ha optado por Gnome3 que no me parece para nada usable, está incompleto y no me gusta, MATE Desktop es la alternativa perfecta, sigo teniendo mi escritorio de siempre y mi instalación de Debian actualizada.

Estoy portando plugins de gedit a pluma ( pluma es el fork de gedit ) y estoy conviritiendo los plugins para que se puedan usar con pluma.

Lo podeis encontrar aquí https://github.com/jsenin/pluma-plugins

Os recomiendo usar MATE Desktop