Qué esta pasando
Problemas como este se relacionan con el marco de coincidencia de aplicaciones de Unity. Para simplificar los detalles técnicos, las ventanas del programa y las aplicaciones son dos cosas separadas para Ubuntu. Ubuntu necesita "adivinar" qué aplicación posee una ventana en particular. Y a veces esa suposición falla, y aparece un signo de interrogación en el lanzador.
La falla puede deberse a:
- Un error en BAMF (el marco de coincidencia de aplicaciones mencionado anteriormente).
- Una descripción de aplicación defectuosa (también conocido como archivo '.desktop').
- La falta de una descripción de la aplicación en absoluto. Los ejecutables que ejecutan ventanas no tienen estos metadatos inherentemente.
La aplicación que se muestra en la pregunta (KeePass2) sufre un problema de tipo 1 que se ha informado al rastreador de errores apropiado .
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, se pueda buscar en el Tablero y se coloque en el iniciador, debe tener una entrada de escritorio. Estas entradas se colocan en el /usr/share/applications/
, /usr/local/share/applications/
y $HOME/.local/share/applications/
(siendo los dos últimos para software de terceros, de todo el sistema y usuario de sólo respectivamente). Terminan con una .desktop
extensión 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 Exec
ejecutable. Siempre que ese programa muestre una ventana o cuadro de diálogo, Unity notará que su ejecutable "pertenece" a la descripción de esta aplicación, y usará el dado Name
y Icon
en el iniciador.
Este es un ejemplo básico. La especificación formal cubre muchas características avanzadas.
Problema 2: descripción de la aplicación defectuosa
Supongamos que my_app.desktop
existe en un directorio de aplicaciones 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 usa una sintaxis incorrecta o etiquetas invá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 impiden la correcta coincidencia de aplicaciones. Las dificultades comunes (temporales) incluyen:
- La
Exec
ruta 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 usar 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.