是否可以更改指示器小程序中图标的顺序?

是否可以更改指示器小程序中图标的顺序?

是否可以更改指示器小程序中显示的图标顺序?除了经典的消息指示器和声音菜单指示器外,还有 Tomboy 指示器、天气指示器、剪贴板管理器指示器、Ubuntu One 和 Dropbox 指示器以及电池状态指示器,我的指示器小程序变得有点混乱,对图标进行排序会很有帮助...

答案1

系统指示器在设计上是固定顺序的。虽然您可能不喜欢这种顺序,但固定顺序可以让支持更加容易(我们可以无休止地争论顺序)。应用程序指示器的工作方式略有不同,它们的设计是默认顺序,但应用程序可以调整顺序以实现连续性。例如,如果应用程序有两个指示器,希望它们彼此相邻。

由于该系统可能导致应用程序开发人员滥用,因此系统中有一组覆盖。第一个是系统级别的,以便可以通过软件包进行管理,一旦发行版发现存在滥用应用程序,就可以为所有用户修复。它位于:

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

您可以将任何状态通知程序 ID 放入其中,并为其指定一个新的排序索引,这将作为该应用程序的新索引。还有一个每个用户的覆盖文件,可以存在于您的主目录中:

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

希望这能帮助您按照您喜欢的方式调整面板!

答案2

官方的 ubuntu 功能(天气、ubu-one、电池、消息、我、声音、关机)都是硬编码的。真糟糕。其他功能应该按照先到先得、右左优先的原则来排序。从这一点来看头脑风暴/功能请求,答案是:不,您无法通过 GUI 手动更改图标的顺序。但请参阅@Ted Gould 的回答。

答案3

ordering-override.keyfile要更改 Unity 面板上的应用程序指示器位置,您必须编辑位于 下的文件/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

答案4

启用 Dropbox 指示器排序的说明

按照 Ted Gould 的说明进行操作,如果您想对 Dropbox 指示器进行排序,请执行以下几个步骤:

笔记:如果你编辑了文件,/usr/share/...那么你必须把脚本放进去/etc/rc.local(寻找笔记以下)

由于 Dropbox 将 PID 附加到指示符名称中,并且每次 Dropbox 启动时它都会发生变化,因此您需要在ordering-override.keyfile每次 Dropbox 启动时更新它。

为此,您可以打开文本编辑器,复制并粘贴以下脚本,并将其命名为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

相关内容