domingo, 26 de abril de 2015

Ubicación de servicios (KDE Service Menu) para Dolphin en KDE 5

Muchas distribuciones Linux basadas en KDE están dando el salto o tienen previsto darlo en breve a KDE Plasma 5 (a partir de ahora, para abreviar, KDE5). En KDE4, si queríamos saber donde ubicar los archivos de servicios de Dolphin o Konqueror (los denominados KDE Service Menu), no teníamos más que ejecutar en una terminal:
kde4-config --path services
que acostumbra a devolver
/home/usuario/.kde4/share/kde4/services/:/usr/share/kde4/services/
Si ubicamos el servicio en la primera ruta (rutas separadas por dos puntos), solo estaría disponible para ese usuario en concreto (donde cambiamos usuario por el nombre del usuario que ejecuta el comando). Si lo ubicamos en la segunda, estaría disponible para todos los usuarios del sistema.

Normalmente el usuario no tiene que preocuparse de esto, sino que los scripts de instalación que suelen acompañar a los KDE Service Menu se encargan de todo. Pero no siempre todo funciona a la primera, ¿no es así?.

El problema que nos encontramos con KDE5, basado en Qt5, es que tiene establecidas rutas diferentes para los KDE service menu. Si tenemos instalada nuestra distro y actualizamos a KDE5, es probable que dejemos de tener disponibles nuestros servicios en Dolphin, porque éste los buscará en las nuevas rutas, y nuestros servicios se encontrán en las rutas preestablecidas por KDE4.

Para saber qué rutas se utilizan en KDE5, tenemos que ejecutar:
kf5-config --path services
(kf5 de KDE Framework 5) que devuelve
/home/usuario/.local/share/kservices5/:/usr/share/kservices5/
que si os fijáis son distintas a las que se usan en KDE4.

Algunas distribuciones han creado un alias a kf5-config, de manera que si probamos con kde5-config (que sería lo lógico) obtendremos las rutas igualmente.

martes, 15 de mayo de 2012

Acceder a cámara de fotos desde KDE 4.8

Estoy usando desde la beta1, Kubuntu Precise 12.04 (muy satisfactoriamente dicho sea de paso). Una de las cosas que he notado (y no soy el único al que le pasa), es que el automontaje de nuestra cámara digital cuando la pinchamos al puerto USB (vía su cable correspondiente) no funciona (no aparece en la lista de dispositivos de Dolphin ni se muestra la notificación de dispositivo disponible en la bandeja de sistema). Por otra parte, sí que funciona sin ningún problema si pinchamos cualquier pendrive. Comentan en el siguiente enlace, que se trata de una regresión en la rama de KDE 4.8.x, que por lo visto soluciona la revisión 4.8.3 recientemente publicada (todavía no en los repositorios oficiales de Kubuntu). El problema de fondo es que KDE trata las cámaras digitales como dispositivos 'no removibles'. 

¿Y cómo hacer para acceder al contenido de la memoria de la cámara? Una opción sería retirar la tarjeta de memoria y usar un adaptador USB (del estilo de este) o bien un lector de tarjetas. ¿Pero qué ocurre si no disponemos ni de uno ni de otro?

Por suerte, el kio slave camera:/ funciona perfectamente, aunque falle lo comentado en el primer párrafo. De manera que si pinchamos nuestra cámara al puerto USB, la encendemos en modo reproducción/visualización, ejecutamos el administrador de archivos (Dolphin o Konqueror), pinchamos en la barra de direcciones, tecleamos

camera:/

y pulsamos intro, nos encontraremos algo parecido a esto:


Ahora solamente nos queda navegar por las distintas carpetas hasta dar con nuestras fotos. Un ejemplo para una Canon IXUS 860 IS:


Fuente:

http://ubuntuguide.org/wiki/Kubuntu_Precise_Photos_and_Graphics#Accessing_a_digital_camera_from_the_Dolphin_file_manager

lunes, 23 de abril de 2012

La edad de oro del software español de 8 bits, de la A a la Z

Y ya que me he puesto nostálgico con la entrada anterior relativa al Prince of Persia, y para los ya 'talluditos', este excelente artículo traerá grandes recuerdos.

La Abadía del Crimen

miércoles, 18 de abril de 2012

Liberado el código del Prince of Persia

Para los que somos algo 'viejunos' y disfrutamos en nuestro primer PC del original Prince of Persia, nos llena de nostalgia noticias como ésta, que hace referencia a que el creador de este fascinante título, Jordan Mechner, por azares de la vida, pudo localizar los fuentes del mismo (almacenados en discos flexibles de 5¼") cuando los daba por perdidos tras 22 años. Y no se le ocurrió mejor forma de celebrar tal descubrimiento, así como de honrar su trabajo (y así mismo, diría yo), que hacer público el código fuente (escrito en lenguaje ensamblador del 6502, para un Apple II)

Mechner también ha publicado un libro con el diario de trabajo que escribió durante la creación del juego, así como un simpático vídeo 'Making of...' que me ha traído grandes recuerdos. En él se puede apreciar como usó a su hermano pequeño como modelo para crear las que en su momento fueron las mejores animaciones de personajes de la historia de los videojuegos. 

martes, 17 de abril de 2012

Ejecutando Pinta sobre KDE

Como ya comenté en una entrada anterior, el software de dibujo y edición de imágenes Pinta, derivado del proyecto Paint.Net, presenta ciertas dificultades a la hora de ejecutarse correctamente en KDE. Sin embargo, la solución que ofrecí en dicha entrada, ya no resuelve el problema en las nuevas versiones de KDE/Kubuntu. Concretamente, estos días salió la versión 1.2 de Pinta, y al intentar ejecutarla en Kubuntu 12.04, obtenemos el siguiente error:

josea@kubuntu12:~$ pinta Unhandled Exception: System.ArgumentException: 'gtk-close' is not a valid resource name of assembly 'Pinta.Resources, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null'. at Gdk.PixbufLoader.InitFromAssemblyResource (System.Reflection.Assembly assembly, System.String resource) [0x00000] in :0 at Gdk.PixbufLoader..ctor (System.Reflection.Assembly assembly, System.String resource) [0x00000] in :0 at Gdk.Pixbuf..ctor (System.Reflection.Assembly assembly, System.String resource) [0x00000] in :0 at Gdk.Pixbuf.LoadFromResource (System.String resource) [0x00000] in :0 at Pinta.Resources.ResourceLoader.GetIcon (System.String name, Int32 size) [0x00000] in :0 at Pinta.ResourceManager.GetIcon (System.String name, Int32 size) [0x00000] in :0 at Pinta.ResourceManager.GetIcon (System.String name) [0x00000] in :0 at Pinta.Gui.Widgets.OpenImagesListWidget..ctor () [0x00000] in :0 at Pinta.OpenImagesPad.Initialize (MonoDevelop.Components.Docking.DockFrame workspace, Gtk.Menu padMenu) [0x00000] in :0 at Pinta.MainWindow.CreateDockAndPads (Gtk.HBox container) [0x00000] in :0 at Pinta.MainWindow.CreatePanels (Pinta.WindowShell shell) [0x00000] in :0 at Pinta.MainWindow.CreateWindow () [0x00000] in :0 at Pinta.MainWindow..ctor () [0x00000] in :0 at Pinta.MainClass.Main (System.String[] args) [0x00000] in :0 [ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentException: 'gtk-close' is not a valid resource name of assembly 'Pinta.Resources, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null'. at Gdk.PixbufLoader.InitFromAssemblyResource (System.Reflection.Assembly assembly, System.String resource) [0x00000] in :0 at Gdk.PixbufLoader..ctor (System.Reflection.Assembly assembly, System.String resource) [0x00000] in :0 at Gdk.Pixbuf..ctor (System.Reflection.Assembly assembly, System.String resource) [0x00000] in :0 at Gdk.Pixbuf.LoadFromResource (System.String resource) [0x00000] in :0 at Pinta.Resources.ResourceLoader.GetIcon (System.String name, Int32 size) [0x00000] in :0 at Pinta.ResourceManager.GetIcon (System.String name, Int32 size) [0x00000] in :0 at Pinta.ResourceManager.GetIcon (System.String name) [0x00000] in :0 at Pinta.Gui.Widgets.OpenImagesListWidget..ctor () [0x00000] in :0 at Pinta.OpenImagesPad.Initialize (MonoDevelop.Components.Docking.DockFrame workspace, Gtk.Menu padMenu) [0x00000] in :0 at Pinta.MainWindow.CreateDockAndPads (Gtk.HBox container) [0x00000] in :0 at Pinta.MainWindow.CreatePanels (Pinta.WindowShell shell) [0x00000] in :0 at Pinta.MainWindow.CreateWindow () [0x00000] in :0 at Pinta.MainWindow..ctor () [0x00000] in :0 at Pinta.MainClass.Main (System.String[] args) [0x00000] in :0

Para solucionarlo, por suerte solo tenemos que instalar el paquete 'gnome-icon-theme-full', por ejemplo, de la siguiente manera:

sudo apt-get install gnome-icon-theme-full

Y aquí podemos verlo funcionando.


miércoles, 15 de junio de 2011

Pinta 1.0 no se ejecuta en Kubuntu 11.04

Si intento ejecutar la última versión de Pinta (1.0) desde Kubuntu 11.04, la aplicación no se lanza. Para obtener alguna pista de qué está pasando, lo intento desde un Terminal, encontrándome el siguiente mensaje:

jmunin@dell-kubuntu-natty:~$ pinta
GLib.GException: Icon 'gtk-dialog-error' not present in theme at Gtk.IconTheme.LoadIcon (System.String icon_name, Int32 size, IconLookupFlags flags) [0x00000] in :0 at Pinta.ErrorDialog.Build () [0x00000] in :0 at Pinta.ErrorDialog..ctor (Gtk.Window parent) [0x00000] in :0 at Pinta.MainClass.ExceptionManager_UnhandledException (GLib.UnhandledExceptionArgs args) [0x00000] in :0 at GLib.ExceptionManager.RaiseUnhandledException (System.Exception e, Boolean is_terminal) [0x00000] in :0

Tal como comentan aquí, el problema es que no encuentra el icono gtk-dialog-error en la instalación de Kubuntu. La solución pasa por instalar el paquete gnome-icon-theme:

jmunin@dell-kubuntu-natty:~$ sudo apt-get install gnome-icon-theme

Y ahora ya sin problemas.


Esta versión de Pinta ha sido instalada a partir de este repositorio (dispone de actualizaciones de muchas otras aplicaciones; muy recomendable).

lunes, 13 de junio de 2011

Gestión de paquetes bloqueados (hold) en Debian/Ubuntu desde Consola

Lista de comandos útiles de consola/terminal, referentes a bloquear/proteger una determinada versión de paquete instalada (como muy bien explica aquí):
  • Bloquear paquete:
    echo 'NOMBRE_PAQUETE hold' | sudo dpkg --set-selections
  • Desbloquear paquete:
    echo 'NOMBRE_PAQUETE install' | sudo dpkg --set-selections
  • Para ver su estado:
    dpkg --get-selections | grep NOMBRE_PAQUETE
  • Listar paquetes bloqueados:
    dpkg --get-selections | grep 'hold'
El siguiente ejemplo tiene que ver con la instalación y uso del DNIe en distribuciones Debian (incluyendo Ubuntu), en las que tenemos que evitar que 2 paquetes se actualicen a sus últimas versiones: opensc y libopensc2 (explicado aquí).

Para bloquearlos desde un terminal (una vez instalados los paquetes), ejecutamos:
echo 'opensc hold' | sudo dpkg --set-selections
echo 'libopensc2 hold' | sudo dpkg --set-selections

Para verificar que todo ha funcionado, comprobamos la salida del siguiente comando:
dpkg --get-selections | grep 'hold'

También podemos comprobarlo ejecutando:
~$ sudo apt-get update && sudo apt-get upgrade
...
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Los siguientes paquetes se han retenido: libopensc2 opensc
0 actualizados, 0 se instalarán, 0 para eliminar y 2 no actualizados.

Para todo esto también puede resultar muy útil wajig.

¿Y porqué hacer todo esto desde consola? Una de las razones es que el gestor de paquetes de Kde para Kubuntu (KPackageKit) no soporta la gestión de esta característica (bloqueo de versiones de paquetes). Es precisamente una de las novedades de la futura versión de Muon (la actual, 1.1.x todavía carece de ello), que por lo visto va a ser el nuevo gestor de paquetes de Kubuntu Oneiric Ocelot 11.10.