Как изменить заголовки окон (используемые wmctrl)

Как изменить заголовки окон (используемые wmctrl)

Я используюwmctrlдля перемещения приложений после их запуска, чтобы мне не приходилось делать это вручную, например, для нескольких текстовых редакторов, веб-браузеров, просмотрщиков PDF и терминалов. Я использую следующую команду wmctrl для перемещения приложений

wmctrl -r <title> -e <x>,<y>,0,-1,-1

где < x > и < y > — горизонтальные и вертикальные координаты цели, а < title > — имя приложения, возвращаемое wmctrl -l. Если я запускаю две копии Google Chrome с помощью следующих команд,

google-chrome &
google-chrome &

затем отдайте команду

wmctrl -l 

возвращаемые имена окон:

0x03c06fd9  0 main New Tab - Google Chrome
0x03c0703d  0 main New Tab - Google Chrome

Теперь, если я попытаюсь переместить один из них в произвольную координату, скажем, 100,100, с помощью следующей команды

wmctrl -r "Google Chrome" -e 100,100,0,-1,-1

Если вы еще не догадались, это переместит ЭТО окно Google Chrome, в котором я сейчас печатаю, так как я открыл его раньше двух других.

Есть ли способ назначить эти заголовки окон при запуске из командной строки или сбросить их позже. Мне нужно изменить имена на что-то вроде

Google Chrome 1
Google Chrome 2
Google Chrome 3

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

  1. Вместо заголовка используйте числовой идентификатор окна через -iкоманду.
  2. Используйте строку :ACTIVE:для использования активного окна

решение1

Используйте xttitleпрограмму из xttitleпакета. Обратите внимание на ДВА "t" в xттitle. Ну, на самом деле, там 3 "t"... но у меня были проблемы с опечатками только в первых двух.

Вот пример из моего ~/.bashrc, в котором я переопределяю cdвстроенную функцию и использую ее xttitleдля помещения текущего каталога в заголовок окна:

# from the "xttitle(1)" man page - put info in window title
update_title()
{
    [[ $TERM = xterm ]] || [[ $TERM = xterm-color ]]  && xttitle "[$$] ${USER}@${HOSTNAME}:$PWD"
}

cd()
{
    [[ -z "$*" ]] && builtin cd $HOME
    [[ -n "$*" ]] && builtin cd "$*"
    update_title
}

Связанный контент