Выполнение wmctrl от удара

После проигрывания немного от терминала с wmctrl, теперь прибывает следующий шаг. Выполниться wmctrl из сценария удара.

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

Пример:

#!/bin/bash

 SOUDIR=/usr/bin
 echo "$SOUDIR"
 $SOUDIR/wmctrl -i -r 0x040000b3 -e 0,0,0,500,800

Но когда я добавляю линейный код Firefox, он не работает. Я, хотя то время сна добавления работало бы, но я был неправ.

Это - текущий код:

#!/bin/bash

firefox http://www.google.de
sleep 30s
SOUDIR=/usr/bin
echo "$SOUDIR"
$SOUDIR/wmctrl -i -r 0x040000b3 -e 0,0,0,500,800

Как изменить размер веб-браузера с помощью этого кода удара?

Я плохо знаком с ударом и человечностью.

4
задан 24 June 2015 в 15:06

2 ответа

Хорошо несколько точек:

  • Вам не нужно эти /usr/bin добавленный. Shell найдет wmctrl отдельно. Это для очень конкретных случаев, которые могут включить мобильность.
  • Добавляют амперсанд в конце firefox команда. Сценарий продолжится, только если предыдущая команда выходит. Так как Firefox не выходит, сценарий ожидает его.
  • Как Oli на который указывают, лучший путь состоит в том, чтобы использовать имя класса. Я сделал несколько сценариев с wmctrl, где я нахожу шестнадцатеричный идентификатор окна путем ссылки на имя класса.

Лично я сделал бы это этот путь:

#!/bin/bash
firefox http://www.google.de &
sleep 3
WM_ID=$(wmctrl -lx | awk '$3~/Navigator.Firefox/ {print $1}')
wmctrl -i -r $WM_ID -e 0,0,0,500,800

Здесь мы открываем Firefox, позволяем ему работать в фоне, тогда мы извлекаем шестнадцатеричный идентификатор окна, которое соответствует классу Navigator.Firefox. В wmctrl -lx поле 3 является wm_class, и поле 1 является шестнадцатеричным идентификатором. awk помогает нам извлечь поле 1 здесь. Наконец мы ссылаемся на тот числовой идентификатор в финале wmctrl оператор

1
ответ дан 1 December 2019 в 10:40

Кажется вероятным, что эти firefox команда заблокировала бы сценарий от развития, пока это не вышло. Просто отодвиньте его на задний план, и Ваш сценарий может прогрессировать:

firefox http://www.google.de &

На тангенциальной ноте, Вы могли бы также хотеть посмотреть -no-remote для Firefox. Это остановит команду, взаимодействующую с любыми существующими экземплярами Firefox в Вашем ДИСПЛЕЕ.

, В то время как мы говорим касательные, эти firefox, команда имеет несколько аргументов помощника , что - наряду с -no-remote — может помочь Вам быть нацеленными на новое окно.

, Например, можно установить определенное имя класса, и затем сделали, чтобы Compiz обработал изменение размеров автоволшебно . И wmctrl -x <WM_CLASS> позволит Вам быть нацеленными на класс, а не идентификатор. , Вероятно более устойчивый, чем предназначение для имен Окна или идентификаторов также.

0
ответ дан 1 December 2019 в 10:40

Другие вопросы по тегам:

Похожие вопросы: