Как заставить gedit открывать новое окно независимо от существующих окон gedit при каждом двойном щелчке текстового файла на рабочем столе Gnome в Debian 8?

9

Как можно 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».)

i7pj3qnuz
источник
@don Я не очень знаком с лаунчером. Каковы команды для вызова отдельного модуля запуска?
i7pj3qnuz

Ответы:

5

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

Себастьян
источник
0

Основываясь на ответе Себастьяна , сделайте следующее:

  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 Editorна Name=Text Editor (new window).

  3. В вашем файловом менеджере Nautilus (стандартный файловый менеджер в Gnome, часто называемый просто «Файлы» или « Файлы Gnome» ) свяжите типы файлов (.txt, .csv, ...) с вновь созданным приложением:

    • щелкните правой кнопкой мыши файл .txt (или любой другой тип файла)
    • нажмите «Свойства»
    • выбрал вкладку «Открыть с помощью»
    • выберите «Текстовый редактор (новое окно)» из списка
    • нажмите на «Установить по умолчанию»
Маркус Дучке
источник