Использовать другую оболочку по умолчанию в каждом эмуляторе терминала

Я хотел бы изменить оболочку по умолчанию в каждом эмуляторе терминала отдельно. Чтобы уточнить, я хочу, чтобы Xterm использовал TCSH, pterm для использования pysh, gnome-terminal для использования BASH и т. Д. Возможно ли это? Если да, то как это можно осуществить.

Каждый эмулятор терминала имеет свой собственный способ выбора оболочки для запуска:

  • gnome-terminal run a custom command instead of my shell в редакторе профиля.
  • xterm (и pterm) использует базу данных xrdb для хранения своей конфигурации, но не позволяет настроить команду для запуска. Вы можете написать простой сценарий оболочки, который обертывает исполняемый файл xterm, чтобы дать ему исполняемый параметр.
  • konsole имеет поле command в редакторе профиля.

Поэтому вам необходимо узнать, прочитав руководство, как (и если) каждый эмулятор терминала может быть настроен. Нет общего пути 🙁

Если вам нужен только простой способ выбора оболочки, я настоятельно рекомендую вам выбрать эмулятор терминала, который поддерживает профили (например, gnome-terminal) и создать другой профиль для каждого типа оболочки. Таким образом, вы можете запустить новую вкладку или окно, на которых запущена необходимая оболочка с помощью внутреннего меню gnome-terminal (и, в качестве бонуса, выбрать другой цвет текста для каждой оболочки).

В качестве быстрого и содержащегося решения вы можете создать сценарий оболочки.

 case "$1" in xterm) shell=/bin/tcsh ;; pterm) shell=/bin/pysh ;; gnome-terminal) shell=/bin/bash ;; *) printf "Not supported: %s" "$1" exit 1 ;; esac SHELL=$shell $1 

Просто используйте его как таковой: thescript <terminal_emulator> .

Обычно предпочтительнее настраивать каждый эмулятор терминала, хотя.