web-dev-qa-db-ja.com

上部にあるGnome3 Shell拡張機能を注文するにはどうすればよいですか?

Shell拡張ウィジェットの順序はランダムに見えますが、どうすれば変更できますか?たとえば、左側に日付/時刻情報が必要です。

マイシェルパネル:

My Shell panel

18
klausi

一般的な方法:

まず、変更したい拡張子の対応するファイルを見つける必要があります。
通常、ここで見つけることができます:~/.local/share/gnome-Shell/extensions
拡張機能がパッケージマネージャーを介してインストールされている場合は、/usr/share/gnome-Shell/extensions/(Thanks to A.B。 )で見つけることができます。

次に、拡張機能のディレクトリに移動し、テキストエディタで「extension.js」を開きます。

次の行に移動します:function enable()(エディターの検索機能を使用します-見つからない場合は、さらに下のUpdateセクションに移動します)。
この関数の内部には、通常Main.panel.addToStatusArea('NAME', _OTHERNAME, NUMBER, LEFT/CENTER/RIGHT);行があります(繰り返します:見つからない場合は、Update)に進みます。最後の2つのパラメーター(NUMBERおよびPOSITION)が欠落している可能性があります。次のようになります:Main.panel.addToStatusArea('NAME', _OTHERNAME);
(ご心配なく!お使いのコンピューターは、短いバージョンを次のように解釈します:('NAME', _OTHERNAME, 0, right);欠落しているパラメーターを自由に追加してください。しかし、常に示された順序で!!!

POSITIONは、パネル上のアイコンの場所を定義します。 3つの領域があります:leftcenter、およびright。おそらくこの値を変更する必要はありませんが、自由に変更してください。パネルのPOSITIONに考えられる3つの状態は次のとおりです。

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

おそらく変更したいもっと重要な値はNUMBERです。サブパネル内のアイコンの順序を定義します。可能な値は次のとおりです。

  • :アイコンの場所は気にしません。

  • 負の値:位置;右側から開始します(すべての拡張機能アイコンはシステムアイコンの後に読み込まれるため重要です)

  • 正の値:位置;左側から始めます。値が大きいほど、右側に配置されます。

同じ値が互いに競合するため、すべての拡張機能でこれらの値を操作する必要があります(位置2の2つの異なる拡張機能は意味をなさない)。また、次の値が競合する場合もあります。

値を変更するたびに、必ずファイルを保存してください。その後、ヒット Alt+F2、タイプ r そして Enter。パネルは、新しく注文されたアイコンで更新されます。これは、これらの値を試すための高速オプションです。


最後に Mathematical Coffee からの引用:

Main.panel.addToStatusArea(unique_name_of_indicator、inidicator、position、box)を使用して、パネルにSystemStatusButtonまたはPanelButtonを追加します。これにより、メニューマネージャーへのメニューの追加が処理されます(ボックスはMain.panel ._ {left、right、center} Boxであり、box引数を省略するとデフォルトで右ボックスになり、位置を省略すると位置0になります)。ボタンがButtonBoxのみである(つまりメニューがない)場合は、そのままにします。 _ {左、右、中央} Box.insert_child_at_index。

このアプローチで問題が発生した場合はお知らせください。


更新:

私は周りを見回しましたが、この方法はすべての拡張機能(ほとんどの場合、単純/新しい拡張機能)で機能しないことを認識しました。この場合に頻繁に使用される拡張機能は「システムモニター」です。アイコンの位置を変更する方法は、(一般的に)同じ(私はテストしていません。したがって、バックアップファイルを作成するようにしてください)。ただし、「システムモニター」にはいくつかの違いがあります。

  1. 検索する必要のある関数は、var enable = function ()と呼ばれます。そのため、ファイル内でWord enableを検索することをお勧めします。
  2. アイコンの位置が定義される場所は、Main.panel._addToPanelBox('system-monitor', tray, 1, panel);と呼ばれます。番号を変更すると、上記と同じ効果が得られます。エリア全体を変更するには、2つのオプションがあります。

    • まったく同じ行をMain.panel._addToPanelBox('system-monitor', tray, 1, Main.panel._rightBox);に変更することで(注:拡張機能の設定メニューの位置が機能しなくなります)。

    • または、行let panel = Main.panel._rightBox;(再度検索機能を使用)を目的の位置(_ leftBox、_centerBox、_rightBox)に変更します。

(これらの手順は、他の拡張機能にも適用できます。ただし、名前は少し異なります。それでも、この答えの最初の試みで一般的な方法を説明しました)


簡単に言えば、手順全体:

一致するファイルを検索します。次に、このファイル内でenableを検索します。次に、Main.panel...のようなものを検索し、値を変更します(まったく説明がありません)。


そして最後に、あなたがタイムパネルについて言及していることに気付きました。私はその位置を変更する良い方法を見つけませんでしたが、ここに何か他のものがあります:

「システムモニター」がインストールされています。それは良い :)
対応するextension.jsを開き、これらの2行の単語を「右」から「左」に変更します。
Main.panel._addToPanelBox('dateMenu', dateMenu, -1, Main.panel._rightBox);およびMain.panel._rightBox.insert_child_at_index(dateMenu.actor, -1);
最後に、この拡張機能の設定で「時計の移動」をチェックする必要があります。行くぞ!私はそれをテストしていませんが、動作するはずです。そうでない場合は、コメントを書いてください:)

ああ!言及するのを忘れました:値を変更するたびにファイルを保存し、パネルを更新します Alt+F2 -タイプ r -ヒット Enter。バックアップファイルを必ず作成してください!!!:D

15
Jibbow

パネルメニューの拡張 拡張機能を使用すると、「トレイオフセット」機能と[インジケータ]タブでインジケータを並べ替えることができます。拡張機能をインストールした後、設定に移動してインジケーターを調整します。ハッピーOCDing!

2
guttermonk