Вопрос или проблема
Я хочу изменить терминал по умолчанию в среде рабочего стола GNOME на lilyterm
. Вот инструкции, которые я нашел в интернете:
gsettings set org.gnome.desktop.default-applications.terminal exec lilyterm
gsettings set org.gnome.desktop.default-applications.terminal exec-arg ""
Но когда я нажимаю сочетание клавиш, которое должно запускать терминал по умолчанию, я получаю:
Предупреждение менеджера окон: Ошибка в терминальной команде “(null)”. Терминальная команда не определена.
Где я ошибся?
Вы пробовали изменить это через команду терминала:
sudo update-alternatives --config x-terminal-emulator
Я предполагаю, что это не помогает, если сочетание клавиш GNOME настроено специально для gnome-terminal
, а не для x-terminal-emulator
.
Большинство ответов здесь устарели для современного программного обеспечения GNOME. Для Gnome 3.36 нет простого обходного решения. Проблема в том, что большинство программ GNOME основаны на Gio, который решает, какой терминальный эмулятор в конечном итоге использовать. Цитируя разработчика GNOME с gitlab.gnome.org:
Решение о том, какой терминал будет использоваться gnome-shell при запуске приложений, которые указывают, что они работают в терминале, принимается glib, а не gnome-shell, и в настоящее время в glib есть жестко закодированный список терминалов, который проверяется).
Таким образом, смотря, например, на код Gio (версия 2.76.2) ответственного за это поведение, мы видим, что Gio жестко закодировал проверки для нескольких конкретных терминальных эмуляторов в поиске исполняемых файлов в $PATH
. Сначала проверяется xdg-terminal-exec
, а затем проверяются другие терминальные эмуляторы. Если xdg-terminal-exec
найден в вашем $PATH
, он будет использоваться, и ничего нельзя сделать, кроме как изменять программы в вашем $PATH
:
# ln -s /usr/bin/lilyterm /usr/bin/xdg-terminal-exec
Это также означает, что наиболее распространенное решение этой проблемы, использование gsettings
, не работает (также предложено здесь: 1, 2, 3, 4, 5).
Есть несколько вариантов:
-
Попробуйте:
gsettings set org.gnome.desktop.default-applications.terminal exec 'lilyterm' gsettings set org.gnome.desktop.default-applications.terminal exec-arg '-x'
Примечание: Вам нужно выйти из системы и снова войти (успешно протестировано на GNOME в Ubuntu 13.04).
-
Другой вариант – зайти в Сочетания клавиш в настройках GNOME и добавить новое сочетание с
lilyterm
в качестве команды, и настроить его на Ctrl+Alt+T или что-то другое, что вам нравится. -
Еще один способ – заменить
gnome-terminal
на символьную ссылку, указывающую наlilyterm
– но вы, вероятно, не хотите этого делать.
Я только что случайно наткнулся на этот вопрос, и вот что мне помогло:
-
Проверьте, какой терминал остался в вашей системе. Я уже удалил все “терминальные приложения”, такие как xterm и т.д. и выбрал
rxvt-unicode
в качестве терминала по умолчанию. -
Затем перейдите в Настройки → Сочетания клавиш и создайте пользовательское сочетание. Это решит вашу проблему.
Возможно, вам следует открыть диалог добавления/редактирования пользователей и посмотреть, можно ли изменить терминал по умолчанию там.
Обновлено: Пользователи и группы (как администратор) > Выбрать пользователя > Расширенные настройки > Расширенные > Оболочка
Есть выпадающее меню, но вы также можете ввести /path/to/your/shell.
В пакете Ubuntu 24.10 для gnome-settings-daemon используется патч, специфичный для Ubuntu, под названием media-keys-restore-terminal-keyboard-shortcut-schema.patch
, который добавляет поддержку медиа-клавиш для запуска терминала. Этот патч ссылается на элемент exec
ключа dconf org.gnome.desktop.default-applications.terminal
:
[...]
+static void
+do_terminal_action (GsdMediaKeysManager *manager)
+{
+ GSettings *settings;
+ char *term;
+
+ settings = g_settings_new ("org.gnome.desktop.default-applications.terminal");
+ term = g_settings_get_string (settings, "exec");
+
+ if (term)
+ execute (manager, term, FALSE);
[...]
Запуск
gsettings set org.gnome.desktop.default-applications.terminal exec "/usr/bin/ptyxis --new-window"
успешно заставил медиа-клавишу терминала запустить терминал pytxis вместо gnome-terminal.
Ответ или решение
Как установить терминал по умолчанию в GNOME?
Если вы хотите изменить терминал по умолчанию в окружении рабочего стола GNOME на lilyterm
, это может показаться простым процессом, однако существуют важные нюансы, которые необходимо учесть. В этой статье мы подробно рассмотрим, как установить lilyterm
в качестве терминала по умолчанию и решим возможные проблемы, с которыми вы можете столкнуться.
Шаг 1: Установка lilyterm
Прежде всего убедитесь, что lilyterm
установлен в вашей системе. Если вы не установили его, вы можете сделать это с помощью следующей команды (для систем на базе Debian/Ubuntu):
sudo apt install lilyterm
Шаг 2: Установка lilyterm
как терминала по умолчанию
Для установки lilyterm
в качестве терминала по умолчанию используйте следующие команды:
gsettings set org.gnome.desktop.default-applications.terminal exec 'lilyterm'
gsettings set org.gnome.desktop.default-applications.terminal exec-arg '-x'
Примечание: После выполнения этих команд вам следует выйти из системы и войти снова, чтобы изменения вступили в силу.
Шаг 3: Проверка на наличие ошибок
Если после выполнения этих команд вы получаете ошибку, подобную следующей:
Windows manager warning: Error on terminal command "(null)". Terminal command is not defined.
Это может указывать на то, что GNOME не может найти вашу новую терминальную программу. Это связано с тем, что некоторые версии GNOME используют жестко закодированные значения и систему Gio
, которая управляет терминалами.
Шаг 4: Альтернативные решения
Если gsettings
не сработал для вас, попробуйте один из следующих методов:
-
Создание пользовательского сочетания клавиш:
- Откройте настройки GNOME (
Settings
). - Перейдите в раздел
Keyboard Shortcuts
. - Создайте новое сочетание с командой
lilyterm
и назначьте сочетание клавиш (например,Ctrl + Alt + T
).
- Откройте настройки GNOME (
-
Проверка наличия
xdg-terminal-exec
:- Если GNOME находит
xdg-terminal-exec
в вашемPATH
, он может быть использован как ваш терминал. - Вы также можете создать символическую ссылку на
lilyterm
:
sudo ln -s /usr/bin/lilyterm /usr/bin/xdg-terminal-exec
- Если GNOME находит
-
Проверка зависимостей:
- Убедитесь, что на вашем компьютере есть другие терминалы (например,
xterm
илиgnome-terminal
), так как это может повлиять на запуск вашего нового терминала по умолчанию.
- Убедитесь, что на вашем компьютере есть другие терминалы (например,
Заключение
Установка lilyterm
в качестве терминала по умолчанию в GNOME может требовать дополнительных шагов и проверки текущих настроек вашего окружения. Если у вас возникают трудности, попытайтесь использовать альтернативные методы, такие как создание пользовательских сочетаний клавиш или изменение параметров через gsettings
. Не забудьте протестировать все изменения и, по возможности, обратиться к документации для вашей версии GNOME.
Если у вас возникли дополнительные вопросы или требуется помощь, не стесняйтесь обращаться за поддержкой в сообщества GNOME или другие IT-форумы.