TeamSpeak 3을 설치 $HOME/Applications
하고 사용자 정의 데스크탑 파일을 만들었습니다.
[Desktop Entry]
Name=TeamSpeak 3
Comment=VOIP Client
Path=/home/tomas/Applications/TeamSpeak3-Client-linux_amd64
Exec=bash ts3client_runscript.sh
Icon=/home/tomas/Pictures/icons/teamspeak-3-icon.png
Terminal=false
Type=Application
이는 Gnome 3에서 완벽하게 표시되며 앱을 사이드바에 고정할 수 있습니다.
그러나 TeamSpeak를 시작하기 위해 아이콘을 클릭하면 시작된 응용 프로그램은 내가 누른 아이콘에 바인딩되는 대신 새 아이콘을 생성합니다.
왜 이런 일이 발생합니까? 어떤 실행 중인 애플리케이션이 어떤 사이드바 아이콘에 바인딩되는지 결정하기 위해 Gnome 3에서는 어떤 메커니즘을 사용합니까? 이 일을 하기 위해 제가 할 수 있는 일이 있나요?
내 첫 번째 추측은 실제 애플리케이션이 직접 실행되지 않고 bash 스크립트를 통해 실행되기 때문이라고 생각합니다. 응용 프로그램을 실행 프로그램의 직접적인 하위 항목으로 만들기 위해 실행 스크립트에 추가하려고 시도했지만 exec
아무런 차이가 없었습니다.
답변1
.desktop 파일에 다음을 추가하여 문제를 해결할 수 있었습니다.
StartupWMClass=<GnomeShellTooltipOfTheSecondIcon>
xprop을 사용하여 WM_CLASS를 이해할 수도 있습니다.