Так что мне интересно, можно ли было вывести мой терминал, когда то, что я бегу, теперь сделано.
Я не беру в свое время такие вещи, как
run_long_task; take_to_front_somehow;
но что-то, что сделает это автоматически.
Это значительно улучшило бы мою производительность:)
Я использую zshell (если это поможет)
Сначала необходимо установить wmctrl
, который является инструментом командной строки для взаимодействия с совместимым менеджером по X Window EWMH/NetWM:
sudo apt-get install wmctrl
, Чтобы сфокусировать правильный Терминал, необходимо будет запустить его с данного заголовка, как это:
gnome-terminal -t tototiti
Тогда можно выявить его со следующей командой:
sleep 10; wmctrl -a tototiti
Примечание : wmctrl -a STRING
дает фокус окну, содержащему СТРОКУ в ее заголовке
, Протестированном и с bash
и с zsh
Хорошо я получил его работа.
, Таким образом, я должен был найти способ включить к быстрому дисплею.
Так basicly в моей zsh теме я добавил метод для выявления текущего окна.
function bring_to_front {
xdotool windowactivate $WINDOWID
}
$WINDOWID на самом деле установлен терминалом гнома автоматически.
и волшебство должен только назвать тот метод как часть подсказки. этот путь каждый раз подсказка отображена, это выявит его. И так как подсказка отображена, когда предыдущая команда закончена...
PROMPT='$(bring_to_front)${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
следующая вещь, которой я пытаюсь достигнуть, состоит в том, чтобы выбрать правильную вкладку. Я обновлю ответ, если я получу ту работу.
РЕДАКТИРОВАНИЕ
Бонусный Переключатель к правильной Правовой оговорке вкладки
: Это - hacky как ад, так терпите меня.
это работает только на терминал гнома.
function alert_done {
xdotool windowactivate $WINDOWID
child_count=`pgrep --parent $PPID -c`
# we need to remove the first child as it's gnome-tty-helper and not a tab
terminal_count=`expr $child_count - 1`
terminal_pids=`pgrep --parent $PPID | tail -n $terminal_count | tr '\n' ' '`
eval "pid_array=($terminal_pids)"
xdotool key alt+${(k)pid_array[(r)$]}
}