Причина, по которой ваша модификация ключа 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.