나는 Firefox를 사용하여 일부 웹 응용 프로그램을 "독립형"으로 실행하고 있습니다. 해당 응용 프로그램에 맞는 Firefox를 사용하여 새 프로필을 만들고, 첫 번째 페이지를 설정하고, 로그인을 수행하고, 특정 요구 사항에 따라 UI를 사용자 정의합니다.
그런 다음 다음을 수행하여 해당 웹 앱의 인스턴스를 빠르게 시작할 수 있습니다.
firefox --no-remote -P My_app_profile the_app_url
좀 더 멋지게 만들기 위해 my_web_app.desktop
파일을 만들어서 에 넣고 ~/.local/share/application
즐겨찾기로 해두었기 때문에 그놈쉘 사이드바에서 빠르게 실행할 수 있었습니다.
문제는 응용 프로그램을 실행한 후파이어폭스내 앱이 아닌 실행 중입니다. 예를 들어 Trello에 대한 바로가기를 만들었으나 실행한 후에는 다음과 같은 내용이 표시됩니다.
이제 의미가 있습니다. 왜냐하면그것은Firefox가 실행 중인데 대신 내 응용 프로그램이 강조 표시되어 다른 인스턴스가 실행되지 않는 것처럼 Firefox 아이콘을 무료로 사용할 수 있게 하고 싶습니다.
나는 gnome이 실행 파일 이름에 따라 아이콘을 강조 표시할 수 있다고 생각했지만 Firefox에 대한 간단한 심볼릭 링크는 이름 변경을 트리거하지 않습니다(즉, link /usr/bin/firefox /usr/bin/my_app_firefox
여전히 Firefox로 계산됩니다).
이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 나는 그놈 쉘 3.18.2를 사용하고 있습니다.
편집 1
다음은 trello.desktop 파일의 예입니다. 저는 옵션에 대한 전문가가 아니기 때문에 뭔가 크게 잘못된 부분이 있을 것 같습니다... 하지만 그랬더라도 바람직하지 않은 동작을 유발할 것으로 보이지는 않습니다.
[Desktop Entry]
Version=1.0
Name=Trello (FF)
GenericName=Trello Dashboards
Comment=Trello in FireFox
Exec=firefox --no-remote -P App_Trello http://trello.com
Icon=trello
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
Categories=Network;WebBrowser;
Keywords=web;browser;internet;
X-Desktop-File-Install-Version=0.22
편집 2
그래서 내용을 확인하고 싶었어요그놈 쉘 소스 코드어떻게 이런 일이 일어날 수 있는지 알아보기 위해. 나는 그것을 에서 발견했습니다.대시각 항목은 일부 항목과 연관되어 있습니다.쉘 앱, 분명히 내 애플리케이션의 ID가 고유한지 확인하고 싶습니다.
거울(Alt+F2 lg)을 사용하여 현재 실행 중인 애플리케이션의 이름이 "firefox.desktop"인 것을 확인할 수 있습니다.
appSys = Shell.AppSystem.get_default()
ll = appSys.get_running()
ll[0].get_id() // firefox.desktop (0 is the ID of the firefox app in my case)
trello.desktop 애플리케이션을 실행하면 get_running()
메서드가 동일한 수의 항목을 반환하므로 내 애플리케이션은 새 항목을 생성하지 않으며 고유 ID가 있다는 가설이 확인된 것 같습니다.
그래서 나는GAppInfo
소스 코드ID가 무엇인지 확인하라는 메시지가 표시됩니다.xdg 메뉴 사양. 그리고 거기에서 나는찾다이것:
데스크탑 파일의 ID를 확인하려면 데스크탑 파일이 설치된 $XDG_DATA_DIRS 구성 요소에 대한 상대 경로를 만들고 "applications/" 접두사를 제거한 다음 '/'를 '-'로 바꿉니다.
내 .desktop 파일은 에 있었는데 $HOME/.local/share/applications
, 내 .desktop 파일은 없었습니다 $XDG_DATA_DIRS
.
trello.deskop 파일을 해당 경로의 디렉터리로 이동하고 셸을 다시 시작했지만 응용 프로그램은 여전히 로 표시되므로 firefox.desktop
ID는 여전히 동일하며 실제로 응용 프로그램은 여전히 다른 Firefox 창과 그룹화되어 있습니다.
어떠한 제안?
답변1
따라서 두 번째 편집 내용은 올바르지 않은 것 같습니다. GNOME Shell이 응용 프로그램 그룹화를 결정하는 방식은 제가 설명한 것과 다릅니다.
IRC gnome-shell 채널에 문의한 후 사용자 halfline이 애플리케이션을 대시 아이콘으로 그룹화하는 정책을 제공했습니다.
데스크톱 파일 ID와 일치하는 창의 _GTK_APPLICATION_ID 속성 또는 데스크톱 파일 ID와 일치하는 WM_CLASS 또는 시작된 데스크톱 파일과 일치하는 _NET_WM_PID 또는 창의 WM_CLASS와 일치하는 데스크톱 파일의 StartupWMClass
--class
그는 또한 firefox WM_CLASS를 변경하는 것이 가능할 수도 있다고 제안했으며, 이를 변경할 수 있는 Firefox용 플래그가 있으므로 그의 말이 맞습니다 .
예는 다음과 같습니다.
$ firefox &
$ xprop WM_CLASS
WM_CLASS(STRING) = "Navigator", "Firefox"
그 플래그를 사용하면
$ firefox --class "Trello" &
$ xprop WM_CLASS
WM_CLASS(STRING) = "Navigator", "Trello"
데스크톱 파일 ID와 일치하면 됩니다. 이제 아이콘이 올바르게 그룹화되었습니다.
또한 Epiphany는 데스크톱 앱을 생성하고 기본 브라우저로 링크를 올바르게 처리하는 기능을 지원하므로 원래 목적으로는 Firefox보다 훨씬 좋습니다.