무슨 일이야
이와 같은 문제는 Unity의 애플리케이션 일치 프레임 워크와 관련이 있습니다. 기술적 세부 사항을 단순화하기 위해 프로그램 창과 응용 프로그램은 우분투와 별개입니다. 우분투는 어떤 응용 프로그램이 특정 창을 소유하고 있는지 '추측해야'합니다. 때로는 추측이 실패하고 실행기에 물음표가 나타납니다.
실패는 다음과 같은 원인 일 수 있습니다.
- BAMF 의 버그 (위에서 언급 한 응용 프로그램 일치 프레임 워크)
- 응용 프로그램 설명 이 잘못되었습니다 (일명 '.desktop'파일).
- 응용 프로그램 설명이 전혀 없습니다. 창을 시작하는 실행 파일에는 기본적으로이 메타 데이터가 없습니다.
질문에 표시된 응용 프로그램 (KeePass2) 에 적절한 버그 추적기에보고 된 유형 1 문제가 있습니다 .
문제의 예
아래 예제는 기술적이며 Ubuntu 실행기에 자신의 응용 프로그램을 올바르게 표시하려는 프로그래머를 대상으로합니다.
문제 3 – 응용 프로그램 설명이 없습니다
애플리케이션을 Unity와 통합하려면 (즉, 대시에서 검색하여 실행기에 배치) 데스크톱 항목이 있어야합니다. 그러한 항목이 배치되고 /usr/share/applications/
, /usr/local/share/applications/
그리고 $HOME/.local/share/applications/
(후자의 두 타사 소프트웨어되고, 시스템 전체 사용자 전용 각각). .desktop
확장명으로 끝나고 다음 기본 형식을 따릅니다.
[Desktop Entry]
Type=Application
Name=My Application's Name
Icon=/file/path/of/my/icon
Exec=/file/path/of/my/executable
이 항목은 Exec
실행 파일 을 호출하여 프로그램을 시작합니다 . 때마다 그 프로그램에서 표시하는 창이나 대화, 유니티는 실행이 응용 프로그램 설명에 "속"통지하고, 주어진 사용 Name
하고 Icon
런처에서.
이것은 기본적인 예입니다. 공식 사양은 많은 고급 기능을 포함한다.
문제 2 – 잘못된 응용 프로그램 설명
my_app.desktop
유효한 응용 프로그램 디렉토리에 있다고 가정 하지만 다음을 수행하십시오.
/file/path/of/my/icon
파일 시스템에 존재하지 않습니다.
/file/path/of/my/icon
이미지가 아닙니다.
- 항목이 잘못된 구문 또는 유효하지 않은 태그를 사용합니다.
위의 경우 우분투는 실행기에 응용 프로그램 창을 제대로 나열 할 수 없습니다.
문제 1 – BAMF의 버그
Ubuntu 11.10부터 BAMF에는 올바른 응용 프로그램 일치를 방해하는 많은 버그가 있습니다. 일반적인 (임시) 함정에는 다음이 포함됩니다.
Exec
수있는 Being 경로 심볼릭 링크를 일반 파일이 아닌
- 실행 파일은 기본 실행 파일을 시작하는 스크립트입니다.
이러한 경우 프로그래머는 기호 링크 추상화 제거 또는 실행 파일에 직접 링크와 같은 해결 방법을 사용할 수 밖에 없습니다. 이들 중 어느 것도 데스크탑 엔트리 사양 자체에 필요하지 않습니다.