To nie jest kopia jak tworzyć wskaźniki jedności? . Szukam wskaźnika systemu, a nie wskaźnika aplikacji.
Backgound:
Z tych dwóch pytań:
- Jak dodać lub manipulować wskaźnikami aplikacji / systemu na ekranie logowania?
- Jak ustawić wskaźnik-sysmonitor jako domyślny wskaźnik na ekranie logowania
Dowiedziałem się, że istnieją dwa rodzaje wskaźników:
- System: dźwięk, klawiatura, aplikacji ... (spróbować:
ps ax | grep indicator
) - Aplikacja: nm-applet, sysmonitor, ... i prawie wszystkie wymienione na liście Jakie wskaźniki aplikacji są dostępne?
Wszystkie wskaźniki aplikacji są obsługiwane / wyświetlane przez aplikację wskaźnikową (systemową). Wskaźniki systemowe są wyświetlane bezpośrednio przez panel Unity.
Oba pytania dotyczą dodawania / usuwania wskaźników z ekranu logowania i blokady. Pierwszą była prosta konfiguracja (w przypadku wskaźników systemowych). Drugim była trudna konfiguracja (w przypadku wskaźników aplikacji), która wymaga modyfikacji źródła usługi panelu (pakietu Unity) dla ekranu blokady i źródła unity-greeter dla ekranu logowania.
W przypadku sysmonitor
mnie było to obejście. Najlepszym rozwiązaniem jest wdrożenie wskaźnika systemowego zamiast wskaźnika aplikacji.
Temat:
Czy istnieje ujednolicony interfejs API dla wskaźników systemowych (najlepiej: Python, a następnie C / C ++)? Proszę odnieść się do oficjalnej dokumentacji.
Większość wskaźników systemowych jest napisanych przy użyciu języka programowania Vala. Czy ktoś mógłby napisać małe demo dla wskaźnika systemu za pomocą Pythona lub C?
Aktualizacja:
Znalazłem kilka linków, które mogą dać impuls:
Na stronie projektu Application Indicators wymieniono łącza do AppIndicator-0.3 API ( C & Python ) używanego do wskaźników aplikacji.
Wymienili także interfejs API Indicate-0.7 ( C & Python ). Co to jest?Jest to kanał przesyłania wiadomości DBus między aplikacjami komputerowymi.Z drugiej strony na stronie projektu Wskaźniki systemowe wspomnieli:
Interfejsy API wskaźników systemowych
Menu Wiadomości za pomocą libindicate.- Menu dźwięku za pomocą libunity.
Wskaźnik daty / godziny za pomocą Evolution-Data-Server
Wydaje się, że wymieniają API danych, a nie API rozwoju wskaźników, jak w przypadku serwera Evolution-Data-Server. Ale nie jestem pewien co do
libindicate ilibunity. Czy ktoś pracował z tymi dwiema bibliotekami?Spróbuj
apt-cache rdepends libunity9 libindicator7 libindicator3-7
sprawdzić, który wskaźnik przekazuje te biblioteki.
Update2: To pozwala aktualizować zainteresowanych użytkowników.
Z tego, co zebrałem do tej pory, oto kolejność możliwych rozwiązań:
libindicator3-7
(wysoki, wiele wskaźników zależy od tego)Znalazłem kilka przykładów testowych w źródle, niektóre fałszywe wskaźniki, które próbowałem, mogą być zainstalowane
/usr/lib/indicators3/7/
, są one udostępniane lib.so
. Mogę wyświetlać je na ekranie logowania i zwykłej sesji, ale nie na ekranie blokady.Istnieją jednak pewne usługi wskaźników testowych, które wydają się podobne do systemu Unity. Jeszcze ich nie próbowałem.
libindicator7
Z tego samego źródła co libindicator3-7, z rdepends:
mate-indicator-applet lxpanel-indicator-applet-plugin
Wydaje się, że służy do tworzenia pojemnika na wskaźniki w panelach.
libunity9
(Niska)Nie ma jeszcze badań
export_action_group
,export_menu_model
) i obiekty (SimpleActionGroup
,Menu
) są wgi.repository.Gio
. Spróbuję napisać jeden w ciągu kilku najbliższych dni.UWAGA: Proszę sprawdzić na dole tego postu, aby wypowiedzieć się na temat tej odpowiedzi.
Nie wiem, czy naprawdę mam jakąkolwiek pomoc, ale mam nadzieję, że ten pomysł może się przydać.
Z tego, co szukałem, różnica we wskaźnikach systemu i aplikacji jest wyraźna. Mając to na uwadze, wprowadzam teraz wątpliwą koncepcję:
Pomysł przyszedł do mnie, patrząc na następujące posty:
https://askubuntu.com/a/234204/408654
https://askubuntu.com/a/42213/408654
Interfejs API Unity wydaje się być zbudowany przede wszystkim do użytku ze wskaźnikami aplikacji, ale zarówno wskaźniki systemowe, jak i wskaźniki aplikacji mogą korzystać z podobnego programowania (język C). Wspomniałeś jednak wcześniej, że te dwa typy wskaźników są obsługiwane przez dwa różne systemy. Jako taki, zacząłem czytać jedno z twoich źródeł:
Jak dodać lub manipulować wskaźnikami aplikacji / systemu na ekranie logowania?
Podstawowa odpowiedź polegała na zastąpieniu już istniejącego użytkownika w celu uzyskania wymaganego dostępu. Zapewniło także rozwiązanie do dodawania i usuwania wszystkich istniejących wskaźników. To ujednolicone rozwiązanie do zarządzania wskaźnikami. Czy można zastąpić domyślnego (wcześniej istniejącego) użytkownika, aby uruchomić / wprowadzić wskaźnik systemu?
W odpowiedzi na tę część zapytania:
Niestety nie ma możliwości użycia interfejsów API wskaźników aplikacji do wskaźników systemowych. W związku z tym moje rozwiązanie jest nieważne :(
źródło