Чи можливо змінити порядок піктограм в аплеті індикатора?


49

Чи можливо змінити порядок піктограм, показаних у аплеті індикатора? З індикатором Tomboy, індикатором погоди, індикатором буфера обміну, індикатором Ubuntu One і Dropbox та індикатором стану акумулятора на додаток до класичного індикатора повідомлень та індикатора звукового меню мій аплет індикатора трохи заплутався, сортування піктограм допоможе багато ...


1
Не відповідь, але за допомогою kde (kubuntu) я можу розмістити або видалити майже все, що завгодно, на робочому столі та панелі, включені індикатори.
Джо

Відповіді:


29

Індикатори системи складаються у встановленому порядку за конструкцією. Хоча замовлення вам може не сподобатися, воно полегшує підтримку, маючи фіксований наказ (ми можемо безперечно сперечатися про замовлення). Індикатори додатків працюють трохи інакше, вони розроблені так, щоб було замовлення за замовчуванням, але програми можуть регулювати це для безперервності. Наприклад, якщо у програми було два індикатори, які вона хотіла поруч.

Оскільки ця система призводить до можливих зловживань розробниками додатків, в системі є набір перекричень. Перший - на системному рівні, щоб ним можна було керувати пакетами, як тільки дистрибутив з'ясує, що програма зловживає, вона може бути виправлена ​​для всіх користувачів. Він розташований за адресою:

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

Ви можете помістити туди будь-який ідентифікатор сповіщення про статус і надати йому новий індекс замовлення, який буде, оскільки новий індекс для цієї програми. Також у вашому домашньому каталозі може існувати файл переосмислення користувача, який:

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

Сподіваємось, це допоможе вам налаштувати панель так, як вам зручніше!


Я отримав системні індикатори, перелічені в першому файлі. Але у вас немає ~/.local/share/indicatorsкаталогу. Довідка!
Чарлі

2
Ця відповідь, ймовірно, застаріла, у мене немає такого файлу ~/.local. Файл at /usr/shareне містить записів для всіх програм-індикаторів і його зміна не дала ефектів. Було б непогано відповісти за 14.04.
Luís de Sousa

1
Він працює з Ubuntu 14.04, ви просто повинні явно додати кожен файл, який ви використовуєте. Виконайте цю команду, щоб дізнатися, які саме з них ви використовуєте: 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"/" -f5Хоча вона не працюватиме з Dropbox, оскільки ідентифікатор статусу сповіщення змінюється на основі PID-коду папки. Я додав відповідь нижче, щоб оновити файл ordering-override.key на основі PID-адреси Dropbox.
Gruzzles

Це працює за 15.04? Я створив файл .local, але не бачу його роботи. Оригінальний глобальний файл в /usr/shareприсутній, що говорить про те, що він повинен працювати. Чи аналізується цей файл десь увійшов до журналу? Чи є спосіб налагодження, якщо щось піде не так?
Жан Йордаан

@ ted-gould Чи можете ви вказати код у джерелі індикатора-аплету, який робить замовлення фіксованим?
Хуршид Алам

17

Офіційні ubuntu (погода, ubu-one, акумулятор, повідомлення, я, звук, вимкнення) жорстко кодуються на місці. Відстій. Інші повинні приймати своє замовлення, використовуючи закон першого приходу, який служить першим, право-лівий пріоритет. Судячи з цього запиту на мозковий штурм / функцію , відповідь така: Ні, ви не можете вручну змінити порядок піктограм через gui. Але дивіться відповідь @Ted Gould .


1
Я теж - це помилка. Приємна знахідка. Дякую.
Scaine

11

Щоб змінити положення індикаторів додатків на панелі Unity, потрібно відредагувати файл, ordering-override.keyfileякий називається, який знаходиться під /usr/share/indicator-application. Оскільки редагування цього файлу змінить налаштування для всіх користувачів, ви можете скопіювати його ~/.local/share/indicators/application/ordering-override.keyfileта внести зміни лише для свого користувача:

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

Тепер відкрийте файл, запустивши в терміналі таку команду:

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

У цьому файлі ви повинні побачити існуючі правила порядку вказівників програм на панелі. Перший - nm-appletі має значення "1", тобто це буде перший індикатор програми, який відображатиметься на панелі справа наліво.

Використовуючи це як приклад, ви можете додати свої власні Індикатори додатків та вказати їхню позицію, ввівши їх ім’я та число, на зразок transmission=6якого індикатор програми передачі відображатиметься як шостий індикатор на панелі (справа наліво), якщо інші 5 показників існують.

Джерело: http://www.webupd8.org/2011/06/how-to-change-application-indicators.html

Тепер у вашому випадку ordering-override.keyfileфайл повинен виглядати так:

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

1
@James Це, очевидно, також стосується індикаторів, що надаються додатком, оскільки передача використовується як приклад.
Лео Лам

Це працює за 15.04? Я створив файл .local, але не бачу його роботи. Оригінальний глобальний файл в /usr/shareприсутній, що говорить про те, що він повинен працювати. Чи аналізується цей файл десь увійшов до журналу? Чи є спосіб налагодження, якщо щось піде не так?
Жан Йордаан

Після kill $(pgrep unity-panel-service)цього все працює :-) Я перезавантажився після створення ordering-override.keyfile, тому не знаю, чому це "взяло" після цього перезавантаження панелі.
Жан Йордаан

Цей спосіб перезапуску панелі root@laptop:~# restart unity-panel-serviceвже не працює:restart: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
Жан Йордан

4

Інструкції щодо ввімкнення сортування індикатора Dropbox

Дотримуйтесь інструкцій Теда Гулда, тоді, якщо ви хочете сортувати індикатор Dropbox, виконайте наступні кроки:

Примітка . Якщо ви відредагували файл, /usr/share/...тоді вам доведеться поставити сценарій /etc/rc.local(шукайтеПримітка нижче)

Оскільки Dropbox додає PID до імені індикатора, і це змінюється щоразу, коли Dropbox запускається, потрібно оновлювати ordering-override.keyfileкожен раз, коли запускається папка.

Для цього можна відкрити текстовий редактор, скопіювати та вставити наступний скрипт і назвати його чимось на зразок start-dropbox.sh. Потім клацніть правою кнопкою миші, виберіть "Властивості", перейдіть на вкладку "дозволи" та встановіть прапорець "дозволити виконання файлу як програми" або відкрийте термінал, перейдіть до папки, в яку ставите сценарій, і запустіть запуститиsudo 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

Тепер ви можете відкрити "Запуск програми та зробити новий запис, використовуючи повний шлях до вашого сценарію як" команду "(використання ~ / start-dropbox.sh не буде працювати, ви повинні зробити / home / yourname / start -dropbox.sh).

** Примітка . Тут ви додасте повний шлях сценарію до кінця/etc/rc.local

Один необов'язковий крок - відкрити налаштування Dropbox і зняти прапорець "Запустити папку" при запуску системи ". Ви не можете просто змінити команду для Dropbox, яка вже є у списку програм запуску, тому що Dropbox перезаписує це кожен раз, коли вона починається.

Ви закінчили!

Ось як ~/.local/share/indicators/application/ordering-override.keyfileвиглядає:

[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
Жан Йордаан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.