У меня есть этот сценарий, который работает через сочетание клавиш (и переключает таблицу стилей расширения Стилуса *** включения - выключения). Это специально для максимизируемых окон, таким образом, значения xdotool не изменятся:
#!/bin/bash
xgg="$(xdotool getactivewindow getwindowname)"
if [[ "$xgg" == *" - Mozilla Firefox" ]]
then
xdotool mousemove --sync 18 54 click 1
sleep 0.2
xdotool mousemove --sync 134 85 click 1
sleep 0.2
xdotool mousemove --sync 1365 85 click 1
sleep 0.2
xdotool mousemove --sync 683 384
fi
Это проверяет, является ли окно в фокусе Firefox из-за *" - Mozilla Firefox"
, который является, как заголовки конца окон Firefox, и, если он соответствует, он выполняет последующие команды xdotool.
Я теперь хотел бы, чтобы команды xdotool работали, даже если окно является Частным экземпляром Просмотра Firefox.
Если у меня есть и обычное окно Firefox и частное открытое окно просмотра, wmctrl -l
шоу это:
$ wmctrl -l
0x0260000b -1 N/A Desktop — Plasma
0x02600016 -1 N/A Plasma
0x03e00018 0 kububb Newest Questions - Ask Ubuntu - Mozilla Firefox
0x03e001cd 0 kububb Newest Questions - Ask Ubuntu - Mozilla Firefox (Private Browsing)
0x05a00006 0 N/A bash: dkb — Konsole
$
Какой regex требуется, чтобы сценарий распознал обоих - Mozilla Firefox
и - Mozilla Firefox (Private Browsing)
в конце заголовков окон?
*** У меня есть значок для Стилуса слева от строки поиска. Когда значок нажат однажды, выпадающее появляется. Второй щелчок (в определенной области выпадающего) переключает таблицу стилей вкл\выкл.
Можно использовать звездочку (*
) подстановочный знак. *
может представить любое количество символов (включая нуль, другими словами, нуль или больше символов). Поэтому if
был бы похож:
if [[ "$xgg" == *" - Mozilla Firefox"* ]]
Или с тех пор существует только две возможности для Mozilla Firefox, т.е. Mozilla Firefox
и Mozilla Firefox (Private Browsing)
, можно использовать логичный ИЛИ в if
, чтобы быть более конкретными.
if [[ "$xgg" = *" - Mozilla Firefox" ]] || [[ "$xgg" = *" - Mozilla Firefox (Private Browsing)" ]]
Или согласно комментарий Bose DK:
if [[ "$xgg" == *?(" - Mozilla Firefox"|" - Mozilla Firefox (Private Browsing)") ]]
Просто используйте шарик (придеритесь к мелочам, но ==
берет шарики не регулярные выражения), который позволяет строки после Firefox
:
#!/bin/bash
xgg="$(xdotool getactivewindow getwindowname)"
if [[ "$xgg" = *"Mozilla Firefox"* ]]
then
xdotool mousemove --sync 18 54 click 1
sleep 0.2
xdotool mousemove --sync 134 85 click 1
sleep 0.2
xdotool mousemove --sync 1365 85 click 1
sleep 0.2
xdotool mousemove --sync 683 384
fi
, С другой стороны, так как Вы используете [[
так или иначе, можно использовать соответствие regex:
#!/bin/bash
xgg="$(xdotool getactivewindow getwindowname)"
if [[ "$xgg" =~ "Mozilla Firefox" ]]
then
xdotool mousemove --sync 18 54 click 1
sleep 0.2
xdotool mousemove --sync 134 85 click 1
sleep 0.2
xdotool mousemove --sync 1365 85 click 1
sleep 0.2
xdotool mousemove --sync 683 384
fi