È possibile cambiare l'ordine delle icone nell'applet indicatore?


49

È possibile cambiare l'ordine delle icone mostrate nell'applet indicatore? Con l'indicatore Tomboy, l'indicatore meteorologico, l'indicatore del gestore degli Appunti, gli indicatori Ubuntu One e Dropbox e l'indicatore dello stato della batteria oltre all'indicatore classico Messaggi e all'indicatore del menu audio, la mia applet indicatore diventa un po 'incasinata, l'ordinamento delle icone sarebbe di grande aiuto ...


1
Non una risposta, ma sotto kde (kubuntu), posso posizionare o rimuovere qualsiasi cosa sul desktop e sul pannello, inclusi gli indicatori.
Joe,

Risposte:


29

Gli indicatori di sistema sono in ordine fisso in base alla progettazione. Anche se potrebbe non piacerti l'ordine, semplifica il supporto avendo un ordine fisso (possiamo discutere all'infinito sull'ordine). Gli indicatori delle applicazioni funzionano in modo leggermente diverso, sono progettati in modo che esista un ordine predefinito ma le applicazioni possono regolarlo per la continuità. Ad esempio, se un'applicazione aveva due indicatori che desiderava uno accanto all'altro.

Poiché questo sistema provoca un possibile abuso da parte degli sviluppatori di applicazioni, esiste una serie di sostituzioni nel sistema. La prima è a livello di sistema in modo che possa essere gestita dai pacchetti una volta che la distribuzione ha scoperto che esiste un'applicazione abusiva che può essere riparata per tutti gli utenti. Si trova in:

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

Puoi inserire qualsiasi ID di notifica dello stato e assegnargli un nuovo indice di ordinazione che sarà dovuto al nuovo indice per quell'applicazione. Esiste anche un file di sostituzione per utente che può esistere nella tua home directory su:

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

Spero che questo ti dia un aiuto per adattare il tuo pannello nel modo che preferisci!


Ho ottenuto gli indicatori di sistema elencati nel primo file. Ma non hai una ~/.local/share/indicatorsdirectory. Aiuto!
Charlie

2
Questa risposta è probabilmente obsoleta, non ho questo file ~/.local. Il file at /usr/sharenon contiene voci per tutte le applicazioni degli indicatori e la sua modifica non ha prodotto effetti. Sarebbe bello avere una risposta per 14.04.
Luís de Sousa,

1
Funziona con Ubuntu 14.04, devi solo aggiungere esplicitamente ogni indicatore che stai usando al file. Esegui questo comando per scoprire quali stai utilizzando: 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"/" -f5non funzionerà con Dropbox, poiché l'ID della notifica di stato cambia in base al PID di Dropbox. Di seguito ho aggiunto una risposta per aggiornare il file ordering-override.key in base al PID di Dropbox.
Gruzzles,

Funziona per il 15.04? Ho creato il file .local, ma non lo vedo funzionare. Il file globale originale /usr/shareè presente, il che suggerisce che dovrebbe funzionare. L'analisi di questo file viene registrata da qualche parte? C'è un modo per eseguire il debug se qualcosa va storto?
Jean Jordaan,

@ ted-gould Puoi individuare il codice nella fonte indicatore-applet che rende fisso l'ordine?
Khurshid Alam,

17

Quelli ufficiali di Ubuntu (meteo, ubu-one, batteria, messaggi, io, suono, spegnimento) sono inseriti in codice. Fa schifo. Gli altri dovrebbero prendere il loro ordine usando la legge del primo arrivato, primo servito, precedenza destra-sinistra. A giudicare da questa richiesta di brainstorming / funzionalità , la risposta è: No, non è possibile modificare manualmente l'ordine delle icone tramite la GUI. Ma vedi la risposta di @Ted Gould .


1
Anch'io avevo quell'insetto. Bella scoperta. Grazie.
Scaine,

11

Per modificare la posizione degli Indicatori applicazione nel pannello Unity, è necessario modificare un file chiamato ordering-override.keyfileche si trova in /usr/share/indicator-application. Poiché la modifica di questo file modificherà le impostazioni per tutti gli utenti, è possibile copiarlo ~/.local/share/indicators/application/ordering-override.keyfilee apportare le modifiche solo per l'utente:

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

Ora apri il file eseguendo il seguente comando in un terminale:

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

In questo file dovresti vedere le regole esistenti per l'ordine degli Indicatori di Applicazione sul pannello. Il primo è nm-applete ha un valore di "1", il che significa che sarà il primo indicatore di applicazione da visualizzare sul pannello, da destra a sinistra.

Usando questo come esempio, puoi aggiungere i tuoi Indicatori applicazione e specificare la loro posizione inserendo il loro nome e un numero simile transmission=6che farà apparire l'indicatore dell'applicazione di trasmissione come il sesto indicatore sul pannello (da destra a sinistra), se gli altri 5 indicatori esistono.

Fonte: http://www.webupd8.org/2011/06/how-to-change-application-indicators.html

Ora, nel tuo caso, il ordering-override.keyfilefile dovrebbe apparire così:

[Ordering Index Overrides]
nm-applet=1
My_Weather_Indicator=2
lang_indicator=3
bluetooth_manager=4
indicator_sysmonitor=5
transmission=6

1
@James Questo ovviamente vale anche per gli indicatori forniti dall'applicazione, poiché la trasmissione viene utilizzata come esempio.
Léo Lam,

Funziona per il 15.04? Ho creato il file .local, ma non lo vedo funzionare. Il file globale originale /usr/shareè presente, il che suggerisce che dovrebbe funzionare. L'analisi di questo file viene registrata da qualche parte? C'è un modo per eseguire il debug se qualcosa va storto?
Jean Jordaan,

Dopo kill $(pgrep unity-panel-service)che funziona :-) Ho riavviato dopo aver creato il ordering-override.keyfile, quindi non so perché "ha preso" dopo il riavvio di questo pannello.
Jean Jordaan,

Questo modo di riavviare il pannello root@laptop:~# restart unity-panel-servicenon funziona più:restart: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
Jean Jordaan,

4

Istruzioni per abilitare l'ordinamento dell'indicatore Dropbox

Segui le istruzioni di Ted Gould, quindi se desideri ordinare l'indicatore Dropbox, ecco alcuni altri passaggi:

Nota : se hai modificato il file /usr/share/..., dovrai inserire lo script /etc/rc.local(cercaNota sotto)

Poiché Dropbox aggiunge il PID al nome dell'indicatore e questo cambia ogni volta che si avvia Dropbox, è necessario aggiornare ordering-override.keyfileogni volta che si avvia Dropbox .

Per fare ciò, è possibile aprire un editor di testo, copiare e incollare il seguente script e denominarlo in modo simile start-dropbox.sh. Quindi fai clic con il pulsante destro del mouse, seleziona "Proprietà", vai alla scheda "Autorizzazioni" e seleziona la casella "Consenti l'esecuzione del file come programma" oppure apri un terminale, passa alla cartella in cui hai inserito lo script ed esegui Eseguisudo 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

Ora puoi aprire "Applicazioni di avvio e inserire una nuova voce, usando il percorso completo dello script come" comando "(utilizzando ~ / start-dropbox.sh non funzionerà, devi fare / home / tuonome / start -dropbox.sh).

** Nota : qui è dove aggiungere il percorso completo dello script alla fine di/etc/rc.local

Un passaggio facoltativo è aprire le impostazioni di Dropbox e deselezionare "Avvia dropbox all'avvio del sistema". Non puoi semplicemente modificare il comando per Dropbox che è già nell'elenco Applicazioni di avvio, poiché Dropbox lo sovrascrive ogni volta che si avvia.

Hai finito!

Ecco ~/.local/share/indicators/application/ordering-override.keyfilecome appare il mio :

[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

root@laptop:~# restart unity-panel-service restart: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
Jean Jordaan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.