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」です。)
.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デスクトップエントリの仕様 を参照してください。
Sebastians の回答に基づいて、以下を実行します。
Gedit構成のローカルコピーを作成します。行った変更は、現在のユーザーにのみ適用されます。
cp /usr/share/applications/org.gnome.gedit.desktop〜/ .local/share/applications/geditNewWin.desktop
ファイル〜/ .local/share/applications/geditNewWin.desktopで:すべての_EXEC=
_行(いくつかあります)に移動して、それらをto _Exec=gedit -s %U
_に設定します。さらに_Name=Text Editor
_をName=Text Editor (new window)
に変更します。
Nautilusファイルマネージャー(Gnomeの標準ファイルマネージャー、しばしば「ファイル」または Gnomeファイル と呼ばれる)で、ファイルタイプ(.txt、.csv、...)を新しく作成したアプリケーションに関連付けます。