web-dev-qa-db-ja.com

GNOME Shell Activities Overview画面で検索プロバイダーを再配置することはできますか?

/usr/share/gnome-Shell/search_providersディレクトリに追加の検索プロバイダー(AskUbuntu、Wolfram、YouTubeなど)を追加しました。これらは素晴らしい働きをします。ただし、アクティビティの概要に表示される順序は論理的ではありません。

検索プロバイダーの表示順序を変更することはできますか?

ボーナス:1つをデフォルトにするにはどうすればよいですか?

5
TheGeeko61

11.10

Gnome-Shell検索コードで参照されるキーがあり、どの検索プロバイダーをnot表示するかを指定できます...

ロジックを変更することにより、それを検索順序リストに変更できます-例えば

gsettings set org.gnome.Shell disabled-open-search-providers "['duckduckgo.xml', 'google.xml', 'wikipedia.xml']"

enter image description here

gsettings set org.gnome.Shell disabled-open-search-providers "['wikipedia.xml', 'duckduckgo.xml', 'google.xml']"

enter image description here

方法

最初に、検索スクリプトのバックアップコピーを作成します。

Sudo cp /usr/share/gnome-Shell/js/ui/search.js /usr/share/gnome-Shell/js/ui/search.js.backup

検索スクリプトを編集します。

gksudo gedit /usr/share/gnome-Shell/js/ui/search.js

次のコードを含む関数を探します(おそらく325行目から始まります)。

 _refresh: function() {
        this._providers = []; 
        let names = global.settings.get_strv(DISABLED_OPEN_SEARCH_PROVIDERS_KEY);
        let file = Gio.file_new_for_path(global.datadir + '/search_providers');
        FileUtils.listDirAsync(file, Lang.bind(this, function(files) {
            for (let i = 0; i < files.length; i++) {
                let enabled = true; 
                let name = files[i].get_name();
                for (let k = 0; k < names.length; k++)
                    if (names[k] == name)
                        enabled = false;
                if (enabled)
                    this._addProvider(name);
            }           
        }));    
    }

この関数を次のように変更します。

_refresh: function() {
        this._providers = [];
        let names = global.settings.get_strv(DISABLED_OPEN_SEARCH_PROVIDERS_KEY);
        let file = Gio.file_new_for_path(global.datadir + '/search_providers');
        FileUtils.listDirAsync(file, Lang.bind(this, function(files) {
            for (let i = 0; i < names.length; i++) {
                for (let k = 0; k < files.length; k++) 
                    if (names[i] == files[k].get_name())
                        this._addProvider(names[i])
            }               
        }));    
    }

Alt + F2を押し、「r」と入力してEnterキーを押します。これでGnome-Shellが再起動します)。または、ログアウトしてログインします。

クレジット


リンクされた質問:

  1. GNOME Shellで検索エンジンボタンをカスタマイズすることは可能ですか?
  2. GNOME ShellのダッシュでGoogle検索を削除または置換できますか?
8
fossfreedom

Gsettings変数の意味を維持するために、search.jsを変更して検索プロバイダーファイルを名前で並べ替えることもできます。

    FileUtils.listDirAsync(file, Lang.bind(this, function(files) {
        files.sort (function (first, second) {
            return first.get_name () <= second.get_name ()? -1: 1
        });

次に、/usr/share/gnome-Shell/search_providers内のファイルの名前を

01_google.xml
02_wikipedia.xml
... 

カルロ。

2
Carlo

それらを時間順に並べていることがわかりました。最新に追加された検索プロバイダーが最初です。したがって、最初にGoogleをどこかに移動したい場合は、更新(Alt+F2 およびR)、それをフォルダに再コピーし、再度更新します。

2
Spiros

代替方法:Gnome Shellは、最近編集された.xmlファイルに関連付けられた検索プロバイダーを優先しているようです。カスタム配置を作成するには、ファイルを開いて保存し、シェルを再起動するだけで十分です。たとえば、Google、Wikipedia、DuckDuckGoの場合、DuckDuckGoを最初に保存し、次にWikipedia、Googleの順に保存します。

0
Tigull