我知道,可以重新排列托盘中应用程序指示器的顺序(这个问题已经问过几次了)
/usr/share/indicator-application/ordering-override.keyfile
并且我知道可以通过这个 qdbus 命令获取不同 appindicators 的名称:
qdbus --literal com.canonical.AppMenu.Registrar /com/canonical/Unity/Panel/Service com.canonical.Unity.Panel.Service.Sync | sed -e 's/[^{]*{\(.*\)}\]/\1/' | sed -e 's/\[[^"]*/[/g' | sed -e 's/\[\(\(\("[^"]*"\|[^,"]*\), \)\{4\}\)[^]]*,\([^,]*\)\]/[\4, \1]/g' | sed -e 's/\[\([^,]*\, \)\("[^"]*",\)/[ \1\2 /g' | sed -e 's/\[ *\(....,.\{24\}\) */[\1/g' | sed -e 's/\], \[/]\n[/g' | sort -n -k2
我的问题是:dropbox-client 更改了它的 appindicator 名称(始终是“dropbox-client-”和一个随机数(?))。
是否仍然可以移动 dropbox-appindicator(例如,事先获取号码,然后使用 bash 脚本更改文件?)
谢谢
答案1
我自己解决了这个问题,希望能够帮助任何遇到同样问题的人(可能有点“肮脏”,但它有效!)
我创建了一个 bash 文件 dropbox.sh:#!/bin/bash
dropbox start -i
sleep 1
b=`pidof dropbox`
c=`echo $b | cut -d' ' -f1`
c1=`echo $b | cut -d' ' -f2`
d="dropbox-client-$c=8"
d1="dropbox-client-$c1=8"
filename=~/.local/share/indicators/application/ordering-override.keyfile
count=0
while read LINE
do
let count++
if [[ $LINE == *dropbox* ]];then
c=$LINE
e=$count
e1=$(($e + 1))
break
fi
done < $filename
sed -i "$e s/.*/$d/" $filename
sed -i "$e1 s/.*/$d1/" $filename
并用这个 bash 脚本替换了 dropbox 的启动命令,瞧!
编辑:显然你需要在 ordering-override.keyfile 中添加两行 dropbox,因为启动后 dropbox 可能有两个 pid