5

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

Я проверил man xfce4-terminal но он ничего не сказал о сохранении сессии. Это возможно?

3 ответа3

4

Вы можете создать ярлык с предопределенными вкладками, например так:

Terminal --geometry=100x40 --hide-menubar --hide-toolbars -T "Host1" -e "ssh -t root@host1" --tab -T "Host2" -e "ssh -t root@host2"

Но что-то подобное в командной строке диалогового окна редактора ярлыков.

Чтобы у каждой вкладки был свой рабочий каталог, вы можете сделать это следующим образом:

Terminal --working-directory=$HOME/tmp --tab --working-directory=$HOME/src --tab --working-directory=$HOME/opt

Не то, чтобы у первого не было --tab перед ним, что связывало его с новым окном верхнего уровня. Затем две дополнительные вкладки с разными рабочими каталогами.

Старайтесь избегать использования ~ расширения, так как это функция оболочки, которая может не работать в другом контексте (например, в пользовательских средствах запуска).

0

У меня есть лучшее решение (чем мой другой ответ, здесь): оно проще, менее глючит и использует одно окно с несколькими вкладками и процессами!

Я создал скрипт запуска (xfce4-terminal-startup.sh),

xfce4-terminal --maximize --title='Neovim' -x bash -c "nvr -s; exec bash"
xfce4-terminal --tab --title='psql' -x bash -c "psql -d zzz; exec bash"
xfce4-terminal --tab --title='Cypher-shell' -x bash -c "cd /mnt/Vancouver/Programming/data/hmdb; exec bash"
xfce4-terminal --tab --title='Cycli' -x bash -c "source activate py35 && cycli -P *** -u *** -p ***; exec bash"
xfce4-terminal --tab --title='Py3' -x bash -c "source activate py35 && python; exec bash"
xfce4-terminal --tab --title='bc' -x bash -c "bc; exec bash"
xfce4-terminal --tab --title='ud' -x bash -c "pacaur -Syu; exec bash"

# Re: "exec bash", above:
# https://unix.stackexchange.com/questions/47271/prevent-gnu-screen-from-terminating-session-once-executed-script-ends
# https://unix.stackexchange.com/questions/75902/how-to-run-xfce-terminal-with-different-commands-per-tab-and-keep-using-the-tabs
# I.e., if you start a window in screen that runs a command, keep that window open ...

что при выполнении запускает xfce4-терминал, максимизирует его и запускает различные программы, как указано.

Вот анимированный GIF, показывающий эти вкладки в действии!

xfce4-терминал из скрипта с вкладками, предустановленными программами

-1

Здесь отличный ответ:

https://askubuntu.com/questions/421421/how-can-i-make-a-terminal-with-3-tabs-appear-after-startup/422121#422121

который в основном гласит:

  • Запустите xfce4-session-settings → Автозапуск приложения → Добавить
  • Введите имя и описание (необязательно), затем добавьте эту команду:

    xfce4-terminal -T htop -e htop --tab -T man --tab -T Stuff

    или с помощью sudo htop, так что просто дождитесь вашего пароля:

    xfce4-terminal -T htop -e "sudo htop" --tab -T man --tab -T Stuff

    --tab Create new tab -T Title -e Execute command

Здесь я использую этот метод для автоматического запуска (при загрузке Arch Linux) xfce4-терминала с 3 запущенными вкладками:

  • Neovim
  • Cycli (в виртуальной среде Python 3.5)
  • PSQL

Вот моя xfce4 "Сессия и запуск" >> Запись "Автозапуск приложения":

  • Имя: xfce4-terminal {nv | cycli | psql}
  • Описание: nv | cycli | psql
  • Команда: xfce4-terminal -T NEOVIM -e "nvim" --tab -T CYCLI -e "/mnt/Vancouver/Programming/scripts/cycli.sh" --tab -T PSQL -e "psql -d zzz -U victoria"

Чтобы запустить Cycli (оболочка Neo4j; установлен в Python 3.5 venv), мне нужно было создать скрипт,

/mnt/Vancouver/Programming/scripts/cycli.sh

который запускает этот venv, а затем Cycli:

#!/bin/bash
source /home/victoria/anaconda2/bin/activate py35
cycli -P 7474 -u victoria -p <password here>

Заметки:

  • "Демон" Neo4j должен быть запущен, так как Cycli необходимо подключиться к экземпляру Neo4j; Я добавил neo4j start в мой скрипт загрузки / запуска Arch Linux.
  • zzz - фиктивная база данных, к которой я могу подключиться, в psql, перед перечислением и подключением к одной из моих реальных баз данных.

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