Unity 실행기에서 열려있는 일부 애플리케이션이 "물음표"로 나타나는 이유는 무엇입니까?


22

발사기가 통일 된 두 개의 프로그램에 문제가 있지만 실행 후 별도의 아이콘을 만듭니다. 실행기가 더 잘 구성하기 위해 생성 된 창을 추적 할 수 있습니까? 아니면 이것이 유니티 자체의 버그입니까?

여기에 이미지 설명을 입력하십시오

중요하지는 않지만이 특정 프로그램은 모노 프로그램이며 생성 된 아이콘이 패널로 표시됩니다.


@ j-johan-edwards : 어떤 프로그램에 연결할지 잘 모르겠지만 소프트웨어 센터에서 KeePass2를 사용할 수 있습니다.
Andrew Redd

경우 StartupWMClass에 따라 응용 프로그램의 데스크톱 시작 관리자에서 속성 을 설정하여이를 완화 할 수 있습니다 . askubuntu.com/questions/36434/…
Glutanimate

답변:


23

무슨 일이야

이와 같은 문제는 Unity의 애플리케이션 일치 프레임 워크와 관련이 있습니다. 기술적 세부 사항을 단순화하기 위해 프로그램 창과 응용 프로그램은 우분투와 별개입니다. 우분투는 어떤 응용 프로그램이 특정 창을 소유하고 있는지 '추측해야'합니다. 때로는 추측이 실패하고 실행기에 물음표가 나타납니다.

실패는 다음과 같은 원인 일 수 있습니다.

  1. BAMF 의 버그 (위에서 언급 한 응용 프로그램 일치 프레임 워크)
  2. 응용 프로그램 설명 이 잘못되었습니다 (일명 '.desktop'파일).
  3. 응용 프로그램 설명이 전혀 없습니다. 창을 시작하는 실행 파일에는 기본적으로이 메타 데이터가 없습니다.

질문에 표시된 응용 프로그램 (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 경로 심볼릭 링크를 일반 파일이 아닌
  • 실행 파일은 기본 실행 파일을 시작하는 스크립트입니다.

이러한 경우 프로그래머는 기호 링크 추상화 제거 또는 실행 파일에 직접 링크와 같은 해결 방법을 사용할 수 밖에 없습니다. 이들 중 어느 것도 데스크탑 엔트리 사양 자체에 필요하지 않습니다.


하나 더. 및에 .desktop동일한 앱의 파일을 둘 수 있습니다 . 아이콘이 지정되지 않은 경우에도 첫 번째 파일이 두 번째 파일을 대체합니다. ~/.local/share/applications//usr/share/applications/

1

WM_CLASS 속성이 설정된 경우에만 창을 응용 프로그램과 일치시킬 수 있습니다. X11에서이를 수행하려면 다음을 사용하십시오.

XSetClassHint( display, window, &class_hints );

'res_name'및 'res_class'필드가있는 XClassHint 구조에 포인터를 전달해야합니다.


-1

회색으로 표시된 아이콘을 포함하여 16.04와 관련된 몇 가지 문제가 있었으며 때로는 터치 패드가 불규칙해질 수 있습니다 (Acer V15 nitro). 또한 소프트웨어 센터 (다른 아이콘도)가 아이콘에서 열리지 않습니다 (터미널 명령에서만). 그놈 소프트웨어를 제거하고 다시 설치하라는 권장 사항이 있습니다. 이 작업을 수행 한 이후 전체 시스템이 100 % 안정적이되어 더 이상 회색으로 표시되지 않고 완벽하게 작동합니다. 이 변경 후 재부팅 할 때 처음에는 무섭게 보였습니다-재부팅 할 때 많은 시스템 메시지가 발생하므로 위험을 감수하십시오.

sudo apt-get autoremove gnome-software && sudo apt-get install gnome-software

2
이것은 질문과 완전히 관련이 없습니다.
Martin Thornton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.