표시기 애플릿에서 아이콘 순서를 변경할 수 있습니까?


49

표시기 애플릿에 표시되는 아이콘 순서를 변경할 수 있습니까? Tomboy 표시기, 날씨 표시기, 클립 보드 관리자 표시기, Ubuntu One 및 Dropbox 표시기 및 배터리 상태 표시기뿐만 아니라 고전적인 메시지 표시기 및 사운드 메뉴 표시기 내 표시기 애플릿이 약간 엉망이되어 아이콘을 정렬하면 많은 도움이됩니다 ...


1
대답은 아니지만 kde (kubuntu)에서 표시기와 함께 데스크탑 및 패널에 거의 모든 것을 배치하거나 제거 할 수 있습니다.
Joe

답변:


29

시스템 표시기는 설계 상 고정 순서로되어 있습니다. 주문이 마음에 들지 않더라도 주문이 고정되어 주문이 더 쉬워집니다 (우리는 주문에 대해 끝없이 논쟁 할 수 있습니다). 응용 프로그램 표시기는 약간 다르게 작동하며 기본 순서가 있도록 설계되었지만 응용 프로그램은 연속성을 위해 조정할 수 있습니다. 예를 들어, 애플리케이션에 서로 원하는 지표가 두 개있는 경우.

이 시스템은 응용 프로그램 개발자가 악용 할 수 있으므로 시스템에 일련의 재정의가 있습니다. 첫 번째는 시스템 수준에 있으므로 배포판이 모든 사용자에 대해 수정 될 수있는 학대 응용 프로그램이있는 것으로 밝혀지면 패키지로 관리 할 수 ​​있습니다. 다음 위치에 있습니다.

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

상태 알림 ID를 거기에 넣고 해당 응용 프로그램의 새 색인 때문에 새로운 주문 색인을 제공 할 수 있습니다. 홈 디렉토리에는 다음과 같은 사용자 별 대체 파일도 있습니다.

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

다행히도 원하는 방식으로 패널을 조정하는 데 도움이 될 것입니다.


첫 번째 파일에 시스템 표시기가 나타납니다. 그러나 ~/.local/share/indicators디렉토리 가 없습니다 . 도움!
찰리

2
이 답변은 구식 일 가능성이 큽니다 ~/.local.에 해당 파일이 없습니다 . 의 파일 /usr/share에는 모든 표시기 응용 프로그램에 대한 항목이 포함되어 있지 않으며 파일을 변경해도 아무런 영향이 없습니다. 14.04에 대한 답변이 있으면 좋을 것입니다.
루이스 드 수사

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에 따라 상태 알림 ID가 변경되므로 Dropbox에서는 작동하지 않습니다. Dropbox의 PID를 기반으로 ordering-override.keyfile을 업데이트하기 위해 아래에 답변을 추가했습니다.
Gruzzles

이것은 15.04에서 작동합니까? 에 파일을 .local만들었지 만 작동하지 않습니다. 원본 글로벌 파일 /usr/share이 존재하므로 작동해야 함을 나타냅니다. 이 파일의 구문 분석이 어디서나 기록됩니까? 문제가 발생하면 디버깅하는 방법이 있습니까?
Jean Jordaan

@ ted-gould 주문을 고정시키는 표시기-애플릿 소스의 코드를 정확하게 찾을 수 있습니까?
Khurshid Alam

17

공식 우분투 것들 (날씨, 우부 하나, 배터리, 메시지, 나, 소리, 종료)이 하드 코드되어 있습니다. 짜증. 다른 사람은 선착순 법을 사용하여 순서를 취해야합니다. 이 브레인 스토밍 / 기능 요청으로 판단 하면 대답은 다음과 같습니다. 아니요, 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/

이제 터미널에서 다음 명령을 실행하여 파일을여십시오.

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 Transmission은 예제로 사용되기 때문에 애플리케이션 제공 지표에도 적용됩니다.
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가 시작될 때마다 변경되므로 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
Jean Jordaan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.