Toggle navigation
  • Login
    ¿Olvidaste tu contraseña?
    ¿No llegó el correo de validación?
    Registrate Ahora!
User Image

Hola, Visitante

  • Posts
    • Inicio
    • Buscador
  • Comunidad
    • Inicio
    • Directorio
    • Buscar
    • Historial
  • Fotos
    • Inicio
  • TOPs
    • Posts
    • Usuarios
  • Registrate!

Debian + Openbox. Iconos en menu. Actualizacion - GNU Libre

Posteado por:

Ver perfil de cesarzeta
cesarzeta
Diamond

Seguir Usuario
58 Seguidores 5076 Puntos 39 Posts 1621 Comentarios

Medallas

Debian + Openbox. Iconos en menu. Actualizacion

Antes que nada les pido disculpas porque la presentación del post no es buena. Se debe a que tuve varios problemas para que el texto, por algunos signos, fuera aceptado y no podía subirlo. Espero que tengan paciencia porque por allí el contenido no está bien diferenciado.

Varios compañeros se mostraron interesados en tener íconos en el menú de Openbox.
Al respecto publiqué un post donde la distro utilizada era Debian Wheezy que traía a perl 5.14 de manera prederminada.

Link al post: http://gnulibre.com/posts/entornosdeescritorio/404/Debian-7-Openbox-Pipe-men-con-conos-.html

En las versiones Sid, Testing o en CrunchBang en las que la versión de perl cambia, yo tengo instalada en Sid la 5.20.0, se producen algunos problemas que impiden que se muestre el pipe menú de Openbox o que si se lo puede ver no suceda lo mismo con los íconos.
Pasemos a la manera en que propongo resolver la dificultad:


Procedimiento:

Estos son los pasos que hay que hay que seguir:

1) Dependencias: perl-linux-desktopfiles y perl-data-dump

Cómo descargar, compilar e instalar perl-linux-desktopfiles:

$ wget http://cpan.metacpan.org/authors/id/T/TR/TRIZEN/Linux-DesktopFiles-0.08.tar.gz
$ tar -zxvf Linux-DesktopFiles-0.08.tar.gz
$ cd Linux-DesktopFiles-0.08/
$ perl Build.PL
$ ./Build
$ ./Build test
$ sudo ./Build install

Cómo descargar e instalar perl-data-dump:

$ wget http://mirror.us.leaseweb.net/archlinux/community/os/i686/perl-data-dump-1.22-1-any.pkg.tar.xz
$ sudo tar -Jxvf perl-data-dump-1.22-1-any.pkg.tar.xz -C / --exclude=.PKGINFO --exclude=.MTREE

Como ven excluimos los paquetes ocultos que son útiles para Arch pero no para Debian y descomprimimos en / .
Luego es necesario ejecutar las siguientes ordenes para que obmenu-generator encuentre a Data

$ perl -v ( Para averiguar que versión de perl tienen instalada y usarla en la siguiente línea )
$ sudo cp -av /usr/share/perl5/vendor_perl/Data /usr/local/share/perl/5.20.0/ ( Reemplacen 5.20.0 por la versión obtenida en la orden anterior)

Si la orden falla repítanla luego de instalar obmenu-generator.

2) obmenu-generator

Cómo descargar, crear el deb e instalar obmenu-generator

a) Aclaración necesaria: Al llegar en la lista de órdenes a la orden editor_de_texto DEBIAN/control y ejecutarla van a crear un archivo de texto vacío y dentro deben poner el siguiente contenido:

Package: obmenu-generator
Version: 1.0
Section: custom
Priority: optional
Architecture: all
Essential: no
Installed-Size: 1375
Maintainer: su_nombre <su_email>
Description: Generador de Menus para OpenBox

Guardan el archivo en el mismo directorio donde fue creado y continúan con las órdenes que siguen en la lista

b) Lista de órdenes

$ mkdir obmenu-generator
$ cd obmenu-generator/
$ mkdir DEBIAN
$ editor_de_texto DEBIAN/control
$ mkdir -p usr/bin/
$ wget -nv http://trizen.googlecode.com/files/obmenu-generator
$ chmod +x obmenu-generator
$ mv obmenu-generator usr/bin/
$ cd ..
$ dpkg-deb -b obmenu-generator
$ sudo dpkg -i obmenu-generator.deb
$ dpkg -l obmenu-generator

3) Editar el menú de OpenBox

a) Crear una copia de seguridad del archivo /home/usario/.config/openbox/menu.xml

b) Abren menu.xml con un editor de texto, borran todo el contenido y ponen lo siguiente

<?xml version="1.0" encoding="utf-8"?>
<openbox_menu xmlns="http://openbox.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://openbox.org/ file:///usr/share/openbox/menu.xsd">
<menu id="root-menu" label="Openbox 3" execute="/usr/bin/obmenu-generator -i">
</menu>
</openbox_menu>

Dejen una línea en blanco al final del menu.xml, es por el EOF.
Fíjense cual es la ruta para execute , obmenu-generator puede haber sido instalado en /usr/bin o en /usr/local/bin.

4) En el terminal ejecuten la orden openbox --reconfigure y se fijan si el menú que aparece con click derecho sobre el desktop cambió.
También pueden ejecutar directamente la orden obmenu-generator o reiniciar la sesión.
Si algo sale mal basta con que reemplacen /home/usuario/.config/openbox/menu.xml con su copia de seguridad y reinicien la sesión.

Correccion de los problemas ocasionados por actualización y/o la versión de perl utilizada

1) Primer problema. El menú directamente no se muestra o aparece un mensaje de error

Cuando editamos el archivo menu.xml hemos puesto que se use el archivo /usr/share/openbox/menu.xsd como molde, pues bien este archivo simplemente puede desaparecer, si eso sucede:

Soluciones

a) En /usr/share/doc/openbox existe el archivo comprimido menu.xsd.gz por tanto el procedimiento sería

sudo cp /usr/share/doc/openbox/menu.xsd.gz /usr/share/openbox/
sudo gzip -d /usr/share/openbox/menu.xsd.gz
sudo rm /usr/share/openbox/menu.xsd.gz

Asegúrense de tener instalado gzip.

b) Protejan contra escritura al archivo ~/.config/openbox/menu.xml

c) Si no consiguen el archivo menu.xsd me lo piden.

2) Segundo problema. Aunque se muestra el menú no hay íconos.

Ésto a mi me aconteció por una falta de correspondencia entre los argumentos declarados en el archivo /usr/local/share/perl/5.20.0/Linux/DesktopFiles.pm y la configuración determinada en el archivo(script) ~/.config/obmenu-generator/config.pl.

Solución

Deben asegurarse que las declaraciones y las configuraciones coincidan, que no falten las declaraciones necesarias.

Aquí va una captura de la sección que importa de cada uno de estos archivos.

Captura de /usr/local/share/perl/5.20.0/Linux/DesktopFiles.pm


Captura de ~/.config/obmenu-generator/config.pl



El código de mi archivo ~/.config/obmenu-generator/config.pl

#!/usr/bin/perl

# obmenu-generator - configuration file
# This file will be updated automatically every time when is needed.
# Any additional comment and/or indentation will be lost.

=for comment

|| FILTERING
    | skip_filename_re    : Skip a .desktop file if its name matches the regex.
                            Name is from the last slash to the end. (filename.desktop)
                            Example: qr/^(?:gimp|xterm)\b/,    # skips 'gimp' and 'xterm'

    | skip_entry          : Skip a destkop file if the value from a given key matches the regex.
                            Example: [
                                {key => 'Name', re => qr/(?:about|terminal)/i},
                                {key => 'Exec', re => qr/^xterm/},
                            ],

    | substitutions       : Substitute, by using a regex, in the values of the desktop files.
                            Example: [
                                {key => 'Exec', re => qr/xterm/, value => 'sakura'},
                                {key => 'Exec', re => qr/\\\\/,  value => '\\', global => 1},    # for wine apps
                            ],


|| ICON SETTINGS
    | icon_dirs_first     : When looking for icons, look in this directories first,
                            before looking in the directories of the current icon theme.
                            Example: [
                                "$ENV{HOME}/My icons",
                            ],

    | icon_dirs_second    : Look in this directories after looked in the directories of the
                            current icons theme. (Before /usr/share/pixmaps)
                            Example: [
                                "/usr/share/icons/gnome",
                            ],

    | icon_dirs_last      : Look in this directories at the very last, after looked in
                            /usr/share/pixmaps, /usr/share/icons/hicolor and some other
                            directories.
                            Example: [
                                "/usr/share/icons/Tango",
                            ],

    | strict_icon_dirs    : A true value will make the module to look only inside the directories
                            specified by you in either one of the above tree options.

    | gtk_rc_filename     : Absolute path to the GTK configuration file.
    | missing_image       : Use this icon for missing icons (default: gtk-missing-image)


|| KEYS
    | tooltip_keys        : Valid keys for the tooltip text.
                            Example: ['Comment[es]', 'Comment'],

    | name_keys           : Valid keys for the item names.
                            Example: ['Name[fr]', 'GenericName[fr]', 'Name'],   # french menu


|| PATHS
    | desktop_files_paths   : Absolute paths which contains .desktop files.
                              Example: [
                                '/usr/share/applications',
                                "$ENV{HOME}/.local/share/applications",
                                glob("$ENV{HOME}/.local/share/applications/wine/Programs/*"),
                              ],


|| NOTES
    | Regular expressions:
        * use qr/RE/ instead of 'RE'
        * use qr/RE/i for case insenstive mode

=cut

our $CONFIG = {
  "editor"              => "geany",
  "Linux:: DesktopFiles" => {
                             desktop_files_paths     => ["/usr/share/applications"],
                             gtk_rc_filename         => "/home/cesarzeta/.gtkrc-2.0",
                             icon_dirs_first         => undef,
                             icon_dirs_last          => undef,
                             icon_dirs_second        => undef,
                             keep_unknown_categories => 1,
                             skip_entry              => undef,
                             skip_filename_re        => undef,
                             skip_svg_icons          => 1,
                             strict_icon_dirs        => undef,
                             substitutions           => undef,
                             terminalization_format  => "%s -e '%s'",
                             terminalize             => 1,
                             unknown_category_key    => "other",
                           },
  "missing_icon"        => "gtk-missing-image",
  "name_keys"           => ["Name"],
  "terminal"            => "lxterminal",
  "VERSION"             => 0.58,
}



Si tienen problemas y previa copia de seguridad del original reemplacen su config.pl con el que he subido modificando cuestiones lógicas como la ruta del usuario o el tipo de terminal utilizado. Si sigue sin mostrar los íconos es probable que falte agregar algo al config.pl, estoy a su disposición si quieren consultar algo.

Una captura de como se ve el menú en mi Debian Sid:


Creo que eso es todo. Como siempre se aceptan las sugerencias y correcciones pertinentes.
Muchas gracias por su atención.

  • Compartir En:
  • Seguir Post
  • 3
    Medallas
  • 4
    Favoritos
  • 1001
    Visitas
  • 203
    Puntos
  • 0
    Seguidores

Tags: debian openbox iconos menu actualizacion
  • Categoría: Tutoriales
  • Creado: 11.10.2014 a las 14:35 hs.

Otros posts que te van a interesar:

  • Alternativa a Windows DVD Shrink en debian y derivados
  • Dos problemas boludos de Ubuntu y sus soluciones
  • [Concurso] "Una luz en la noche". Gobang Linux
  • COmpilar Shockwave Flash 17.0 r0 en mozilla
  • Instalar Nuvola Player en Debian o Ubuntu
  • Exe GNU/Linux - Basada en Debian Estable c/Trinity
  • Que es MD5 y SHA-1 como hallarlos en Debian
  • Instalacion Linux Mint Debian (LMDE)
  • Dar soporte PHP a servidores web Debian
  • Acondiciona tu Debian Testing con KDE

9 Comentarios


Cargando comentarios espera un momento...
No tienes permisos para comentar.

Para poder comentar necesitas estar Registrado. O.. ya tienes usuario? Logueate!
Ir al cielo
Siguenos en:
Ayuda - Chat - Contacto - Protocolo
Términos y condiciones - Privacidad de datos - Report Abuse - DMCA
GNU Libre © 2018 - Powered by PHPost