Как можно gedit
принудительно открывать новое окно независимо от существующих окон gedit всякий раз, когда дважды щелкают текстовый файл (.txt) на рабочем столе Gnome в Debian 8, Джесси?
Предположим, что a.txt уже открыт в окне gedit, и что b.txt дважды щелкает на рабочем столе Gnome в Debian 8 Jessie. Затем, к сожалению, по умолчанию, b.txt будет открыт на вкладке в том же окне, что и a.txt.
Однако я хочу, b.txt
чтобы меня открыли в новом окне gedit, чтобы было два окна - существующее окно для a.txt и новое окно для b.txt.
Если Gnome вызвал gedit с опцией "-s", как в
gedit -s b.txt
затем b.txt
будет открыт в новом окне, в то время как a.txt остается в своем существующем окне.
Однако по умолчанию Gnome, похоже, вызывает gedit без опции "-s".
Файл конфигурации
/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» gedit автоматически закрывает a.txt и повторно использует существующее окно a.txt, чтобы открывать в нем b.txt всякий раз, когда дважды щелкает b.txt на рабочем столе. Таким образом, это режим «одного окна, без вкладки» (в отличие от «нескольких окон»).
(Кстати, значением по умолчанию для «show-tabs-mode» является «auto».)
Ответы:
Причина, по которой ваша модификация
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» ) свяжите типы файлов (.txt, .csv, ...) с вновь созданным приложением:
источник