每当在 Debian 8 的 Gnome 桌面上双击文本文件时,如何强制 gedit 打开一个独立于现有 gedit 窗口的新窗口?

每当在 Debian 8 的 Gnome 桌面上双击文本文件时,如何强制 gedit 打开一个独立于现有 gedit 窗口的新窗口?

geditJessie,每当在 Debian 8 的 Gnome 桌面上双击文本文件 (.txt) 时,如何强制打开一个独立于现有 gedit 窗口的新窗口?

假设 a.txt 已经在 gedit 窗口中打开,然后在 Debian 8 Jessie 的 Gnome 桌面上双击 b.txt。那么不幸的是,默认情况下,b.txt 将在与 a.txt 相同的窗口的选项卡中打开。

但是,我想b.txt在 gedit 的新窗口中打开,以便有两个窗口 - a.txt 的现有窗口和 b.txt 的新窗口。

如果 Gnome 使用“-s”选项调用 gedit,如下所示

gedit -s b.txt

thenb.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”。)

答案1

Exec您修改.desktop文件中的密钥不起作用的原因是gedit已激活DBus。这意味着它是通过会话的 DBus 守护程序启动的,然后为此类可激活程序提供通用 DBus 接口来指定要打开的文件。您可以通过将DBusActivatable密钥更改为 来防止这种情况发生false

此外,最好在主目录中创建要修改的 .desktop 文件的副本,并使用它来覆盖系统范围的文件,而不是直接修改系统范围的文件。这样,系统版本就不会在发行版软件包更新时被覆盖。为此,只需复制/usr/share/applications/org.gnome.gedit.desktop~/.local/share/applications/org.gnome.gedit.desktop.此路径中的文件将覆盖系统范围目录中的同名文件。

然后,用于打开新窗口的两个可能的标志之间也有一个重要的区别:--new-window-s。两者都会导致文件在新窗口中打开,但-s每个窗口也将属于其自己的进程。使用时--new-window所有窗口共享相同的 gedit 进程。

最后,为了确保在您在文件管理器中选择多个文件并打开它们时也能正常工作,您需要对密钥进行另一次修改Exec。这%U意味着允许多个 URL 作为此命令的参数,这意味着文件管理器将像这样启动它:gedit --new-window file1.txt file2.txt。这会产生一个带有两个选项卡的新窗口。如果将其更改为%u现在,则会告诉文件管理器应用程序仅接受单个 URL 作为参数,因此会导致它多次运行该命令,每次都使用不同的文件作为参数。有关这方面的更多详细信息,请参阅freedesktop桌面入门规范

答案2

基于塞巴斯蒂安斯回答,执行以下操作:

  1. 制作 gedit 配置的本地副本。您所做的更改仅适用于当前用户。

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

  2. 在文件 ~/.local/share/applications/geditNewWin.desktop 中:转到所有EXEC=行(有几行)并将它们设置为Exec=gedit -s %U。进一步更改Name=Text EditorName=Text Editor (new window). (如果您没有看到名称更改,请尝试编辑“Name[en_GB]=”行或与您的语言设置相对应的行)。

  3. 在文件管理器中(例如:Nautilus,或 Gnome 中的标准文件管理器,通常简称为“文件”或侏儒文件,或 Linux MATE 中的 Caja 等)将文件类型(.txt、.csv...)与新创建的应用程序关联:

  • 右键单击 .txt 文件(或您想要的任何文件类型)
  • 点击“属性”
  • 选择选项卡“打开方式”
  • 从列表中选择“文本编辑器(新窗口)”
  • 点击“设置为默认值”

相关内容