Dada mi casi insana obsesión por aprovechar al máximo los cada vez más reducidos píxeles verticales de mi pantalla (gracias, wide screen formats) siempre he admirado la idea de integrar los menús de aplicaciones en el panel superior del escritorio. Sí, a lo Mac OS, a lo Unity, preparad los tomates fanboys y haters del ciberuniverso. Sin embargo, ni utilizo software privativo ni me gusta lo más mínimo el ahora moribundo Unity. Y desafortunadamente los vastos repostorios debianitas tampoco cuentan con una alternativa viable (tenemos el topmenu plugin para XFCE y Mate, pero no funciona bien con aplicaciones GTK3). Por suerte, rilian-la-te ha escrito este pequeño applet para sacarnos del apuro. Veamos cómo instalarlo en Debian 9:
1) Instalamos dependencias
A pesar de que en las instrucciones del autor la lista es mucho más pequeña, yo no he sido capaz de compilar el applet sin instalar este puñado de dependencias (todas en repos):
# aptitude install valc valac libbamf3-2 libbamf3-2-dev libbamf3-dev libgtk-3-dev openjdk-8-jdk libxfce4panel-2.0-dev libxconf-0-dev libpeas-1.0-0 dbusmenu-glib-0.4 libpeas-dev libdbusmenu-glib-dev libwnck-3-dev libxfcegui4-dev libxfce4ui-2-dev bamfdaemon libdbusmenu-gtk-dev libdbusmenu-gtk3-dev`
Si además queremos tener soporte para aplicaciones QT:
# aptitude install appmenu-qt
2) Clonamos el repositorio
Podéis crear un directorio específico o clonarlo directamente en vuestra home. Una vez dentro del directorio donde queremos clonar, tecleamos:
$ git clone https://github.com/rilian-la-te/vala-panel-appmenu.git
3) Descargamos los submódulos necesarios
$ git submodule init
$ git submodule update
4) Creamos un directorio específico para compilar el applet
$ mkdir build
$ cd build
5) Compilamos con make e instalamos
Configuramos la compilación:
$ cmake -DENABLE_XFCE=ON -DENABLE_JAYATANA=ON -DENABLE_UNITY_GTK_MODULE=ON -DCMAKE_INSTALL_PREFIX=/usr ..
Donde:
DENABLE_XFCE=ON compila la versión para el panel de XFCE4 (también existe la opción de hacerlo para Mate o para Vala Menu,
DENABLE_JAYATANA=ON compila soporte para aplicaciones Java Swing
DENABLE_UNITY_GTK_MODULE=ON compila el unity-gtk-module, imprescindible salvo que uses Ubuntu
DCMAKE_INSTALL_PREFIX=/usr define donde se va a realizar la instalación
Procedemos a la compilación e instalación:
$ make
# make install
(Instalo como root porque he indicado /usr como directorio de instalación. Podéis instalarlo en cualquier otro directorio sin privilegios de superusuario).
Tip
Para desinstalarlo, desde el propio directorio de instalación basta con teclear:
# xargs rm < install_manifest.txt
6) Configuraciones post-instalación
Editamos /etc/environment para que se ejecute appmenu-gtk-module:
export GTK_MODULES=appmenu-gtk-module
export UBUNTU_MENUPROXY=1
Ocultamos los menús de las aplicaciones individuales para que se muestren en el panel de XFCE:
$ xfconf-query -c xsettings -p /Gtk/ShellShowsMenubar -n -t bool -s true
$ xfconf-query -c xsettings -p /Gtk/ShellShowsAppmenu -n -t bool -s true
Añadimos el applet al panel de XFCE, reiniciamos el servidor gráfico y ¡listo!
Actualización Noviembre 2018: vala-appmenu está en los repositorios de Debian Buster.
Actualización Noviembre 2018 (II): Nos cuenta Diego que DENABLE_UNITY_GTK_MODULE ahora es DENABLE_APPMENU_GTK_MODULE, echad un vistazo al comentario o al repo para más información ¡Gracias Diego!
8 ideas sobre “Compilando un menú global en Debian 9”
Lo acabo de compilar e instalar, si lo combinas con un plugin para xfce4 llamado windowck(botones de ventana en el panel) + el tema gtk arc-osx-darker te quedara aun mas al estilo de MacOS.
Sí, conocía el plugin, gracias por la sugerencia. En realidad lanzo, muevo y cierro las aplicaciones mediante atajos de teclado así que no utilizo los botones de ventanas. De hecho, aunque en la captura no se ve porque la ventana está maximizada (y tengo xfce configurado para que oculte la decoración en ese caso) ni siquiera tengo los botones activos en la ventana, tan sólo el nombre de la aplicación.
Para quien esté interesado, sería más bien un efecto a lo Unity con los botones de ventana (maximizar, minimizar, cerrar) integrados en el panel. Buena cosa para optimizar el espacio vertical, sí.
¡Un saludo!
Gracias por la información, funciona bien aunque tengo una pregunta, ¿qué font es esa? Las que tengo instaladas no se ven tan bien. ¿Es solamente la fuente o hay algún cambio más?
SFNS display con suavizado de bordes y orden de subpixeles RGB. Pero no creo que ninguna de las tres sea la clave. Normalmente lo que más pesa a la hora de ver una tipografía bien definida es la resolución del monitor vs el tamaño, o en otras palabras, la densidad de píxeles. En mi portátil viejo hice mil y una pruebas intentando encontrar la tipografía y font rendering idónea, y aunque conseguí alguna pequeña mejora (puedes echar un vistazo a infinality) cuando realmente noté el cambio es con el nuevo portátil, 1920×1080 en una pantalla de 14″. No digo que necesites esta configuración en particular para tener un renderizado de fuentes decente, simplemente que la densidad de pixeles del panel es lo que marca la diferencia.
Un saludo 😉
Gracias por tu respuesta, he probado y creo que voy a tener que bucear en el renderizado de fuentes y pobar configuraciones desde xresources hasta conseguir el resultado que quiero. Aunque sigo feliz con mi nuevo menú global :p
Buenas, solo quería comentar que acabo de recompilar el appmenu, y algo no funcionaba bien (tenía un script con todos los comandos), por lo que he mirado el repositorio y he visto que lo han actualizado y cambiado algún CFLAG. Si puedes actualizar el post, ahora DENABLE_UNITY_GTK_MODULE es DENABLE_APPMENU_GTK_MODULE. Lo han mejorado ya que ahora cuando estas en el escritorio, ves algo así: «Escritorio Archivos Documentos Musica Video Imagenes».
Todavía tengo que trastear un poco más ya que hay algo que no termina de funcionar.
Saludos
¡Muchas gracias por el aporte, Diego!
Actualizado, ¡gracias por compartirlo! 😉