Общий способ получить путь к двоичному файлу терминала в разных системах Linux?

У меня есть следующий жестко закодированный список терминалов в моем приложении:

"/usr/bin/konsole", // KDE
"/usr/bin/gnome-terminal", // Gnome
"/usr/bin/pantheon-terminal" // Pantheon (Elementary OS)

затем я просто хватаю первую запись из этого списка, которая указывает на существующий файл. Очевидно, проблема в том, что программа перестает работать, как только она запускается в системе с неизвестным терминальным двоичным кодом. Итак, могу ли я определить его каким-то общим способом? Возможно, через какую-то стандартную переменную среды?

12
задан Violet Giraffe
30.03.2023 19:26 Количество просмотров материала 3181
Распечатать страницу

1 ответ

во-первых, я бы сохранил только имена исполняемых файлов терминала в списке и динамически определял их фактические пути на основе PATH env var - в зависимости от дистрибутива и/или параметров установки они могут находиться в других местах. Или используйте which <terminal executable> который делает это для вас.

Я хотел бы использовать xterm в качестве последнего резервного терминала-это в значительной степени стандартно для любой установки X-Windows.

другие удобства соображения:

  • проверьте, если DISPLAY установлено - если это не наиболее вероятно, терминалы не будут работать
  • попробуйте определить реальную графическую среду и сначала попробуйте более подходящую для нее. WINDOWMANAGER может помочь. Конкретные оконные менеджеры обычно устанавливают свои собственные env vars, например, в моем случае KDE устанавливает:KDE_SESSION_UID,KDE_FULL_SESSION,KDE_MULTIHEAD,KDE_SESSION_VERSION.
1
отвечен Dan Cornilescu 2023-04-01 03:14

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх