当前位置: 首页>>技术问答>>正文


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

, , ,

问题描述

是否可以更改指标小程序中显示的图标顺序?使用Tomboy指示器,天气指示器,Clipboard-manager指示器,Ubuntu One和Dropbox指示器以及电池状态指示器以及经典消息指示器和声音菜单指示器,我的指示器小程序变得有点混乱,排序图标将有很大帮助.. 。

最佳解决方案

系统指标按设计固定。虽然您可能不喜欢订单,但通过固定订单可以使支持更容易(我们可以无休止地争论订单)。应用程序指标的工作方式略有不同,它们的设计使得存在默认顺序,但应用程序可以根据连续性进行调整。例如,如果某个应用程序有两个彼此相邻的指示符。

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

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

您可以在其中放置任何状态通知器ID,并为其提供新的排序索引,因为该应用程序的新索引。还有一个per-user覆盖文件,可以存在于您的主目录中:

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

希望这会给你一些帮助,以你喜欢的方式调整你的面板!

次佳解决方案

官方的ubuntu(天气,ubu-one,电池,消息,我,声音,关机)都是硬编码的。吮吸。其他的应该使用先到先服务的法则,right-left优先。从这个brainstorm/feature request来看,答案是:不,你不能通过gui手动改变图标的​​顺序。但请参阅@Ted Gould’s答案。

第三种解决方案

要在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等数字来指定其位置,这将使传输应用程序指示器显示为面板上的第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

第四种方案

启用Dropbox指标排序的说明

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

注意:如果您在/usr/share/...中编辑了文件,则必须将脚本放在/etc/rc.local中(查看下面的注释)

由于Dropbox会将PID附加到指标名称,并且每次Dropbox启动时都会更改,因此每次启动Dropbox时都需要更新ordering-override.keyfile

为此,您可以打开文本编辑器,复制并粘贴以下脚本,并将其命名为start-dropbox.sh。然后右键单击,选择”properties”,转到”permissions”选项卡,选中“允许执行文件作为程序”框,或打开终端,导航到放入脚本的文件夹,然后运行运行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

现在你可以打开“启动应用程序,并创建一个新条目,使用脚本的完整路径作为”command”(使用〜/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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1535.html,未经允许,请勿转载。