Можно также переслать это хакерское решение от суперпользователя:
[Это] сохраняет текущую папку в файле после каждой команды (не слишком больно, IMO) и открывает новый терминал в сохраненной текущей папке.
добавьте следующее в .zshrc [или .bashrc ]
# emulate bash PROMPT_COMMAND (only for zsh)
precmd() { eval "$PROMPT_COMMAND" }
# open new terminal in same dir
PROMPT_COMMAND='pwd > "${HOME}/.cwd"'
[[ -f "${HOME}/.cwd" ]] && cd "$(< ${HOME}/.cwd)"
Обратите внимание, что при открытии нового вы также поместите вас в свой последний использованный каталог. окно .
Причина, по которой ваша модификация ключа 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.
Основываясь на ответе Себастьяна , сделайте следующее:
Сделайте локальную копию конфигураций gedit. Вносимые вами изменения применяются только к текущему пользователю.
cp /usr/share/applications/org.gnome.gedit.desktop ~/.local/share/applications/geditNewWin.desktop
В файле ~/.local/share/applications/geditNewWin.desktop :Перейдите ко всем EXEC=
строкам (есть несколько )и установите для них значение Exec=gedit -s %U
. Далее измените Name=Text Editor
на Name=Text Editor (new window)
.
В вашем файловом менеджере Nautilus (стандартный файловый менеджер в Gnome, часто называемый просто «Файлы» или Gnome Files)связывает типы файлов (.txt,.csv,... )с вами только что созданное приложение: