¿Es posible cambiar el orden de los íconos en el applet indicador?

49

¿Es posible cambiar el orden de los iconos que se muestran en el applet indicador? Con el indicador Tomboy, el indicador del tiempo, el indicador del administrador del portapapeles, los indicadores Ubuntu One y Dropbox y un indicador del estado de la batería, además del indicador clásico de mensajes y el indicador del menú de sonido, mi Applet indicador se complica un poco, ordenar los iconos ayudaría mucho ...

plopp
fuente
1
No es una respuesta, pero bajo kde (kubuntu), puedo colocar o eliminar casi cualquier cosa en el escritorio y el panel, incluidos los indicadores.
Joe

Respuestas:

29

Los indicadores del sistema están en un orden fijo por diseño. Si bien es posible que no le guste el pedido, facilita el soporte al tener un pedido fijo (podemos discutir sobre el pedido sin fin). Los indicadores de la aplicación funcionan de manera un poco diferente, están diseñados para que haya un orden predeterminado, pero las aplicaciones pueden ajustarlo para la continuidad. Por ejemplo, si una aplicación tenía dos indicadores que quería uno al lado del otro.

Debido a que este sistema conduce a un posible abuso por parte de los desarrolladores de aplicaciones, hay un conjunto de anulaciones en el sistema. El primero es a nivel del sistema para que pueda ser administrado por paquetes una vez que la distribución descubra que hay una aplicación abusiva que puede ser reparada para todos los usuarios. Está ubicado en:

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

Puede poner cualquier ID de notificador de estado allí y darle un nuevo índice de orden que será el nuevo índice para esa aplicación. También hay un archivo de anulación por usuario que puede existir en su directorio de inicio en:

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

¡Espero que eso te ayude a ajustar tu panel de la manera que prefieras!

Ted Gould
fuente
Obtuve los indicadores del sistema enumerados en el primer archivo. Pero no tengo un ~/.local/share/indicatorsdirectorio. ¡Ayuda!
Charlie
2
Es probable que esta respuesta esté desactualizada, no tengo dicho archivo ~/.local. El archivo en /usr/shareno contiene entradas para todas las aplicaciones de indicador y cambiarlo no produjo efectos. Sería bueno tener una respuesta para 14.04.
Luís de Sousa
1
Funciona con Ubuntu 14.04, solo tiene que agregar explícitamente todos los indicadores que está utilizando al archivo. Ejecute este comando para averiguar cuáles está utilizando: 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"/" -f5sin embargo, no funcionará con Dropbox, porque la ID del notificador de estado cambia según el PID de Dropbox. Agregué una respuesta a continuación para actualizar el archivo ordering-override.key basado en el PID de Dropbox.
Gruzzles
¿Esto funciona para 15.04? He creado el archivo .local, pero no lo veo funcionando. El archivo global original en /usr/shareestá presente, lo que sugiere que debería funcionar. ¿El análisis de este archivo se registra en alguna parte? ¿Hay alguna forma de depurar si algo va mal?
Jean Jordaan
@ ted-gould ¿Puede identificar el código en la fuente del indicador-applet que hace que el pedido sea fijo?
Khurshid Alam
17

Los ubuntu oficiales (clima, ubu-one, batería, mensajes, yo, sonido, apagado) están codificados en su lugar. Apestar. Los otros deben tomar su orden usando la ley de orden de llegada, precedencia derecha-izquierda. A juzgar por esta lluvia de ideas / solicitud de características , la respuesta es: No, no puede cambiar manualmente el orden de los iconos a través de la interfaz gráfica de usuario. Pero vea la respuesta de @Ted Gould .

djeikyb
fuente
1
Yo también ... ese error. Buen hallazgo Gracias.
Scaine
11

Para cambiar la posición de los Indicadores de aplicación en el panel de Unity, debe editar un archivo llamado ordering-override.keyfileque se encuentra debajo /usr/share/indicator-application. Como editar este archivo cambiará la configuración de todos los usuarios, puede copiarlo ~/.local/share/indicators/application/ordering-override.keyfiley hacer los cambios solo para su usuario:

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

Ahora abra el archivo ejecutando el siguiente comando en una terminal:

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

En este archivo, debería ver las reglas existentes para el orden de los Indicadores de aplicación en el panel. El primero es nm-applety tiene un valor de "1", lo que significa que será el primer indicador de aplicación que se mostrará en el panel, de derecha a izquierda.

Usando esto como ejemplo, puede agregar sus propios Indicadores de aplicación y especificar su posición ingresando su nombre y un número como el transmission=6que hará que el Indicador de aplicación de transmisión aparezca como el sexto indicador en el panel (de derecha a izquierda), si Los otros 5 indicadores existen.

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

Ahora, en su caso, el ordering-override.keyfilearchivo debería verse así:

[Ordering Index Overrides]
nm-applet=1
My_Weather_Indicator=2
lang_indicator=3
bluetooth_manager=4
indicator_sysmonitor=5
transmission=6
Radu Rădeanu
fuente
1
@James Esto obviamente también se aplica a los indicadores proporcionados por la aplicación, ya que la Transmisión se usa como ejemplo.
Léo Lam
¿Esto funciona para 15.04? He creado el archivo .local, pero no lo veo funcionando. El archivo global original en /usr/shareestá presente, lo que sugiere que debería funcionar. ¿El análisis de este archivo se registra en alguna parte? ¿Hay alguna forma de depurar si algo va mal?
Jean Jordaan
Después de que kill $(pgrep unity-panel-service)esto funciona :-) He reiniciado después de crear el ordering-override.keyfile, así que no sé por qué "tomó" después de reiniciar este panel.
Jean Jordaan
Esta forma de reiniciar el panel root@laptop:~# restart unity-panel-serviceya no funciona:restart: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
Jean Jordaan
4

Instrucciones para habilitar la clasificación del indicador de Dropbox

Siga las instrucciones de Ted Gould y, si desea ordenar el indicador de Dropbox, aquí hay algunos pasos más:

Nota : Si editó el archivo /usr/share/..., deberá colocar el script /etc/rc.local(busqueNota abajo)

Debido a que Dropbox agrega el PID al nombre del indicador, y esto cambia cada vez que se inicia Dropbox, debe actualizar ordering-override.keyfilecada vez que se inicia Dropbox .

Para hacer esto, puede abrir un editor de texto, copiar y pegar el siguiente script y asígnele un nombre similar start-dropbox.sh. Luego, haga clic con el botón derecho, seleccione "propiedades", vaya a la pestaña "permisos" y marque la casilla "permitir la ejecución del archivo como programa", o abra una terminal, navegue a la carpeta en la que colocó el script y ejecute ejecutarsudo 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

Ahora puede abrir "Aplicaciones de inicio y hacer una nueva entrada, usando la ruta completa a su script como" comando "(usando ~ / start-dropbox.sh no funcionará, debe hacer / home / yourname / start -dropbox.sh).

** Nota : Aquí es donde agregaría la ruta completa del script al final de/etc/rc.local

Un paso opcional es abrir la configuración de Dropbox y desmarcar "Iniciar Dropbox al iniciar el sistema". No puede simplemente cambiar el comando para Dropbox que ya está en la lista de Aplicaciones de inicio, porque Dropbox sobrescribe esto cada vez que se inicia.

Ya terminaste!

Así ~/.local/share/indicators/application/ordering-override.keyfilees como se ve mi :

[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
Gruñidos
fuente
root@laptop:~# restart unity-panel-service restart: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
Jean Jordaan