我有一个已安装的插件,我想将其添加到面板中。我总是可以通过 xfce4-panel GUI 来做到这一点。但我的问题是如何通过终端执行此操作,这样就不会调用 GUI。
xfce4-panel --add=PLUGIN-NAME
将调用 GUI 询问面板编号。
xfce4-panel --add-items=PANEL-NUMBER
将调用 GUI 请求添加插件。
如何组合这些命令,这样就不会调用 GUI,即,假设我知道面板的编号,有没有办法将插件添加到特定面板?
到目前为止,XFCE 中的面板和插件设置保存在自己的数据库中,可以通过编辑
$HOME/.config/xfce4/xfconf/xfce-perchannel-xml
文件夹中的 xml 文件、使用命令行 util 'xfconf-query' 或通过 GUI 工具进行控制xfce4-settings-editor
。
该数据库中的面板数据存储在属性“/panels”下的通道“xfce4-panel”中。每个面板在“/panels/panel-0/plugin-ids”属性下按顺序包含其插件列表,其中“panel-0”是面板名称。
这些 id 指向属性“/plugins”下同一频道“xfce4-panel”中列出的所有可用插件。
因此,要以编程方式向面板添加新插件,您需要:
一些代码:
# xfconf-query not yet support adding individual entries to array
# so need override all plugins in the panel
# before using this command adapt it to your current list
# of plugins + simply add your new
# copying and executing this command without adopting may broke your panel
# do not execute as is
xfconf-query -n -c xfce4-panel -p "/panels/panel-0/plugin-ids" -a \
-t int -s 1 -t int -s 2 -t int -s 3 -t int -s 4 -t int -s 5 \
-t int -s 6 -t int -s 7 -t int -s 8 -t int -s 9 -t int -s 10 \
-t int -s 11 -t int -s 12 -t int -s 13
# so last 13 is our new plugin id, lets add it
# adding new plugin with id 13, lets this be 'xkb' plugin (language layout switcher)
xfconf-query -c xfce4-panel -pn "/plugins/plugin-13" -t string -s 'xkb'
# restart panels for taking effect
xfce4-panel --restart