2

Я использую gnome-shell 3.14 на archlinux 3.17.3-1. У меня есть сочетание клавиш (ctrl+alt+T), чтобы открыть xfce4-терминал.

Моя проблема в том, что когда я запускаю этот ярлык, фокус не устанавливается на вновь открытый терминал. Я пытался добавить в мой .zshrc

[[ -n "$DISPLAY" ]] && wmctrl -i -a $(wmctrl -l | grep Terminal | tail -n 1 | cut -d ' ' -f1)

И это работало ... пока я не попытался открыть несколько вкладок в терминале. При открытии новой вкладки .zshrc и фокус перемещается на последний терминал, который может быть не тем открытием, над которым я сейчас работаю.

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

xcfe4-terminal&
sleep 0.1
wmctrl -i -a $(wmctrl -l | grep Terminal | tail -n 1 | cut -d ' ' -f1)

Я пытался увеличить продолжительность сна, но все равно не справился (фокус не установлен)

Поэтому у меня есть 2 вопроса:

  • Можно ли как-нибудь заставить скрипт получить идентификатор окна терминала xfce4, на котором запущен скрипт?

  • Можно ли выполнить команду при открытии xfce4-терминала (например, если он есть в .zshrc даже если его нет в нем). Я попробовал опцию --execute но она мне не подходит, так как она запускает только команду фокусировки и оставляет мне бесполезное окно

1 ответ1

1

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

Добавьте это к вашему .zshrc(или любому другому файлу конфигурации оболочки)

xdotool windowactivate $(xdotool search --onlyvisible --class 'xfce4-terminal' | tail -n1) &>/dev/null

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