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

i7p*_*nuz 13 gnome debian gedit

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

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

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

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

gedit -s b.txt
Run Code Online (Sandbox Code Playgroud)

然后b.txt将在新窗口中打开,而 a.txt 保留在其现有窗口中。

然而,默认情况下,Gnome 似乎在没有“-s”选项的情况下调用 gedit。

配置文件

/usr/share/applications/org.gnome.gedit.desktop
Run Code Online (Sandbox Code Playgroud)

包含执行指令

Exec=gedit %U
Run Code Online (Sandbox Code Playgroud)

所以,我把它改成

Exec=gedit -s %U
Run Code Online (Sandbox Code Playgroud)

通过以下命令,并重新启动计算机。

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
Run Code Online (Sandbox Code Playgroud)

然而,这种方法已经失败了。b.txt 仍会在与 a.txt 相同的窗口中的选项卡中打开。我被困住了。我需要你的帮助。

gedit 的默认模式是“单个窗口,多个选项卡”。我想要“多窗口”模式。

顺便说一句,下面这个没用的方法把gedit变成了“单窗口,无标签”模式,这不是我想要的。

gsettings set org.gnome.gedit.preferences.ui show-tabs-mode 'never'
Run Code Online (Sandbox Code Playgroud)

使用这种“gsettings”方法,只要在桌面上双击 b.txt,gedit 就会自动关闭 a.txt 并重新使用 a.txt 的现有窗口来打开其中的 b.txt。因此,它是“单窗口,无标签”模式(与“多窗口”相反)。

(顺便说一句,“show-tabs-mode”的默认值是“auto”。)

小智 9

你修改Exec.desktop文件中的key没有生效的原因是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指多个网址可以作为该命令的参数,这意味着该文件管理器会象这样开始:gedit --new-window file1.txt file2.txt。这会产生一个带有两个选项卡的新窗口。如果您将其更改为%u现在,则会告诉文件管理器,该应用程序只接受一个 URL 作为参数,因此会导致它多次运行该命令,每次使用不同的文件作为其参数。有关这方面的更多详细信息,请参阅freedesktop 桌面入口规范