如何在顶部订购Gnome3 shell扩展?

shell扩展小部件的顺序似乎是随机的,我该如何更改它? 我想在左边有日期/时间信息。

我的shell面板:

我的shell面板

一般的方法:

首先,您必须找到要更改的扩展名的相应文件。
你通常可以在这里找到它: ~/.local/share/gnome-shell/extensions
如果已通过包管理器安装了扩展,您可以在此处找到它: /usr/share/gnome-shell/extensions/ (感谢AB )

然后进入扩展名目录并使用任何文本编辑器打开“ extension.js ”。

转到以下行: function enable() (使用编辑器中的搜索function – 如果找不到它,请进入下一步的更新部分)。
在这个函数里面通常是一行Main.panel.addToStatusArea('NAME', _OTHERNAME, NUMBER, LEFT/CENTER/RIGHT); (再次:如果你找不到它,请转到更新 )。 可能会发生最后两个参数( NUMBERPOSITION )缺失; 看起来像这样: Main.panel.addToStatusArea('NAME', _OTHERNAME);
(别担心!您的计算机用以下代码解释较短的版本:( ('NAME', _OTHERNAME, 0, right);随意添加缺少的参数。但总是按照显示的顺序!!!

POSITION定义图标应位于面板上的POSITION 。 有三个区域: 。 您可能不想更改此值,但可以随意更改此值。 以下是面板上POSITION的三种可能状态:

 ------------------------------------------------------------------ Activities Date Other icons ------------------------------------------------------------------ left center right 

您可能想要更改的更重要的值是NUMBER 。 它定义子面板内图标的顺序。 可能的值是:

  • 0 :我不在乎图标在哪里。

  • 负值 :位置; 从右侧开始(可能很重要,因为所有扩展图标都在系统图标后加载)

  • 正值 :位置; 从左侧开始。 较高的值将位于右侧。

您必须在所有扩展中使用这些值,因为相同的值会相互冲突(位置2上的两个不同的扩展名没有任何意义)。 有时甚至跟随价值冲突。

每次更改值时,请确保保存文件。 然后按Alt + F2 ,输入rEnter 。 面板将使用新订购的图标进行刷新。 这是玩这些值的快速选项。


最后来自Mathematical Coffee的一句话 :

使用Main.panel.addToStatusArea(unique_name_of_indicator,inidicator,position,box)将SystemStatusButton或PanelButton添加到面板。 这会处理将其菜单添加到菜单管理器中(框为Main.panel ._ {left,right,center} Box,默认情况下省略box参数右侧框,省略位置给出位置0)。 如果你的按钮只是一个ButtonBox(即没有菜单),那么坚持下去。 _ {left,right,center} Box.insert_child_at_index。

如果您对此方法有任何问题,请告诉我。


更新:

我环顾四周,并认识到这种方式不适用于所有扩展(主要用于简单/新扩展)。 在这种情况下,常用的扩展是“系统监视器”。 修改图标位置的方式应该(通常)相同(我没有测试过。所以一定要创建一个备份文件) 。 但是“系统监视器”存在一些差异:

  1. 您必须搜索的函数称为var enable = function () 。 因此,在文件中搜索单词enable可能会更好。
  2. 定义图标位置的位置称为Main.panel._addToPanelBox('system-monitor', tray, 1, panel); 。 更改数字应具有与上述相同的效果。 要更改整个区域,您有两种选择:

    • 通过将相同的行更改为Main.panel._addToPanelBox('system-monitor', tray, 1, Main.panel._rightBox); (注意:扩展程序设置菜单中的位置将不再起作用)。

    • 或者通过更改行let panel = Main.panel._rightBox; (再次使用搜索function)到您想要的位置( _leftBox,_centerBox,_rightBox )。

(这些步骤可以应用于任何其他扩展名。但是名称会略有不同。但仍然:我的第一次尝试中描述了这种常见的方法)


整个程序简而言之:

搜索相应的文件。 然后在此文件中搜索enable 然后搜索Main.panel...任何Main.panel...并更改值(非常自我解释)。


最后我注意到你提到了时间面板。 我找不到修改其位置的好方法,但这里还有其他的东西:

您已安装“系统监视器”。 非常好 :)
打开相应的extension.js并在这两行中将“right”改为“left”:
Main.panel._addToPanelBox('dateMenu', dateMenu, -1, Main.panel._rightBox);Main.panel._rightBox.insert_child_at_index(dateMenu.actor, -1);
最后,您必须在此扩展程序的设置中选中“移动时钟”。 你去! 我没有测试过,但它应该工作。 如果没有,写一个评论:)

啊! 忘记提及:每次更改值保存文件并使用Alt + F2刷新面板 – 键入r按Enter键 并确保创建备份文件! :d

“ 扩展面板菜单”扩展将允许您使用“托盘偏移”function和“指示器”选项卡对指示器进行排序。 安装扩展程序后,进入设置以调整指标。 快乐OCDing!

还有一种更简单的方法就是打开gnome-tweak-tool ,浏览Extensions选项卡,然后关闭再打开扩展。 这样做会将图标向左移动。