¿Por qué algunas aplicaciones abiertas aparecen como "signos de interrogación" en el iniciador de Unity?

22

Tengo un problema con un par de programas que tienen lanzadores en la unidad, pero luego crea un ícono separado después del lanzamiento. ¿Es posible que el iniciador rastree las ventanas que genera para organizarse mejor? ¿O es esto un error en la unidad en sí?

Puede que no importe, pero este programa específico es un programa mono, y el ícono engendrado aparece como el panel.

    
pregunta Andrew Redd 26.10.2011 - 17:01

3 respuestas

23

Qué está pasando

Problemas como este se relacionan con el marco de coincidencia de aplicaciones de Unity. Para simplificar los detalles técnicos, las ventanas de programas y las aplicaciones son dos cosas separadas para Ubuntu. Ubuntu necesita 'adivinar' qué aplicación posee una ventana en particular. Y a veces esa conjetura falla, y aparece un signo de interrogación en el iniciador.

La falla puede deberse a:

  1. Un error en BAMF (el marco de compatibilidad de aplicaciones mencionado anteriormente).
  2. Una descripción de la aplicación (también conocida como archivo '.desktop') defectuosa.
  3. La falta de una descripción de aplicación en absoluto. Los ejecutables que inician Windows no tienen estos metadatos de forma inherente.

La aplicación que se muestra en la pregunta (KeePass2) sufre un problema de tipo 1 que se ha notificado al rastreador de errores correspondiente .

Ejemplos de problemas

Los siguientes ejemplos son técnicos, dirigidos a programadores que desean que su propia aplicación se muestre correctamente en el iniciador de Ubuntu.

Problema 3: sin descripción de la aplicación

Para que una aplicación se integre con Unity, es decir, que se pueda buscar en el Tablero y colocarla en el iniciador, debe tener una entrada de escritorio. Tales entradas se colocan en /usr/share/applications/ , /usr/local/share/applications/ y $HOME/.local/share/applications/ (las últimas dos son para software de terceros, en todo el sistema y solo para el usuario, respectivamente). Finalizan con una extensión .desktop y siguen este formato básico:

[Desktop Entry]
Type=Application
Name=My Application's Name
Icon=/file/path/of/my/icon
Exec=/file/path/of/my/executable

Esta entrada inicia un programa llamando al ejecutable Exec . Siempre que ese programa muestre una ventana o diálogo, Unity se dará cuenta de que su ejecutable "pertenece" a la descripción de esta aplicación, y usará el Name y Icon dados en el iniciador.

Este es un ejemplo de barebones. La especificación formal cubre muchas funciones avanzadas.

Problema 2: descripción de la aplicación defectuosa

Supongamos que my_app.desktop existe en un directorio de aplicación válido, pero:

  • /file/path/of/my/icon no existe en el sistema de archivos.
  • /file/path/of/my/icon no es una imagen.
  • la entrada utiliza una sintaxis incorrecta o etiquetas no válidas.

En cualquiera de los casos anteriores, Ubuntu no podrá enumerar correctamente la ventana de la aplicación en el iniciador.

Problema 1: un error en BAMF

A partir de Ubuntu 11.10, BAMF tiene una serie de errores que impide la correcta coincidencia de aplicaciones. Las trampas comunes (temporales) incluyen:

  • La ruta Exec es un enlace simbólico en lugar de un archivo normal
  • El ejecutable es un script que inicia el ejecutable principal.

En estos casos, los programadores no tienen más opción que utilizar una solución alternativa, como eliminar la abstracción del enlace simbólico o vincular directamente al ejecutable. Ninguno de estos es requerido por la especificación de entrada de escritorio en sí.

    
respondido por el Jjed 07.11.2011 - 02:12
1

La ventana solo puede coincidir con la aplicación si se ha establecido la propiedad WM_CLASS. Para hacer esto en X11, usa:

XSetClassHint( display, window, &class_hints );

Necesita pasar un puntero a una estructura XClassHint con el campo 'res_name' y 'res_class'.

    
respondido por el Bram 10.08.2013 - 06:14
-1

Tuve algunos problemas con 16.04, incluidos los iconos en gris y, a veces, el panel táctil se volvía errático (Acer V15 nitro) y el centro de software (tal vez otros iconos) no se abría desde el icono (solo desde un terminal) . Encontré una recomendación en algún lugar para desinstalar y volver a instalar el software gnome. Desde que hice esto, todo el sistema ha sido 100% estable, no hay iconos más grises y funciona perfectamente. Parecía aterrador inicialmente cuando reinicié después de este cambio, muchos mensajes del sistema al reiniciar, así que hágalo bajo su propio riesgo.

sudo apt-get autoremove gnome-software && sudo apt-get install gnome-software
    
respondido por el Steve 21.08.2016 - 07:50

Lea otras preguntas en las etiquetas