Я создал файл neovim.desktop для (терминального) приложения, который выглядит следующим образом:

[Desktop Entry]
Name=Neovim
MimeType=text/english;text/plain;...
Exec=nvim -f %F
Type=Application
Terminal=true

Как видите, он запрашивает запуск в окне терминала. Это прекрасно работает, но всегда открывает xterm . Теперь вопрос: где в моей системе настроено, какой терминал использовать для таких приложений?

Это зависит от рабочего стола? Если так: Где это в GNOME? Где (так что это полезно и для других людей) это в KDE?

2 ответа2

1

Там нет стандартного места для этого; это зависит от среды рабочего стола.


В GNOME 3 это хранится в dconf/GSettings:

$ gsettings list-recursively org.gnome.desktop.default-applications.terminal
org.gnome.desktop.default-applications.terminal exec 'gnome-terminal'
org.gnome.desktop.default-applications.terminal exec-arg '-x'

$ gsettings set org.gnome.desktop.default-applications.terminal exec xterm

То же самое для Cinnamon, за исключением домена org.cinnamon.desktop.⋯ ...


GNOME 2 имел обыкновение хранить это в GConf:

$ gconftool-2 -R /desktop/gnome/applications/terminal
 exec = gnome-terminal
 exec_arg = -x

$ gconftool-2 -s /desktop/gnome/applications/terminal/exec -t string xterm
1

После того, как предложения от grawity не сработали, как ожидалось, я немного углубился в поиск и обнаружил, что GLIB имеет список жестко закодированных списков эмуляторов терминала. Таким образом, он не отражает никаких настроек при запуске приложения с использованием его функциональных возможностей.

Соответствующий источник можно найти здесь: https://github.com/frida/glib/blob/master/gio/gdesktopappinfo.c#L2467 - Поиск «gnome-терминал» в этом файле, если номер строки больше не совпадает ,

Итак, если вы используете один из терминалов в этом списке, удалите те, которые находятся выше в этом списке. Если вы используете другой, создайте скрипт с именем xterm в /usr/local/bin и попросите его вызвать ваш терминал. Вот что я сделал сейчас:

#!/bin/sh

exec sakura "$@"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .