Как переключить фокус на вкладку терминала Gnome с помощью команды Script или Shell

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

Я использую zsh и bash взаимозаменяемо, поэтому любые команды bash должны работать нормально. Я начинаю знакомиться с xdotool а также wmctrl, но не уверен в комбинации команд для переключения фокуса на открытую вкладку.

Какие команды я могу использовать, чтобы "переключиться на следующую открытую вкладку" или "переключиться на вкладку N" из CLI терминала gnome?

0 ответов

Для отправки сигнала из Bash Shell используйте xdotool:

sudo apt install xdotool

В вашем скрипте введите следующую команду:

xdotool key Control+Page_Up

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

gnome-terminal --geometry=80x25+0+0 --window --working-directory=<Firtst Tab Dir> \
               --title='<First Tab Title>' --command="bash" \
               --tab --working-directory=<Second Tab Dir> --title='<Second Tab Title>' \
               --command="bash" and so on...

Я бы написал как комментарий, но пока для этого недостаточно репутации

Я решил это с помощью xdotool

В одной строке сначала откройте новую вкладку с keyкоманда. По умолчанию фокус переключается на эту вкладку. Затем используйтеtypeкоманда для запуска функции, сценария или другой программы на новой вкладке. Наконец, используйтеkeyкоманду "нажать ввод". Повторите эти действия для N-многих вкладок!

# inside a file loaded by .bashrc which contains all my functions:
function setupterm() {
  # run a command, like set a title, in the current window/tab
  customCommandOne
  # do the needful as described above
  xdotool key Control+Shift+t && xdotool type customCommandTwo && xdotool key Return
  # repeat for n-many tabs
  xdotool key Control+Shift+t && xdotool type customCommandThree && xdotool key Return
  # return focus to first tab
  xdotool key Control+Page_Down
}
Другие вопросы по тегам