답변:
시스템 표시기는 설계 상 고정 순서로되어 있습니다. 주문이 마음에 들지 않더라도 주문이 고정되어 주문이 더 쉬워집니다 (우리는 주문에 대해 끝없이 논쟁 할 수 있습니다). 응용 프로그램 표시기는 약간 다르게 작동하며 기본 순서가 있도록 설계되었지만 응용 프로그램은 연속성을 위해 조정할 수 있습니다. 예를 들어, 애플리케이션에 서로 원하는 지표가 두 개있는 경우.
이 시스템은 응용 프로그램 개발자가 악용 할 수 있으므로 시스템에 일련의 재정의가 있습니다. 첫 번째는 시스템 수준에 있으므로 배포판이 모든 사용자에 대해 수정 될 수있는 학대 응용 프로그램이있는 것으로 밝혀지면 패키지로 관리 할 수 있습니다. 다음 위치에 있습니다.
/usr/share/indicator-application/ordering-override.keyfile
상태 알림 ID를 거기에 넣고 해당 응용 프로그램의 새 색인 때문에 새로운 주문 색인을 제공 할 수 있습니다. 홈 디렉토리에는 다음과 같은 사용자 별 대체 파일도 있습니다.
~/.local/share/indicators/application/ordering-override.keyfile
다행히도 원하는 방식으로 패널을 조정하는 데 도움이 될 것입니다.
~/.local/share/indicators
디렉토리 가 없습니다 . 도움!
~/.local
.에 해당 파일이 없습니다 . 의 파일 /usr/share
에는 모든 표시기 응용 프로그램에 대한 항목이 포함되어 있지 않으며 파일을 변경해도 아무런 영향이 없습니다. 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에 따라 상태 알림 ID가 변경되므로 Dropbox에서는 작동하지 않습니다. Dropbox의 PID를 기반으로 ordering-override.keyfile을 업데이트하기 위해 아래에 답변을 추가했습니다.
.local
만들었지 만 작동하지 않습니다. 원본 글로벌 파일 /usr/share
이 존재하므로 작동해야 함을 나타냅니다. 이 파일의 구문 분석이 어디서나 기록됩니까? 문제가 발생하면 디버깅하는 방법이 있습니까?
공식 우분투 것들 (날씨, 우부 하나, 배터리, 메시지, 나, 소리, 종료)이 하드 코드되어 있습니다. 짜증. 다른 사람은 선착순 법을 사용하여 순서를 취해야합니다. 이 브레인 스토밍 / 기능 요청으로 판단 하면 대답은 다음과 같습니다. 아니요, GUI를 통해 아이콘 순서를 수동으로 변경할 수 없습니다. 그러나 @Ted Gould의 답변을 참조하십시오 .
유니티 패널에 응용 프로그램 표시 위치를 변경하려면라는 파일을 편집해야합니다 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
수 있습니다. 전송 애플리케이션 인디케이터는 패널에서 오른쪽에서 왼쪽으로 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
.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
Dropbox 표시기 정렬을위한 지침
Ted Gould의 지침을 따르고 Dropbox 표시기를 정렬하려면 몇 가지 단계를 더 수행하십시오.
참고 : 파일을 편집 한 경우 /usr/share/...
스크립트를 넣어야합니다 /etc/rc.local
(아래 참고 )
Dropbox는 표시기 이름에 PID를 추가하고 Dropbox가 시작될 때마다 변경되므로 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는 시작할 때마다 덮어 쓰기 때문에 이미 시작 응용 프로그램 목록에있는 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