เป็นไปได้หรือไม่ที่จะเปลี่ยนลำดับของไอคอนในแอปเพล็ตตัวบ่งชี้


49

เป็นไปได้หรือไม่ที่จะเปลี่ยนลำดับของไอคอนที่แสดงในแอปเพล็ตตัวบ่งชี้ ด้วยตัวบ่งชี้ Tomboy, ตัวบ่งชี้สภาพอากาศ, ตัวบ่งชี้ผู้จัดการคลิปบอร์ด, Ubuntu One และตัวบ่งชี้ Dropbox และตัวบ่งชี้สถานะของแบตเตอรี่นอกเหนือจากตัวบ่งชี้ข้อความคลาสสิกและตัวบ่งชี้เมนูเสียงตัวบ่งชี้ Applet ของฉัน ...


1
ไม่ใช่คำตอบ แต่ภายใต้ kde (kubuntu) ฉันสามารถวางหรือลบอะไรก็ได้บนเดสก์ท็อปและแผงรวมถึงตัวบ่งชี้
Joe

คำตอบ:


29

ตัวบ่งชี้ระบบอยู่ในลำดับที่คงที่โดยการออกแบบ ในขณะที่คุณอาจไม่ชอบคำสั่งนั้นมันทำให้การสนับสนุนง่ายขึ้นโดยมีคำสั่งคงที่ (เราสามารถโต้เถียงเกี่ยวกับคำสั่งซื้อได้ไม่สิ้นสุด) ตัวบ่งชี้แอปพลิเคชันทำงานแตกต่างกันเล็กน้อยพวกเขาได้รับการออกแบบเพื่อให้มีลำดับเริ่มต้น แต่แอปพลิเคชันสามารถปรับได้เพื่อความต่อเนื่อง ตัวอย่างเช่นหากแอปพลิเคชันมีตัวบ่งชี้สองตัวที่ต้องการติดกัน

เนื่องจากระบบนี้นำไปสู่การละเมิดที่เป็นไปได้โดยนักพัฒนาแอปพลิเคชันมีชุดของการแทนที่ในระบบ สิ่งแรกคือที่ระดับระบบเพื่อให้สามารถจัดการได้โดยแพคเกจเมื่อ distro คิดออกว่ามีแอปพลิเคชันที่ไม่เหมาะสมซึ่งสามารถแก้ไขได้สำหรับผู้ใช้ทั้งหมด มันตั้งอยู่ที่:

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

คุณสามารถใส่รหัสแจ้งสถานะใด ๆ ในนั้นและให้ดัชนีการสั่งซื้อใหม่ที่จะเป็นเพราะดัชนีใหม่สำหรับแอปพลิเคชัน นอกจากนี้ยังมีไฟล์แทนที่ต่อผู้ใช้ที่สามารถมีอยู่ในโฮมไดเรกทอรีของคุณได้ที่:

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

หวังว่าจะให้ความช่วยเหลือในการปรับแผงของคุณในแบบที่คุณต้องการ!


ฉันได้ตัวบ่งชี้ระบบในรายการไฟล์แรก แต่ไม่มี~/.local/share/indicatorsไดเรกทอรี ช่วยด้วย!
charlie

2
~/.localคำตอบนี้มีแนวโน้มที่ล้าสมัยผมไม่มีไฟล์ดังกล่าวใน ไฟล์ที่/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 แต่เนื่องจาก ID แจ้งเตือนสถานะเปลี่ยนตาม PID ของ Dropbox ฉันได้เพิ่มคำตอบด้านล่างเพื่ออัปเดตการสั่งซื้อ - override.keyfile ตาม PID ของ Dropbox
Gruzzles

ใช้งานได้กับ 15.04 หรือไม่ ฉันสร้างไฟล์.localแล้ว แต่ไม่เห็นว่าใช้งานได้ ไฟล์โกลบอลดั้งเดิมที่/usr/shareมีอยู่ซึ่งแสดงว่าควรใช้งานได้ การแยกวิเคราะห์ไฟล์นี้ถูกบันทึกไว้ทุกที่หรือไม่? มีวิธีการแก้ไขปัญหาหรือไม่หากมีสิ่งใดผิดพลาด
Jean Jordaan

@ ted-gould คุณสามารถระบุรหัสในแหล่งตัวบ่งชี้ - แอปเพล็ตซึ่งทำให้ใบสั่งถูกแก้ไข
Khurshid Alam

17

อูบุนตูอย่างเป็นทางการ (สภาพอากาศ, อูบุ - วัน, แบตเตอรี่, ข้อความ, ฉัน, เสียง, การปิดระบบ) ถูกฮาร์ดโค้ดไว้ Sucks คนอื่น ๆ ควรใช้คำสั่งของพวกเขาโดยใช้กฎหมายของการมาก่อนได้ก่อนมาก่อนขวาก่อน เมื่อพิจารณาจากการระดมสมอง / คำขอคุณสมบัติคำตอบคือ: ไม่คุณไม่สามารถเปลี่ยนลำดับของไอคอนด้วยตนเองผ่าน GUI แต่ดูคำตอบของ @Ted Gould


1
ฉันก็เช่นกันที่ข้อผิดพลาด ยินดีที่ได้พบ ขอบคุณ
Scaine

11

การเปลี่ยนตำแหน่งการประยุกต์ใช้ตัวชี้วัดที่แผงเอกภาพคุณต้องแก้ไขไฟล์ที่เรียกว่าซึ่งตั้งอยู่ภายใต้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/

ตอนนี้เปิดไฟล์โดยใช้คำสั่งต่อไปนี้ใน terminal:

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

ในไฟล์นี้คุณจะเห็นกฎที่มีอยู่สำหรับการสั่งซื้อตัวบ่งชี้แอพลิเคชันบนแผง อันแรกคือnm-appletและมีค่าเป็น "1" ซึ่งหมายความว่ามันจะเป็นตัวบ่งชี้การใช้งานครั้งแรกที่จะแสดงบนแผงจากขวาไปซ้าย

การใช้สิ่งนี้เป็นตัวอย่างคุณสามารถเพิ่มตัวบ่งชี้แอปพลิเคชันของคุณเองและระบุตำแหน่งได้โดยป้อนชื่อและหมายเลขtransmission=6ที่จะทำให้ตัวบ่งชี้การส่งผ่านแอปพลิเคชันแสดงเป็นตัวบ่งชี้ที่ 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 นี้เห็นได้ชัดว่าใช้กับตัวบ่งชี้ที่แอปพลิเคชันให้มาด้วยเนื่องจากการส่งข้อมูลถูกใช้เป็นตัวอย่าง
Léo Lam

ใช้งานได้กับ 15.04 หรือไม่ ฉันสร้างไฟล์.localแล้ว แต่ไม่เห็นว่าใช้งานได้ ไฟล์โกลบอลดั้งเดิมที่/usr/shareมีอยู่ซึ่งแสดงว่าควรใช้งานได้ การแยกวิเคราะห์ไฟล์นี้ถูกบันทึกไว้ทุกที่หรือไม่? มีวิธีการแก้ไขปัญหาหรือไม่หากมีสิ่งใดผิดพลาด
Jean Jordaan

หลังจากkill $(pgrep unity-panel-service)นี้ทำงาน :-) ฉันได้รีบูตหลังจากสร้างordering-override.keyfileดังนั้นฉันไม่ทราบว่าทำไม "เอา" หลังจากรีสตาร์ทแผงนี้
Jean Jordaan

วิธีการรีสตาร์ทแผงควบคุมroot@laptop:~# restart unity-panel-serviceนี้จะไม่ทำงานอีกต่อไป:restart: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
Jean Jordaan

4

คำแนะนำในการเปิดใช้งานการเรียงลำดับตัวบ่งชี้ Dropbox

ทำตามคำแนะนำของ Ted Gould หากคุณต้องการเรียงลำดับตัวบ่งชี้ Dropbox ต่อไปนี้เป็นขั้นตอนเพิ่มเติม:

หมายเหตุ : หากคุณแก้ไขไฟล์/usr/share/...แล้วคุณจะต้องใส่สคริปต์ใน/etc/rc.local(มองหาหมายเหตุด้านล่าง)

เนื่องจาก Dropbox ต่อท้าย PID กับชื่อตัวบ่งชี้และการเปลี่ยนแปลงนี้จะเริ่มขึ้นทุกครั้งที่ Dropbox เริ่มต้นคุณต้องอัปเดตordering-override.keyfileDropbox ทุกครั้งที่เริ่มต้น

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
Jean Jordaan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.