Czy można zmienić kolejność ikon w aplecie wskaźników?

49

Czy można zmienić kolejność ikon wyświetlanych w aplecie wskaźników? Ze wskaźnikiem Tomboy, wskaźnikiem pogody, wskaźnikiem zarządzania schowkiem, wskaźnikami Ubuntu One i Dropbox oraz wskaźnikiem stanu baterii oraz klasycznym wskaźnikiem Wiadomości i menu Dźwięku, mój aplet wskaźnika nieco się popsuł, sortowanie ikon bardzo by pomogło ...

plopp
źródło
1
Nie odpowiedź, ale pod KDE (Kubuntu) mogę umieścić lub usunąć prawie wszystko na pulpicie i panelu, włączając wskaźniki.
Joe

Odpowiedzi:

29

Wskaźniki systemowe są według projektu w ustalonej kolejności. Chociaż zamówienie może Ci się nie podobać, ułatwia ono obsługę, mając ustalone zamówienie (możemy spierać się o zamówienie bez końca). Wskaźniki aplikacji działają nieco inaczej, są zaprojektowane tak, aby istniała domyślna kolejność, ale aplikacje mogą ją dostosować pod kątem ciągłości. Na przykład, jeśli aplikacja ma dwa wskaźniki, które chce obok siebie.

Ponieważ ten system prowadzi do możliwego nadużycia przez twórców aplikacji, w systemie istnieje zestaw zastąpień. Pierwszy znajduje się na poziomie systemu, dzięki czemu można nim zarządzać za pomocą pakietów, gdy dystrybucja dowie się, że istnieje nadużycie, które można naprawić dla wszystkich użytkowników. Znajduje się na:

   /usr/share/indicator-application/ordering-override.keyfile

Możesz tam wstawić dowolny identyfikator powiadamiającego o stanie i nadać mu nowy indeks porządkowy, ponieważ będzie to nowy indeks dla tej aplikacji. W twoim katalogu domowym znajduje się również plik zastępowania poszczególnych użytkowników:

  ~/.local/share/indicators/application/ordering-override.keyfile

Mamy nadzieję, że pomoże ci to w dostosowaniu panelu do preferencji!

Ted Gould
źródło
Mam wskaźniki systemowe wymienione w pierwszym pliku. Ale nie mam ~/.local/share/indicatorskatalogu. Wsparcie!
charlie
2
Ta odpowiedź jest prawdopodobnie nieaktualna, nie mam takiego pliku ~/.local. Plik at /usr/sharenie zawiera wpisów dla wszystkich aplikacji wskaźników, a zmiana go nie wywołała żadnych efektów. Byłoby miło mieć odpowiedź na 14.04.
Luís de Sousa
1
Działa z Ubuntu 14.04, wystarczy jawnie dodać każdy wskaźnik, którego używasz do pliku. Uruchom to polecenie, aby dowiedzieć się, których używasz: dbus-send --type=method_call --print-reply --dest=com.canonical.indicator.application /com/canonical/indicator/application/service com.canonical.indicator.application.service.GetApplications | grep "object path" | sed 's/_/-/g' | cut -d"/" -f5Nie będzie to jednak działać z Dropbox, ponieważ identyfikator powiadomienia o statusie zmienia się na podstawie PID Dropbox. Dodałem odpowiedź poniżej, aby zaktualizować plik zamawiania-override.key na podstawie PID Dropbox.
Gruzzles
Czy to działa na 15.04? Plik został utworzony .local, ale nie widzę, aby działał. Dostępny jest oryginalny plik globalny /usr/share, co sugeruje, że powinien on działać. Czy parsowanie tego pliku jest logowane gdziekolwiek? Czy istnieje sposób debugowania, jeśli coś pójdzie nie tak?
Jean Jordaan,
@ ted-gould Czy potrafisz wskazać kod w źródle apletu wskaźnika, dzięki czemu porządek jest ustalony?
Khurshid Alam
17

Oficjalne ubuntu (pogoda, ubu-one, bateria, wiadomości, ja, dźwięk, wyłączenie) są na stałe zapisane. Szkoda Pozostali powinni przyjąć porządek zgodnie z prawem kto pierwszy ten lepszy, pierwszeństwo prawo-lewo. Sądząc po tym żądaniu burzy mózgów / funkcji , odpowiedź brzmi: nie, nie można ręcznie zmienić kolejności ikon za pomocą interfejsu GUI. Ale zobacz odpowiedź @Teda Goulda .

djeikyb
źródło
1
Ja też miałem ten błąd. Niezłe znalezisko. Dzięki.
Scaine
11

Aby zmienić pozycję wskaźników aplikacji w panelu Unity, musisz edytować plik o nazwie, ordering-override.keyfilektóry znajduje się pod /usr/share/indicator-application. Ponieważ edycja tego pliku zmieni ustawienia wszystkich użytkowników, możesz go skopiować ~/.local/share/indicators/application/ordering-override.keyfilei wprowadzić zmiany tylko dla swojego użytkownika:

mkdir -p ~/.local/share/indicators/application
cp /usr/share/indicator-application/ordering-override.keyfile ~/.local/share/indicators/application/

Teraz otwórz plik, uruchamiając następujące polecenie w terminalu:

gedit ~/.local/share/indicators/application/ordering-override.keyfile

W tym pliku powinieneś zobaczyć istniejące reguły dotyczące kolejności wskaźników aplikacji na panelu. Pierwszy jest nm-appleti ma wartość „1”, co oznacza, że ​​będzie to pierwszy wskaźnik aplikacji wyświetlany na panelu, od prawej do lewej.

Korzystając z tego przykładu, możesz dodać własne wskaźniki aplikacji i określić ich pozycję, wprowadzając ich nazwę i liczbę transmission=6, dzięki której wskaźnik aplikacji transmisji pojawi się jako szósty wskaźnik na panelu (od prawej do lewej), jeśli istnieje 5 innych wskaźników.

Źródło: http://www.webupd8.org/2011/06/how-to-change-application-indicators.html

Teraz w twoim przypadku ordering-override.keyfileplik powinien wyglądać tak:

[Ordering Index Overrides]
nm-applet=1
My_Weather_Indicator=2
lang_indicator=3
bluetooth_manager=4
indicator_sysmonitor=5
transmission=6
Radu Rădeanu
źródło
1
@James Oczywiście dotyczy to również wskaźników dostarczanych przez aplikację, ponieważ jako przykład zastosowano Transmisję.
Léo Lam
Czy to działa na 15.04? Plik został utworzony .local, ale nie widzę, aby działał. Dostępny jest oryginalny plik globalny /usr/share, co sugeruje, że powinien on działać. Czy parsowanie tego pliku jest logowane gdziekolwiek? Czy istnieje sposób debugowania, jeśli coś pójdzie nie tak?
Jean Jordaan,
Po kill $(pgrep unity-panel-service)tym to działa :-) Uruchomiłem ponownie po utworzeniu ordering-override.keyfile, więc nie wiem, dlaczego to „zabrało” po ponownym uruchomieniu tego panelu.
Jean Jordaan,
Ten sposób ponownego uruchomienia panelu root@laptop:~# restart unity-panel-servicejuż nie działa:restart: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
Jean Jordaan
4

Instrukcje dotyczące włączania sortowania wskaźnika Dropbox

Postępuj zgodnie z instrukcjami Teda Goulda, jeśli chcesz posortować wskaźnik Dropbox, oto kilka dodatkowych kroków:

Uwaga : Jeśli edytowałeś plik /usr/share/..., będziesz musiał umieścić skrypt w /etc/rc.local(poszukajUwaga poniżej)

Ponieważ Dropbox dołącza PID do nazwy wskaźnika, i zmienia się to przy każdym uruchomieniu Dropbox, musisz aktualizować za ordering-override.keyfilekażdym razem, gdy Dropbox się uruchamia.

Aby to zrobić, możesz otworzyć edytor tekstu, skopiować i wkleić poniższy skrypt i nazwać go jakoś start-dropbox.sh. Następnie albo kliknij prawym przyciskiem myszy, wybierz „właściwości”, przejdź do zakładki „uprawnienia” i zaznacz pole „zezwól na uruchamianie pliku jako programu” lub otwórz terminal, przejdź do folderu, w którym umieścisz skrypt i uruchom uruchomsudo chmod 755 ./start-dropbox.sh

#!/bin/bash
#Disclaimer: This script is intended for use with Ubuntu 14.04. You alone are responsible any consequence resulting from its use.
#The purpose of this script is to start dropbox, update the keyfile, and restart the indicator panel.

#Start dropbox if not already started (for some reason pgrep didn't work)
[[ $(ps aux | grep dropbox | grep dist | awk '{print $2 }') = "" ]] && dropbox start -i

#If the override file exists
if [[ -e ~/.local/share/indicators/application/ordering-override.keyfile ]]
then
    while [ "$(ps aux | grep dropbox | grep dist | awk '{print $2 }')" = "" ]; do
        sleep 1s
    done
    sleep 5s #dropbox creates several PIDs, so wait a bit before continuing
    sed -e "s/dropbox-client-.*=/dropbox-client-$(ps aux | grep dropbox | grep dist | awk '{print $2 }')=/g" -i ~/.local/share/indicators/application/ordering-override.keyfile
    restart unity-panel-service
fi

Teraz możesz otworzyć „Aplikacje startowe i wprowadzić nowy wpis, używając pełnej ścieżki do skryptu jako„ polecenia ”(użycie ~ / start-dropbox.sh nie zadziała, musisz zrobić / home / twoja nazwa / start -dropbox.sh).

** Uwaga : tutaj należy dodać pełną ścieżkę skryptu na końcu/etc/rc.local

Jednym z opcjonalnych kroków jest otwarcie ustawień Dropbox i odznaczenie „Uruchom Dropbox przy uruchamianiu systemu”. Nie możesz po prostu zmienić polecenia Dropbox, które jest już na liście aplikacji startowych, ponieważ Dropbox zastępuje to przy każdym uruchomieniu.

Jesteś skończony!

Oto jak ~/.local/share/indicators/application/ordering-override.keyfilewygląda mój :

[Ordering Index Overrides]
multiload=13
My-Weather-Indicator=12
redshift=11
Diodon=10
Chars=9
indicator-brightness=8
dropbox-client-24651=7
nm-applet=6
gnome-power-manager=5
ibus=4
gst-keyboard-xkb=3
gsd-keyboard-xkb=2
chrome-app-indicator-1=1
Gruzzles
źródło
root@laptop:~# restart unity-panel-service restart: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
Jean Jordaan,