web-dev-qa-db-ja.com

Debian 8のGnomeデスクトップでテキストファイルをダブルクリックしたときに、geditが既存のgeditウィンドウとは別に新しいウィンドウを開くように強制する方法は?

Debian 8、JessieのGnomeデスクトップでテキストファイル(.txt)をダブルクリックしたときに、既存のgeditウィンドウとは無関係に新しいウィンドウを開くようにgeditを強制する方法を教えてください。

A.txtがすでにgeditウィンドウで開いていて、b.txtがDebian 8 JessieのGnomeデスクトップでダブルクリックされているとします。その後、残念ながら、工場出荷時のデフォルトでは、b.txtはa.txtと同じウィンドウのタブで開かれます。

ただし、b.txtをgeditの新しいウィンドウで開き、a.txtの既存のウィンドウとb.txtの新しいウィンドウの2つのウィンドウがあるようにします。

Gnomeが次のように「-s」オプションを指定してgeditを呼び出した場合

gedit -s b.txt

次にb.txtは新しいウィンドウで開きますが、a.txtは既存のウィンドウに残ります。

ただし、デフォルトでは、Gnomeは「-s」オプションなしでgeditを呼び出すようです。

設定ファイル

/usr/share/applications/org.gnome.gedit.desktop

実行ディレクティブが含まれています

Exec=gedit %U

だから、私はそれを

Exec=gedit -s %U

次のコマンドで、コンピュータを再起動しました。

cd /usr/share/applications
su # similar to Sudo
mv org.gnome.gedit.desktop org.gnome.gedit.desktop.bak
Perl -pe 's/Exec=gedit %U/Exec=gedit -s %U/' org.gnome.gedit.desktop.bak > org.gnome.gedit.desktop
diff org.gnome.gedit.desktop org.gnome.gedit.desktop.bak

ただし、このメソッドは失敗しました。 b.txtは、a.txtと同じウィンドウのタブで開きます。ハマった。あなたの助けが必要です。

Geditのデフォルトのモードは「単一ウィンドウ、複数タブ」です。 「複数ウィンドウ」モードが必要です。

ちなみに、次の役に立たないメソッドは、geditを「単一ウィンドウ、タブなし」モードに変更しますが、これは私が望むものではありません。

gsettings set org.gnome.gedit.preferences.ui show-tabs-mode 'never'

この「gsettings」メソッドを使用すると、デスクトップでb.txtをダブルクリックすると、geditはa.txtを自動的に閉じ、a.txtの既存のウィンドウを再利用してb.txtを開きます。したがって、これは(「複数ウィンドウ」とは対照的に)「単一ウィンドウ、タブなし」モードです。

(ちなみに、「show-tabs-mode」のデフォルト値は「auto」です。)

9
i7pj3qnuz

.desktopファイルのExecキーの変更が機能しなかった理由は、geditがDBusでアクティブ化されているためです。これは、セッションのDBusデーモンを介して起動され、そのような起動可能なプログラムが開くファイルを指定するための共通のDBusインターフェースを提供することを意味します。これを防ぐには、DBusActivatableキーをfalseに変更します。

また、変更したい.desktopファイルのコピーをホームディレクトリに作成し、それを使用してシステム全体のファイルを上書きするのは、システム全体のファイルを直接変更するよりもはるかに優れています。これにより、ディストリビューションパッケージの更新時にシステムが上書きされなくなります。これを行うには、/usr/share/applications/org.gnome.gedit.desktop~/.local/share/applications/org.gnome.gedit.desktopにコピーします。このパスのファイルは、システム全体のディレクトリにある同じ名前のファイルを上書きします。

次に、新しいウィンドウを開くために使用される2つのフラグ--new-windowまたは-sの間にも重要な違いがあります。どちらの場合も、ファイルは新しいウィンドウで開かれますが、-sを使用すると、各ウィンドウも独自のプロセスに属します。 --new-windowを使用すると、すべてのウィンドウが同じgeditプロセスを共有します。

最後に、ファイルマネージャーで複数のファイルを選択して開いた場合にもこれが機能することを確認するには、Execキーの別の変更が必要です。 %Uは、このコマンドの引数として複数のURLが許可されることを意味します。つまり、ファイルマネージャーはgedit --new-window file1.txt file2.txtのように起動します。これにより、2つのタブを持つ単一の新しいウィンドウが表示されます。これを%uに変更すると、ファイルマネージャーに、アプリケーションは単一のURLのみを引数として受け入れるため、異なるファイルを引数としてコマンドを複数回実行することになります。これに関する詳細は freedesktopデスクトップエントリの仕様 を参照してください。

5
Sebastian

Sebastians の回答に基づいて、以下を実行します。

  1. Gedit構成のローカルコピーを作成します。行った変更は、現在のユーザーにのみ適用されます。

    cp /usr/share/applications/org.gnome.gedit.desktop〜/ .local/share/applications/geditNewWin.desktop

  2. ファイル〜/ .local/share/applications/geditNewWin.desktopで:すべての_EXEC=_行(いくつかあります)に移動して、それらをto _Exec=gedit -s %U_に設定します。さらに_Name=Text Editor_をName=Text Editor (new window)に変更します。

  3. Nautilusファイルマネージャー(Gnomeの標準ファイルマネージャー、しばしば「ファイル」または Gnomeファイル と呼ばれる)で、ファイルタイプ(.txt、.csv、...)を新しく作成したアプリケーションに関連付けます。

    • .txtファイル(または任意のファイルタイプ)を右クリックします。
    • 「プロパティ」をクリックします
    • [開く]タブを選択しました
    • リストから「テキストエディター(新しいウィンドウ)」を選択します
    • 「デフォルトに設定」をクリック
0
Markus Dutschke